(57)【要約】      （修正有）【課題】キャッシュのヒット率をさらに高めて、性能を向上する。【解決手段】記憶制御ノードは該記憶制御ノードに接続された記憶装置の該当するアドレス空間の特定の領域に関する制御権をどのキャッシュノードで有するかを管理する手段を備え、キャッシュノードは上位装置からのデータ要求を受けてキャッシュノードでキャッシュを検索し、キャッシュヒット時キャッシュ領域を用いてデータ要求を処理し、ミスヒット時、該当する記憶制御ノードに所定の制御権を要求し、該制御権を持つキャッシュノードが存在する場合、該制御権を持つキャッシュノードに排他処理させ該ノードのキャッシュ領域を用いて上位装置のデータ要求を処理し、該制御権を持つキャッシュノードが無い場合、該制御権を要求元のキャッシュノードに付与したことを登録して通知させ、該制御権が付与されたキャッシュノードは、該キャッシュノードのキャッシュでキャッシュ制御する。【選択図】図４
2006164218.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
第一の処理部が、該当する単位領域に関する制御権を持たない場合、前記第一の処理部は、前記管理処理部に対して、該当する単位領域または単位領域内の所定のデータを識別する情報を含む第一の信号を送信する手段を備え、
前記管理処理部は、
前記第一の処理部からの前記第一の信号を受け、前記単位領域の制御権を現在どの処理部で有するかを記憶管理する記憶部を参照して、前記制御権を有する処理部を検索する手段と、
前記検索の結果、該当する単位領域に関する制御権を有する第二の処理部が存在する場合には、前記第二の処理部に対して、該当する単位領域または前記単位領域内のデータを識別する情報を含む第二の信号を送信する手段と、
を備え、
前記第二の処理部は、前記管理処理部からの前記第二の信号を受け、前記第一の処理部に、該当する単位領域内のデータに対応するキャッシュメモリのキャッシュ領域へアクセスするための情報を与える手段を備え、
前記第一の処理部は、前記第二の処理部より与えられた情報に基づき、処理対象のキャッシュ領域をアクセスする、ことを特徴とするキャッシュ制御システム。
【請求項２】
前記制御権を有する前記第二の処理部は、前記管理処理部からの信号を受け、前記単位領域内の所定のデータに関する更新を前記第一の処理部のみに許可し、他の処理部が更新することを許可しないよう保つ手段を備える、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項３】
前記管理処理部は、前記検索の結果、前記単位領域に関する制御権を有する処理部が存在しない場合には、前記制御権を要求した第一の処理部に前記制御権を付与する手段を備えている、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項４】
前記複数の処理部は、通信手段を介して相互に接続される複数のノードに備えられ、
前記単位領域内のデータを一時保存するキャッシュメモリを、１つ以上のノード内に設ける、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項５】
前記複数の処理部は、通信手段を介して相互に接続される複数のノードに備えられ、
前記キャッシュメモリは、前記複数ノードで共有される共有メモリに格納される、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項６】
前記第一の処理部は、前記単位領域と、前記単位領域の処理部との対応を記憶した構成情報を参照して、前記管理処理部を特定する、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項７】
前記第一の処理部は、前記単位領域の制御権を、前記第一の処理部で有するか否か判定する手段を備えている、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項８】
前記管理処理部は、前記単位領域と、前記単位領域の制御権を有する処理部との対応を記憶した制御情報を検索して、前記単位領域の制御権を有する前記第二の処理部を特定する、ことを特徴とする請求項１記載のキャッシュ制御システム。
【請求項９】
前記第一の処理部は、前記単位領域をキャッシュのページ単位とし、上位処理手段から要求されたデータを識別する情報から、キャッシュのヒットチェックを行うことで、前記単位領域の制御権を、前記第一の処理部で有するか否か判定する手段を備えることを特徴とする請求項１記載のキャッシュ制御システム。
【請求項１０】
複数の処理部により少なくとも１つ以上のキャッシュメモリのキャッシュ制御を行う方法であって、
第一の処理部において、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に対する制御権を持たない場合、前記第一の処理部は、前記複数の処理部のどの処理部が前記単位領域に対する制御権を有するかを管理する処理部(「管理処理部」という)に対して、該当する単位領域または該当する単位領域内の所定のデータを識別する情報を含む第一の信号を送信する工程と、
前記管理処理部は、前記第一の処理部からの前記第一の信号を受け、前記単位領域に関する制御権を現在どの処理部で有するかを記憶管理する記憶部を参照して、前記制御権を有する処理部を検索する工程と、
該当の単位領域に関する制御権を有する第二の処理部が存在する場合には、前記第二の処理部に対して、該当する単位領域または単位領域内の所定のデータを識別する情報を含む第二の信号を送信する工程と、
前記第二の処理部は、前記管理処理部からの前記第二の信号を受け、前記第一の処理部に、該当する単位領域内の所定のデータに対応するキャッシュ領域へアクセスするための情報を与える工程と、
前記第一の処理部は、前記第二の処理部より与えられた情報に基づき、処理対象のキャッシュ領域をアクセスする工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項１１】
前記制御権を有する第二の処理部は、前記管理処理部からの指示を受け、前記単位領域内の所定のデータに対応するキャッシュ領域のアクセスを、前記第一の処理部に許可する工程を有する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１２】
前記管理処理部は、前記検索の結果、前記単位領域の制御権を有する第二の処理部が存在しない場合には、前記制御権を要求した前記第一の処理部に、前記単位領域に対する制御権を付与する工程を含む、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１３】
前記第一の処理部が、前記単位領域と、前記単位領域との対応を記憶した構成情報を参照して、前記管理処理部を特定する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１４】
前記管理処理部は、前記単位領域と、前記単位領域の制御権を有する処理部との対応を記憶した制御情報を検索して、前記単位領域の制御権を有する前記第二の処理部を特定する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１５】
前記単位領域内の所定のデータに対応するキャッシュ領域のアクセス終了後、前記要求元の第一の処理部が、前記キャッシュ領域の使用完了を通知する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１６】
前記制御権を有する前記第二の処理部は、前記第一の処理部からの、前記キャッシュ領域の使用完了の通知を受け、前記第一の処理部の前記キャッシュ領域のアクセスの許可を解除する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１７】
前記第一の処理部は、前記単位領域の制御権を、前記第一の処理部に有するか否か判定する工程を有する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１８】
前記第一の処理部は、単位領域をキャッシュのページ単位とし、上位処理手段から要求されたデータを識別する情報から、キャッシュのヒットチェックを行うことで、前記単位領域の制御権を、前記第一の処理部に有するか否か判定する工程を有する、ことを特徴とする請求項１０記載のキャッシュ制御方法。
【請求項１９】
上位装置に接続され入出力処理を行うキャッシュを有する複数のキャッシュノードと、複数のストレージ装置と、前記複数のストレージ装置に接続され入出力処理を行う複数の記憶制御ノードと、を備え、
前記いずれかのノードにおいて、上位処理手段から要求される所定のデータを識別する情報から一意的に決定される単位領域に関し、どのキャッシュノードが制御権を有するかを管理する手段を備えている、ことを特徴とするストレージシステム。
【請求項２０】
前記キャッシュノードは、前記上位装置からのデータ要求を受けて、前記キャッシュノード内のキャッシュを検索し、キャッシュヒットの場合、前記キャッシュノードのキャッシュ領域を用いて、上位装置からの前記データ要求に対応するデータアクセスを行う、ことを特徴とする請求項１９記載のストレージシステム。
【請求項２１】
前記上位装置からのデータ要求を受けた第一のキャッシュノードにおいて、前記データ要求から一意的に決定される単位領域から特定される記憶制御ノードに、単位領域の制御権を要求し、当該制御権を持つ第二のキャッシュノードが存在する場合には、前記第二のキャッシュノードに、第一のキャッシュノード以外のアクセスを禁止させ、該制御権を持つ第二のキャッシュノードの該当するキャッシュ領域を用いて、前記上位装置のデータ要求を処理し、前記制御権を持つ第二のキャッシュノードが存在しない場合には、前記制御権を、第一のキャッシュノードに付与したことを登録して通知させ、
前記制御権が付与された第一のキャッシュノードは、前記第一のキャッシュノードのキャッシュを用いて、前記キャッシュ領域の入出力の処理を行う、ことを特徴とする請求項１９又は２０記載のストレージシステム。
【請求項２２】
前記制御の許可が、前記単位領域を、一つのキャッシュノードが制御する許可である制御権よりなり、
前記制御権は、前記単位領域をキャッシュページ単位に対応付けて、キャッシュノードに割当てられ、
一つ又は複数の前記記憶制御ノードにおいて、ある制御権がどのキャッシュノードに割当てられているかを管理する、ことを特徴とする請求項１９乃至２１のいずれか一に記載のストレージシステム。
【請求項２３】
前記制御権を持つキャッシュノードは、キャッシュの制御の許可を持ち、
前記制御権を持たないキャッシュノードは、前記制御権を持つキャッシュノードが存在する場合に、前記制御権を持つキャッシュノードの該当するキャッシュページに対して、データ要求に応じて読み出し又は書き込みを行う、ことを特徴とする請求項２２記載のストレージシステム。
【請求項２４】
キャッシュヒット時に、前記キャッシュノードは、データ読み出し要求の場合、該当するキャッシュページからデータを前記上位装置に転送し、
データ書き込み要求の場合、該当するキャッシュページにデータを書き込んだ時点で、前記上位装置に対して、処理の完了を返し、前記データを前記ストレージ装置に書き込む、ことを特徴とする請求項１９記載のストレージシステム。
【請求項２５】
キャッシュミスの場合、前記制御権を管理するキャッシュノードへ通知し、
該当するキャッシュページの制御権を保持するキャッシュノードが存在する場合には、前記キャッシュノードは、データ読み出し要求であれば、前記制御権を保持するキャッシュノードの該当するキャッシュページから、相互通信手段を経由して、データを転送する、ことを特徴とする請求項２２記載のストレージシステム。
【請求項２６】
上位装置からのデータ書き込み要求に対して、前記上位装置からの書き込みデータを、相互通信手段を経由して制御権を保持するキャッシュノードの該当するキャッシュページにデータを書き込み、
前記上位装置に対して処理の完了を返し、前記上位装置からの書き込みデータを前記ストレージ装置に書き込む、ことを特徴とする請求項２２記載のストレージシステム。
【請求項２７】
前記キャッシュノードが、
前記上位装置と接続され、前記上位装置からのデータ読み出し要求またはデータ書き込み要求を受信し、前記上位装置とキャッシュノードとの間のデータの入出力を処理する上位装置インターフェース手段と、
データ処理装置と、
を備え、
前記データ処理装置は、
前記上位装置インターフェース手段が受信した前記上位装置からのデータ読み出し要求またはデータ書き込み要求のコマンドを受け取り、前記コマンドに応じた処理を制御するコマンド制御手段と、上位装置からのデータ読み出し要求またはデータ書き込み要求から一意的に決定される単位領域を一つのキャッシュノードが制御する許可である制御権を管理するノードを特定する制御権管理ノード特定手段と、
ローカルメモリと、
キャッシュの検索処理、及び、前記ローカルメモリに格納されたキャッシュを管理制御するキャッシュ制御手段と、
論理記憶空間がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報と、キャッシュの管理情報と、キャッシュノードの制御情報を格納する制御メモリ部と、
前記上位装置との間で入出力されるデータを、ページ単位に一時的に格納するキャッシュページ部と、
を備え、
キャッシュノードのデータ通信を制御し、相互通信手段を介して他のキャッシュノードおよび記憶制御ノードとの通信も処理するコントローラと、
を備えている、ことを特徴とする請求項２２記載のストレージシステム。
【請求項２８】
前記記憶制御ノードは、
少なくとも一つのストレージ装置と接続され、前記ストレージ装置と記憶制御ノードの間のデータの入出力を行うストレージ装置インターフェース手段と、
データ処理装置と、
を備え、
前記データ処理装置は、
前記ストレージ装置への入出力コマンド処理を制御するストレージ装置制御手段と、
前記上位装置からのデータ読み出し要求またはデータ書き込み要求から一意的に決定される単位領域を一つのキャッシュノードが制御する許可である制御権に関して、複数のキャッシュノードからの制御権に対する処理要求を実行する制御権管理手段と、
記憶制御ノードの制御情報やストレージシステムの装置構成情報を格納する制御メモリ部と、
キャッシュページ単位毎に、制御権をどのノードが持つかを示す制御権制御情報と、を備えたローカルメモリと、
相互通信手段に接続され、他のキャッシュノードおよび記憶制御ノードとの通信を制御するコントローラと、
を備えている、ことを特徴とする請求項２２記載のストレージシステム。
【請求項２９】
前記キャッシュノードにおいて、
前記上位装置インターフェース手段が、前記上位装置からのデータ読み出し要求又はデータ書込み要求のコマンドを受け取り、
前記コマンド制御手段が、前記コマンドを解析し、
前記キャッシュ制御手段が、前記コマンド制御手段の解析結果を受けて、該要求のデータが該当するキャッシュページが既にキャッシュページ部にあるか否か、前記制御メモリ部を検索して判定し、
前記判定の結果、該当するキャッシュページが前記キャッシュページ部上に存在する場合、該キャッシュページを排他処理した後、データ読み出し要求であれば、該当するデータを前記キャッシュページ部の当該キャッシュページより読み出して前記上位装置へ転送し、
データ書込み要求であれば、前記上位装置より送られたデータを、前記キャッシュページ部の該当キャッシュページに書き込む、ことを特徴とする請求項２７記載のストレージシステム。
【請求項３０】
前記キャッシュノードにおいて、
該当するキャッシュページがキャッシュページ部に存在しない場合、前記制御権管理ノード特定手段により、該当ページに対する制御権の要求を通知すべき制御権管理ノードを特定し、
前記制御権管理ノード特定手段は、前記制御メモリ部に格納された記憶空間構成情報を参照し、制御権要求を通知すべき制御権管理ノードである記憶制御ノードを特定し、
該当する制御権管理ノードを特定した後、前記コントローラに通知を指示し、前記相互通信手段を介して特定した記憶制御ノードへ制御権の要求を通知する、ことを特徴とする請求項２７記載のストレージシステム。
【請求項３１】
前記制御権の要求の通知を受ける記憶制御ノードにおいて、
前記コントローラが、前記制御権要求を受信し、
前記制御権管理手段が、該制御権の要求を判断し、制御権の判定の処理を行い、その際、前記制御権管理手段は、制御権管理情報を検索して、該当するページの論理アドレスがあるかを判定し、
該制御権要求のデータに対応するページの制御権保持ノードが存在しなかった場合、要求元のキャッシュノードを、該ページ領域のマスタとして新たに制御権を付与して、制御権管理情報に登録し、
該制御権を登録後、前記コントローラに通知を指示し、前記相互通信手段を介して制御権を登録したことを要求元のキャッシュノードに通知する、ことを特徴とする請求項２８記載のストレージシステム。
【請求項３２】
制御権が与えられたことを受信したキャッシュノードは、自キャッシュノード内で該当するキャッシュページを確保して排他処理を行い、
前記上位装置からの要求がデータ読み出し要求であれば、記憶制御ノードに該当するデータのストレージ装置より読み出しを指示し、キャッシュノードの該当キャッシュページに格納し、前記上位装置へ転送する、ことを特徴とする請求項１９記載のストレージシステム。
【請求項３３】
前記上位装置からの要求がデータ書き込み要求であれば、前記上位装置より送られたデータを該当するキャッシュページに書き込み、前記上位装置に対して、処理の完了を返し、前記データをストレージ装置に書き込み、
前記上位装置の要求処理完了後、キャッシュノードのキャッシュ制御手段は、制御メモリ部のキャッシュ管理情報を更新し、排他を解除する、ことを特徴とする請求項２７記載のストレージシステム。
【請求項３４】
前記記憶制御ノードは、前記制御権管理情報を検索して該当するページの論理アドレスを見つけ、制御権保持ノードが存在することが判明した場合、前記制御権保持ノードに対して、制御権要求元ノードであるキャッシュノードの該当キャッシュページの利用要求を指示し、
前記記憶制御ノードの制御権管理手段は、前記コントローラに通知を指示し、前記相互通信手段を介して、キャッシュノードに該当キャッシュページの利用要求を通知し、
前記制御権保持ノードをなすキャッシュノードにおいて、
前記コントローラにて、前記記憶制御ノードより、キャッシュノードの該当キャッシュページの利用要求を受け取り、
前記キャッシュ制御手段が、該当キャッシュページを排他処理し、キャッシュページへアクセスするためのアドレス情報を、前記コントローラから制御権要求元ノードであるキャッシュノードに対して相互通信手段を介し通知し、
前記アドレス情報の通知を受けたキャッシュノードは、
前記上位装置からの要求がデータ読み出し要求であれば、キャッシュノードの該当キャッシュページに格納されたデータを上位装置へ転送し、
前記上位装置からの要求がデータ書き込み要求であれば、前記上位装置より送られたデータをキャッシュノードの該当するキャッシュページに書き込み、上位装置に対して処理の完了を返し、前記データをストレージ装置に書き込む、ことを特徴とする請求項２８記載のストレージシステム。
【請求項３５】
前記キャッシュノードと、前記記憶制御ノードとを一体のノードに構成してなる、ことを特徴とする請求項１９乃至３４のいずれか一に記載のストレージシステム。
【請求項３６】
上位装置に接続され入出力処理を行う、キャッシュを有する複数のキャッシュノードと、
複数のストレージ装置と、
複数のストレージ装置に接続され入出力処理を行う複数の記憶制御ノードと、
を備えたストレージシステムのキャッシュ制御方法であって、
前記いずれかのノードにおいて、上位装置から要求されたデータを識別する情報から一意的に決定される単位領域毎に、どのキャッシュノードがキャッシュ制御の許可を有するかを管理する工程を含む、ことを特徴とするストレージシステムのキャッシュ制御方法。
【請求項３７】
前記キャッシュノードが、前記上位装置からのデータ要求を受けて、前記キャッシュノードでキャッシュを検索する工程と、
キャッシュヒットの場合、前記キャッシュノードは、キャッシュ領域を用いてデータアクセスを行う工程を特徴とする請求項３６記載のストレージシステムのキャッシュ制御方法。
【請求項３８】
前記キャッシュノードが、前記上位装置からのデータ要求を受けて、前記キャッシュノードでキャッシュを検索する工程と、
キャッシュミスヒットの場合、前記キャッシュノードは、該当する記憶制御ノードに所定の許可を要求し、該許可を持つキャッシュノードが存在する場合、該許可を持つキャッシュノードに排他処理させ、該許可を持つキャッシュノードの該当するキャッシュ領域を用いて、前記上位装置のデータ要求を処理する工程と、
該許可を持つキャッシュノードが無い場合、前記キャッシュノードは、該当する許可を、要求元のキャッシュノードに付与したことを登録して通知させる工程と、
該当する許可が付与されたキャッシュノードは、該キャッシュノードのキャッシュでキャッシュ制御する工程と、
を含む、ことを特徴とする請求項３６記載のストレージシステムのキャッシュ制御方法。
【請求項３９】
前記上位装置からのデータ読み出し要求またはデータ書き込み要求から一意的に決定される単位領域をある一つのノードだけがシステム内で制御する許可である制御権よりなり、
キャッシュページ単位に、所定のキャッシュノードに割当てられる制御権を、前記複数の記憶制御ノードにて、ある制御権がどのキャッシュノードに割当てられているかを管理する工程を含む、ことを特徴とする請求項３６記載のストレージシステムのキャッシュ制御方法。
【請求項４０】
制御権を持つキャッシュノードは、他のキャッシュノードに通信することなく、キャッシュの制御が可能とされ、
制御権を持たないキャッシュノードは、制御権を持つキャッシュノードが存在する場合に、制御権を持つノードの該当するキャッシュページに対して、読み出しと書き込みを行う工程を含む、ことを特徴とする請求項３６記載のストレージシステムのキャッシュ制御方法。
【請求項４１】
キャッシュヒット時に、該当するキャッシュページに対して制御権を具備するキャッシュノードは、データ読み出し要求であれば、該当するキャッシュページからデータを前記上位装置に転送し、データ書き込み要求であれば、該当するキャッシュページにデータを書き込んだ時点で、前記上位装置に対して、処理の完了を返し、該データを、前記ストレージ装置に書き込む工程を含む、ことを特徴とする請求項３９記載のストレージシステムのキャッシュ制御方法。
【請求項４２】
キャッシュミスの場合、制御権を管理するノードへ通知して、該当するキャッシュページの制御権を保持するノードが存在する場合には、要求を受理したキャッシュノードは、前記要求がデータ読み出し要求であれば、制御権を保持するノードの該当するキャッシュページから、相互通信手段を経由して、データを転送する工程を含む、ことを特徴とする請求項３９記載のストレージシステムのキャッシュ制御方法。
【請求項４３】
データ書き込み要求の場合、前記上位装置からの書き込みデータを、相互通信手段を経由して制御権保持ノードの該当するキャッシュページにデータを書き込み、前記上位装置に対して処理の完了を返し、前記データを、前記ストレージ装置に書き込む工程を含む、ことを特徴とする請求項３９記載のストレージシステムのキャッシュ制御方法。
【請求項４４】
前記キャッシュノードにおいて、前記上位装置からのデータ読み出し要求又はデータ書き込み要求のコマンドを受け、コマンド制御手段にて、要求を解析する工程と、
前記解析結果を受けて、該要求のデータが該当するキャッシュページが既にキャッシュページ部にあるか否か、制御メモリ部を検索して判定する工程と、
該当するキャッシュページがキャッシュページ部上に存在する場合、該キャッシュページを排他処理した後、データ読み出し要求であれば、該当するデータをキャッシュページ部の当該キャッシュページより読み出して前記上位装置へ転送する工程と、
データ書込み要求であれば、前記上位装置より送られたデータをキャッシュページ部上の該当キャッシュページに書き込む工程と、
を含む、ことを特徴とする請求項３６記載のストレージシステムのキャッシュ制御方法。
【請求項４５】
該当するキャッシュページがキャッシュページ部上に存在しない場合、キャッシュノードは、該当ページに対する制御権の要求を通知すべき制御権管理ノードを特定する工程と、
前記制御メモリ部に格納された記憶空間構成情報を参照し、制御権要求を通知すべき制御権管理ノードである記憶制御ノードを特定し、該当する制御権管理ノードを特定した後に、前記特定した記憶制御ノードに対して制御権要求を通知する工程と、
前記制御権要求の通知を受ける記憶制御ノードでは、前記制御権要求を受信し、前記制御権要求を判断し、制御権判定の処理を行う工程と、
前記制御権管理情報を検索して、該当するページの論理アドレスが存在するか否か判定する工程と、
該制御権要求のデータに対応するページの制御権保持ノードが存在しなかった場合、要求してきたキャッシュノードを当該ページ領域のマスタとして新規に制御権を付与し、制御権管理情報に登録し、前記制御権の登録後に、制御権を登録したことを要求元のキャッシュノードに通知する工程と、
該当ページの制御権が与えられたことを受信したキャッシュノードは、自キャッシュノード内で該当するキャッシュページを確保して排他処理を行う工程と、
前記上位装置からの要求がデータ読み出し要求であれば、記憶制御ノードに該当するデータのストレージ装置より読み出しを指示し、キャッシュノードの該当キャッシュページに格納し、上位装置へ転送する工程と、
を含む、ことを特徴とする請求項３９記載のストレージシステムのキャッシュ制御方法。
【請求項４６】
上位装置からの要求がデータ書き込み要求であれば、上位装置より送られたデータを該当するキャッシュページに書き込む工程と、
前記上位装置に対して、処理の完了を返し、前記データをストレージ装置に書き込む工程と、
前記上位装置の要求処理完了後、前記キャッシュノードは、制御メモリ部のキャッシュ管理情報を更新し、排他を解除する、ことを特徴とする請求項３６記載のストレージシステムのキャッシュ制御方法。
【請求項４７】
前記制御権管理情報を検索して該当するページの論理アドレスがあり、制御権保持ノードがあった場合、記憶制御ノードは、制御権保持ノードに対し、制御権要求元ノードであるキャッシュノードの該当キャッシュページの利用要求を指示する工程と、
記憶制御ノードは、相互通信手段を介して、キャッシュノードに該当キャッシュページの利用要求を通知する工程と、
該当キャッシュページの制御権保持ノードであるキャッシュノードは、該キャッシュノードのコントローラにて、記憶制御ノードより、キャッシュノードの該当キャッシュページの利用要求を受け取り、前記キャッシュノードのキャッシュ制御手段にて、該当キャッシュページを排他する工程と、
該当キャッシュページの排他後、該当キャッシュページへアクセスするためのアドレス情報を、キャッシュノードのコントローラに、制御権要求元ノードであるキャッシュノードに対して通知を指示し、相互通信手段を介し通知する工程と、
該キャッシュページへアクセスするためのアドレス情報の通知を受けたキャッシュノードは、上位装置からの要求がデータ読み出し要求であれば、キャッシュノードの該当キャッシュページに格納されたデータを上位装置へ転送する工程と、
前記上位装置からの要求がデータ書き込み要求であれば、前記上位装置より送られたデータをキャッシュノードの該当するキャッシュページに書き込み、上位装置に対して処理の完了を返し、前記データをストレージ装置に書き込む工程と、
を含む、ことを特徴とする請求項３９記載のストレージシステムのキャッシュ制御方法。
【請求項４８】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して要求を発行する手段を備え、
前記管理処理部は、前記処理部からの要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記単位領域の制御権を有する処理部に、前記要求を発行した処理部に対して、前記単位領域内のデータに対応するキャッシュメモリのキャッシュ領域へアクセスするための情報を与えるように指示する手段を備えている、ことを特徴とするキャッシュ制御システム。
【請求項４９】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するシステムのキャッシュ制御方法であって、
前記複数の処理部のうちの少なくとも１つを、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)とし、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して要求を発行する工程と、
前記管理処理部は、前記処理部からの要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記単位領域の制御権を有する処理部に、前記要求を発行した処理部に対して、前記単位領域内のデータに対応するキャッシュメモリのキャッシュ領域へアクセスするための情報を与えるように指示する工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項５０】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
第一の処理部が、該当する単位領域に関する制御権を持たない場合、前記第一の処理部は、前記管理処理部に対して、該当する単位領域または単位領域内の所定のデータを識別する情報を含む第一の信号を送信する手段を備え、
前記管理処理部は、
前記第一の処理部からの前記第一の信号を受け、前記単位領域の制御権を現在どの処理部で有するかを記憶管理する記憶部を参照して、前記制御権を有する処理部を検索する手段と、
前記検索の結果、該当する単位領域に関する制御権を有する第二の処理部が存在する場合には、前記第二の処理部に対して、該当する単位領域または前記単位領域内のデータの利用通知の第二の信号を送信する手段と、
を備え、
前記第二の処理部は、前記管理処理部からの前記第二の信号に応じて、該当する単位領域内のデータに対応するキャッシュメモリのキャッシュ領域のデータを、前記第一の処理部に与える手段を備えている、ことを特徴とするキャッシュ制御システム。
【請求項５１】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
第一の処理部が、該当する単位領域に関する制御権を持たない場合、前記第一の処理部は、前記管理処理部に対して、該当する単位領域または単位領域内の所定のデータを識別する情報を含む第一の信号を送信する手段を備え、
前記管理処理部は、
前記第一の処理部からの前記第一の信号を受け、前記単位領域の制御権を現在どの処理部で有するかを記憶管理する記憶部を参照して、前記制御権を有する処理部を検索する手段と、
前記検索の結果、該当する単位領域に関する制御権を有する第二の処理部が存在する場合には、前記第一の処理部に、前記第二の処理部が該当する単位領域に関する制御権を有することを通知するための第二の信号を送信する手段と、
を備え、
前記第一の処理部は、前記管理処理部からの前記第二の信号を受け、前記該当する単位領域内のデータに対応するキャッシュメモリのキャッシュ領域の利用通知を、前記第二の処理部に送信する手段をさらに備えている、ことを特徴とするキャッシュ制御システム。
【請求項５２】
前記制御権を有する前記第二の処理部は、前記管理処理部からの信号を受け、前記単位領域内の所定のデータに関する更新を前記第一の処理部のみに許可し、他の処理部が更新することを許可しないように制御する手段を備える、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５３】
前記管理処理部は、前記検索の結果、前記単位領域に関する制御権を有する処理部が存在しない場合には、前記制御権を要求した第一の処理部に前記制御権を付与する手段を備えている、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５４】
前記複数の処理部は、通信手段を介して相互に接続される複数のノードに備えられ、
前記単位領域内のデータを一時保存するキャッシュメモリを、１つ以上のノード内に設ける、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５５】
前記複数の処理部は、通信手段を介して相互に接続される複数のノードに備えられ、
前記キャッシュメモリは、前記複数ノードで共有される共有メモリに格納される、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５６】
前記第一の処理部は、前記単位領域と、前記単位領域の処理部との対応を記憶した構成情報を参照して、前記管理処理部を特定する、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５７】
前記第一の処理部は、前記単位領域の制御権を、前記第一の処理部で有するか否か判定する手段を備えている、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５８】
前記管理処理部は、前記単位領域と、前記単位領域の制御権を有する処理部との対応を記憶した制御情報を検索して、前記単位領域の制御権を有する前記第二の処理部を特定する、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項５９】
前記第一の処理部は、前記単位領域をキャッシュのページ単位とし、上位処理手段から要求されたデータを識別する情報から、キャッシュのヒットチェックを行うことで、前記単位領域の制御権を、前記第一の処理部で有するか否か判定する手段を備える、ことを特徴とする請求項５０又は５１記載のキャッシュ制御システム。
【請求項６０】
前記第一の処理部は、前記管理処理部からの前記第二の信号を受けると、前記第一の処理部に要求を行った上位処理手段に応答を返す、ことを特徴とする請求項５１記載のキャッシュ制御システム。
【請求項６１】
複数の処理部により少なくとも１つ以上のキャッシュメモリのキャッシュ制御を行う方法であって、
第一の処理部において、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に対する制御権を持たない場合、前記第一の処理部は、前記複数の処理部のどの処理部が前記単位領域に対する制御権を有するかを管理する処理部(「管理処理部」という)に対して、該当する単位領域または該当する単位領域内の所定のデータを識別する情報を含む第一の信号を送信する工程と、
前記管理処理部は、前記第一の処理部からの前記第一の信号を受け、前記単位領域に関する制御権を現在どの処理部で有するかを記憶管理する記憶部を参照して、前記制御権を有する処理部を検索する工程と、
前記管理処理部は、前記検索の結果、該当する単位領域に関する制御権を有する第二の処理部が存在する場合には、前記第二の処理部に対して、該当する単位領域または前記単位領域内のデータの利用通知の第二の信号を送信する工程と、
前記第二の処理部は、前記管理処理部からの前記第二の信号に応じて、該当する単位領域内のデータに対応するキャッシュメモリのキャッシュ領域のデータを前記第一の処理部に与える工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項６２】
複数の処理部により少なくとも１つ以上のキャッシュメモリのキャッシュ制御を行う方法であって、
第一の処理部において、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に対する制御権を持たない場合、前記第一の処理部は、前記複数の処理部のどの処理部が前記単位領域に対する制御権を有するかを管理する処理部(「管理処理部」という)に対して、該当する単位領域または該当する単位領域内の所定のデータを識別する情報を含む第一の信号を送信する工程と、
前記管理処理部は、前記第一の処理部からの前記第一の信号を受け、前記単位領域に関する制御権を現在どの処理部で有するかを記憶管理する記憶部を参照して、前記制御権を有する処理部を検索する工程と、
前記管理処理部は、前記検索の結果、該当する単位領域に関する制御権を有する第二の処理部が存在する場合には、前記第二の処理部が該当する単位領域に関する制御権を有することを通知するための第二の信号を前記第一の処理部に対して送信する手段と、
前記第一の処理部は、前記管理処理部からの前記第二の信号を受け、前記該当する単位領域内のデータに対応するキャッシュメモリのキャッシュ領域の利用通知を、前記第二の処理部に送信する工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項６３】
前記制御権を有する第二の処理部は、前記管理処理部からの指示を受け、前記単位領域内の所定のデータに対応するキャッシュ領域のアクセスを、前記第一の処理部に許可する工程を有する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項６４】
前記管理処理部は、前記検索の結果、前記単位領域の制御権を有する第二の処理部が存在しない場合には、前記制御権を要求した前記第一の処理部に、前記単位領域に対する制御権を付与する工程を含む、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項６５】
前記第一の処理部が、前記単位領域と、前記単位領域との対応を記憶した構成情報を参照して、前記管理処理部を特定する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項６６】
前記管理処理部は、前記単位領域と、前記単位領域の制御権を有する処理部との対応を記憶した制御情報を検索して、前記単位領域の制御権を有する前記第二の処理部を特定する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項６７】
前記単位領域内の所定のデータに対応するキャッシュ領域のアクセス終了後、前記要求元の第一の処理部が、前記キャッシュ領域の使用完了を通知する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項６８】
前記制御権を有する前記第二の処理部は、前記第一の処理部からの、前記キャッシュ領域の使用完了の通知を受け、前記第一の処理部の前記キャッシュ領域のアクセスの許可を解除する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項６９】
前記第一の処理部は、前記単位領域の制御権を、前記第一の処理部に有するか否か判定する工程を有する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項７０】
前記第一の処理部は、単位領域をキャッシュのページ単位とし、上位処理手段から要求されたデータを識別する情報から、キャッシュのヒットチェックを行うことで、前記単位領域の制御権を、前記第一の処理部に有するか否か判定する工程を有する、ことを特徴とする請求項６１又は６２記載のキャッシュ制御方法。
【請求項７１】
前記第一の処理部は、前記管理処理部からの前記第二の信号を受けると、前記第一の処理部に要求を行った上位処理手段に応答を返す、ことを特徴とする請求項６２記載のキャッシュ制御方法。
【請求項７２】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部を検索するように要求を発行する手段を備え、
前記管理処理部は、前記処理部からの要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記単位領域の制御権を有する処理部に対して、前記要求を発行した処理部の情報を通知する手段を備え、
前記単位領域の制御権を有する処理部は、前記管理処理部からの通知情報を受け、前記要求を発行した処理部に対して、前記単位領域内のデータのアドレス情報を通知し、
前記要求を発行した処理部は、前記単位領域の制御権を有する処理部から、通知された前記アドレス情報を用いて、アクセス対象の前記単位領域のデータのアクセスを行う、ことを特徴とするキャッシュ制御システム。
【請求項７３】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部の検索を行うように要求を発行する手段を備え、
前記管理処理部は、前記処理部からの前記要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記単位領域の制御権を有する処理部に対して、前記要求を発行した処理部の情報を通知する手段を備え、
前記単位領域の制御権を有する処理部は、前記管理処理部からの通知情報を受け、リードアクセスである場合、前記要求を発行した処理部に対して、前記単位領域内のデータに対応するキャッシュメモリのデータを供給する、ことを特徴とするキャッシュ制御システム。
【請求項７４】
ライトアクセスの場合、前記要求を発行した処理部は、前記管理処理部からの通知情報を受けた前記単位領域の制御権を有する処理部に対して、転送開始を通知し、書き込みデータの転送を行う、ことを特徴とする請求項７３記載のキャッシュ制御システム。
【請求項７５】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、
キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部の検索を行うように要求を発行する手段を備え、
前記管理処理部は、前記処理部からの前記要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記要求を発行した処理部に対して、前記単位領域の制御権を有する処理部の情報を通知する手段を備えている、ことを特徴とするキャッシュ制御システム。
【請求項７６】
前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、リードアクセスの場合には、前記単位領域の制御権を有する処理部に利用要求を通知し、
前記単位領域の制御権を有する処理部は、前記単位領域内のデータに対応するキャッシュメモリのデータを、前記要求を発行した処理部に転送する、ことを特徴とする請求項７５記載のキャッシュ制御システム。
【請求項７７】
前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、ライトアクセスの場合には、書き込みデータを、前記単位領域の制御権を有する処理部に転送する、ことを特徴とする請求項７５記載のキャッシュ制御システム。
【請求項７８】
前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、前記単位領域の制御権を有する処理部に対して、利用要求を通知し、
前記単位領域の制御権を有する処理部は、前記利用要求を受け、前記要求を発行した処理部に対して、アクセス対象の単位領域のデータのアドレス情報を通知し、
前記要求を発行した処理部は、前記単位領域の制御権を有する処理部から通知された前記アドレス情報を用いて、アクセス対象の前記単位領域のデータのアクセスを行う、ことを特徴とする請求項７５記載のキャッシュ制御システム。
【請求項７９】
前記管理処理部は、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在しない場合、前記要求を発行した処理部に対して前記単位領域の制御権を付与する、ことを特徴とする請求項７２乃至７８のいずれか一に記載のキャッシュ制御システム。
【請求項８０】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御方法であって、
前記複数の処理部のうちの少なくとも１つを、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)として機能させ、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部を検索するように要求を発行する工程と、
前記管理処理部は、前記処理部からの要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記単位領域の制御権を有する処理部に対して、前記要求を発行した処理部の情報を通知する工程と、
前記単位領域の制御権を有する処理部は、前記管理処理部からの通知情報を受け、前記要求を発行した処理部に対して、前記単位領域内のデータのアドレス情報を通知する工程と、
前記要求を発行した処理部は、前記単位領域の制御権を有する処理部から、通知された前記アドレス情報を用いて、アクセス対象の前記単位領域のデータのアクセスを行う工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項８１】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御方法であって、
前記複数の処理部のうちの少なくとも１つを、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)として機能させ、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部の検索を行うように要求を発行する工程と、
前記管理処理部は、前記処理部からの前記要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記単位領域の制御権を有する処理部に対して、前記要求を発行した処理部の情報を通知する工程と、
前記単位領域の制御権を有する処理部は、前記管理処理部からの通知情報を受け、リードアクセスである場合、前記要求を発行した処理部に対して、前記単位領域内のデータに対応するキャッシュメモリのデータを供給する工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項８２】
ライトアクセスの場合、前記要求を発行した処理部は、転送開始を、前記管理処理部からの通知情報を受けた前記単位領域の制御権を有する処理部に通知し、前記単位領域の制御権を有する処理部への書き込みデータの転送を行う、ことを特徴とする請求項８１記載のキャッシュ制御方法。
【請求項８３】
少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御方法であって、
前記複数の処理部のうちの少なくとも１つを、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)として機能させ、
前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部の検索を行うように要求を発行する工程と、
前記管理処理部は、前記処理部からの前記要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記要求を発行した処理部に、前記単位領域の制御権を有する処理部の情報を通知する工程と、
を含む、ことを特徴とするキャッシュ制御方法。
【請求項８４】
前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、リードアクセスの場合には、前記単位領域の制御権を有する処理部に対して、利用要求を通知する工程と、
前記利用要求に応答して、前記単位領域の制御権を有する処理部が、前記単位領域内のデータに対応するキャッシュメモリのデータを、前記要求を発行した処理部に、転送する工程と、
を含む、ことを特徴とする請求項８３記載のキャッシュ制御方法。
【請求項８５】
前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、ライトアクセスの場合には、書き込みデータを、前記単位領域の制御権を有する処理部に転送する工程を含む、ことを特徴とする請求項８３記載のキャッシュ制御方法。
【請求項８６】
前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、前記単位領域の制御権を有する処理部に対して利用要求を通知する工程と、
前記単位領域の制御権を有する処理部が、前記利用要求を受け、アクセス対象の単位領域のデータのアドレス情報を、前記要求を発行した処理部に通知する工程と、
前記要求を発行した処理部は、前記単位領域の制御権を有する処理部から通知された前記アドレス情報を用いて、アクセス対象の前記単位領域のデータのアクセスを行う工程と、を含む、ことを特徴とする請求項８３記載のキャッシュ制御方法。
【請求項８７】
前記管理処理部は、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在しない場合、前記要求を発行した処理部に対して前記単位領域の制御権を付与する、ことを特徴とする請求項８０乃至８６のいずれか一に記載のキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ制御技術及びストレージシステムに関し、特に、分散システムのキャッシュ制御に適用した場合に好適とされるシステム及びキャッシュ制御方法に関する。
【背景技術】
【０００２】
ディスクアレイ装置に代表されるストレージシステムでは、磁気ディスク装置などのストレージ装置のアクセス速度の遅さを緩衝し、単位時間当りの入出力数やスループットなどの性能向上のためにキャッシュメモリが備えられている。
【０００３】
ディスクアレイ装置の全容量の中で、アクセス頻度の高い領域は限られているので、その部分のデータをキャッシュメモリ上に一時保存しておくことにより、ホストコンピュータへの応答の高速化を図ることができる。
【０００４】
このようなディスクアレイ装置において、ホストコンピュータからの処理やストレージ装置への入出力処理を行うディレクタ部を複数搭載するマルチディレクタ型のストレージシステムが知られている。
【０００５】
このようなディスクアレイ装置に関する刊行物として、後記特許文献１、２等の記載が参照される。
【０００６】
後記特許文献１に記載されたストレージシステムは、複数のディレクタと共有メモリを備えたディスクアレイ装置において、共有メモリへのアクセス回数を省く制御が行われている。特許文献１に記載されたストレージシステムは、ホストディレクタと、ディスクディレクタと、ホストコンピュータとの間で通信される入出力データを一時的に格納するキャッシュページ部を有する共有メモリとを備え、ホストディレクタには、ローカルメモリを搭載している。このストレージシステムは、次のように動作する。
【０００７】
すなわち、各ホストディレクタは、ホストコンピュータからのデータ要求を受領すると、共有メモリの該当するキャッシュページを、データ送受信中に他のディレクタによって操作されないように排他制御する処理を行い、ホストコンピュータからの該データ要求を処理し終わっても、当該キャッシュページを各ホストディレクタのローカルメモリに設けたキャッシュ制御領域で管理し、自ホストディレクタだけで使用中の解除を行い、当該キャッシュページへのアクセスが連続するなど再度あった場合に、共有メモリへのアクセスを省略し、自ホストディレクタで使用中に設定し処理し、当該キャッシュページを利用している。
【０００８】
しかし、このような構成では、複数のディレクタから共有メモリへアクセスされ、自ディレクタで管理していないキャッシュページの利用には共有メモリへアクセスして処理する必要があり、ディスクアレイ装置の規模が大きくなってくるとアクセスが競合する。また、自ディレクタで管理しているキャッシュページでも、キャッシュページは共有メモリにあるため、キャッシュページへのアクセスには、共有メモリまでの経路の分だけ時間がかかり、このため、ホストコンピュータに対するレスポンスの時間を、特段に速めることは、困難である。
【０００９】
すなわち、共有メモリへのレイテンシが大きく、また、共有メモリへのアクセスが集中すると、性能の低下が生じ、さらに、アクセス集中を分散させようとすると、構成の大規模化を招く。
【００１０】
また後記特許文献２に記載されたストレージシステムは、ホストディレクタと、ディスクディレクタの数を増やして大規模な構成をするディスクアレイ・システムである。このようなディスクアレイ・システムは、上位装置と通信を行う複数のホストディレクタと、該ホストディレクタごとに接続されるキャッシュメモリと、１個以上のディスクと接続する１個以上のディスクディレクタと、ホストディレクタとディスクディレクタを接続する１個以上のネットワーク手段とを備え、次のように動作する。
【００１１】
すなわち、ホストコンピュータからのデータ読み出し要求またはデータ書き込み要求を受け取ったホストディレクタは、該ホストディレクタに接続されたキャッシュメモリ内に要求されたデータが無かった場合は、ディスクディレクタへデータ要求を送出し、該データ要求を受け取ったディスクディレクタは、該ディスクディレクタに接続されたディスクドライブから読み出したデータを複数のホストディレクタのどのホストディレクタに接続されたキャッシュ手段に格納したかを示す記録情報を調べる。該要求されたデータを他のホストディレクタに送出したことが無かった場合には、ディスクディレクタが当該データをディスクから読み出して該ホストディレクタに送出する。当該ホストディレクタは、受け取ったデータをキャッシュメモリへ格納し、データ書き込み要求であれば、ホストコンピュータから受け取った書き込みデータをキャッシュメモリに書き込んで変更を行い、データ読み出し要求であれば、キャッシュメモリの当該データを転送する。
【００１２】
該要求されたデータを他のホストディレクタに送出したことがあった場合は、そのホストディレクタに対して、当該データを無効化させる。その際、当該データに書き換えが生じており、それがまだディスクに書き戻されていなかった場合には、ディスクディレクタは、当該ホストディレクタを介して書き換えられたデータを受け取り、新たにディスクから読み出したデータの上に上書きし、その後、そのデータをホストディレクタに送出する。
【００１３】
ホストディレクタは、受け取ったデータをキャッシュメモリへ格納し、ホストコンピュータから受け取った書き込みデータを、キャッシュメモリに書き込んで変更を行う。
【００１４】
当該データに書き換えが生じていなければ、無効化した後、新たにディスクから読み出したデータを要求元ホストディレクタに送出する。
【００１５】
当該ホストディレクタは、受け取ったデータをキャッシュメモリへ格納し、データ書き込み要求であればホストコンピュータから受け取った書き込みデータをキャッシュメモリに書き込んで変更を行い、データ読み出し要求であれば、キャッシュメモリの当該データを転送する。
なお、入出力要求に応じて、対象の記憶ボリウムに対する入出力制御を行うユニットを特定する手法として、例えば後記特許文献３には、データ入出力要求を受信するためのホストインタフェース制御部が形成されたチャネル制御ユニットと、前記データ入出力要求に応じて、データを記憶するための記憶ボリウムに対する前記データの入出力制御を行うためのディスクインタフェース制御部が形成されたディスク制御ユニットと、前記データを記憶するためのメモリが形成されたキャッシュメモリユニットと、前記ホストインタフェース制御部と前記ディスクインタフェース制御部と前記メモリとが形成されたストレージ制御ユニットとを挿抜可能な装着部と、前記チャネル制御ユニット、前記ディスク制御ユニット、前記キャッシュメモリユニット、及び前記ストレージ制御ユニットを通信可能に接続する内部接続部とを備え、前記装着部には少なくとも、前記ストレージ制御ユニットの前記メモリに、前記データ入出力要求の対象となっている前記記憶ボリウムに対する前記入出力制御を行う前記ユニットを特定するための情報が記憶された、複数の前記ストレージ制御ユニットが装着される記憶デバイス制御装置の制御方法であって、
ある前記ストレージ制御ユニットが、前記データ入出力要求を受信するステップと、
前記ストレージ制御ユニットが前記情報を参照し、前記入出力要求の対象となっている前記記憶ボリウムに対する前記入出力制御を行う前記ユニットを特定するステップと、
前記入出力制御を行う前記ユニットが前記ストレージ制御ユニットである場合には、前記ストレージ制御ユニットが前記入出力制御を行い、前記入出力制御を行う前記ユニットが前記ストレージ制御ユニットでない場合には、他の前記ストレージ制御ユニットが前記入出力制御を行うステップとを備えることを特徴とする記憶デバイス制御装置の制御方法が開示されている。
【００１６】
【特許文献１】特開２００３−２２８４６１号公報
【特許文献２】特開２００３−３４５５２０号公報
【特許文献３】特開２００４−３１８４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上記した従来のストレージシステムでは、ディスクからのデータ読み出し時間やホストディレクタとディスクディレクタ間での無効化処理などがネックとなる。
【００１８】
複数のホストディレクタを有するストレージシステムにおいて、ホストからのデータ要求を受けたホストディレクタが、自身のキャッシュ手段でキャッシュミスした際に、他のホストディレクタが保持、あるいは、管理しているキャッシュページを利用できない、という問題点を有している。
【００１９】
その理由は、従来のストレージシステムでは、あるディレクタが保持する、あるいは、管理しているキャッシュページを、他のディレクタが利用することについて考慮されていないためである。
【００２０】
キャッシュ手段を有する複数のホストディレクタと、ディスクディレクタと、ホストディレクタとディスクディレクタを接続するネットワーク手段から構成されるストレージシステムにおいて、単位時間当りの入出力数を大きく向上させることができない、という問題点を有している。
【００２１】
その理由は、あるホストディレクタにおいてキャッシュミスした際、ディスク読み出しの時間がかかるためである。さらに、ディスクから読み出したデータを他のホストディレクタのキャッシュ手段に格納していた場合、一貫性の制御の時間もかかる。
【００２２】
キャッシュ手段を有する複数のホストディレクタと、ディスクディレクタと、ホストディレクタとディスクディレクタを接続するネットワーク手段から構成されるストレージシステムにおいて、記憶空間の拡張と増加、接続上位装置数の増大に合わせてディレクタの数が大規模になると、単位時間あたりの入出力数やデータ転送速度などの性能の向上が困難となる。
【００２３】
その理由は、各ホストディレクタでキャッシュミスした場合に、ディスクディレクタによりディスクの読み出しを行うため、ホストディレクタの数が大規模になると、ディスクディレクタのアクセス集中が生じるためである。
【００２４】
したがって、本発明の主たる目的は、キャッシュ利用効率を向上するキャッシュ制御システムとストレージシステム及びキャッシュ制御方法を提供することにある。
【００２５】
本発明は、上記目的を達成しながら、レイテンシの削減、リソース競合の回避を可能とし、性能を向上することができるキャッシュ制御システムとストレージシステム及びキャッシュ制御方法を提供することもその目的としている。
【００２６】
本発明の他の目的は、ストレージ装置へのアクセス回数を省き、上位装置に対して、単位時間当りの入出力数やデータ転送速度の性能を大きく向上させるキャッシュ制御システムとストレージシステム及びキャッシュ制御方法を提供することにある。
【００２７】
本発明のさらに他の目的は、記憶空間の拡張と増加、上位装置の増加にあわせて拡張でき、性能も向上できるキャッシュ制御システムとストレージシステム及びキャッシュ制御方法を提供することにある。
【課題を解決するための手段】
【００２８】
本願で開示される発明は、上記目的を達成するため、代表的には、概略以下の通りとされる。
【００２９】
本発明の一つのアスペクト（側面）に係るキャッシュ制御システムは、ストレージ装置の情報を格納するキャッシュメモリと、複数の処理部と、を有し、キャッシュ対象のアドレス空間の特定の領域に関する制御権をどの処理部が持っているかを管理する処理部（「管理処理部」という）を少なくとも一つ備え、第一の処理部において、処理対象のデータに関する制御権を持たない場合、前記第一の処理部は、前記管理処理部に、該当する制御権に関する情報を含む第一の信号を送信する手段を備え、前記管理処理部は、該当する制御権を現在どの処理部で保持しているかを記憶管理する記憶部を参照して、前記制御権を保持している処理部を検索する手段と、前記検索の結果、前記制御権を保持する第二の処理部が存在する場合には、前記第二の処理部に対して、前記制御権に関する情報を含む第二の信号を送信する手段と、を備え、前記第二の処理部は、前記管理処理部からの前記第二の信号を受け、前記第一の処理部に特定のキャッシュメモリ内のキャッシュ領域へアクセスするための情報を与える手段を備え、前記第一の処理部は、与えられた情報に基づき、処理対象のキャッシュ領域をアクセスする。
【００３０】
本発明に係るキャッシュ制御システムにおいて、前記制御権を保持する第二の処理部は、前記管理処理部からの第二の信号を受け、前記第二の信号より判断される特定のキャッシュメモリ内のキャッシュ領域を排他処理し、前記第一の処理部に前記キャッシュ領域のアクセス情報を与える。
【００３１】
本発明に係るキャッシュ制御システムにおいて、前記管理処理部は、前記検索の結果、前記制御権を保持する処理部が存在しない場合には、前記第一の処理部に対して、前記制御権を付与する手段を備えている。
【００３２】
本発明に係るキャッシュ制御システムにおいて、前記複数の処理部は、通信手段を介して接続されるノードよりなり、前記キャッシュメモリが前記ノード毎に設けられる構成としてもよい。
【００３３】
本発明に係るキャッシュ制御システムにおいて、前記複数の処理部は、通信手段を介して接続される複数のノードよりなり、前記キャッシュページが、複数ノードで共有される共有メモリに格納され、キャッシュ制御情報が前記ノード毎に格納される構成としてもよい。
【００３４】
本発明に係るキャッシュ制御システムにおいて、前記第一の処理部は、管理処理部を特定する手段を有する構成としてもよい。
【００３５】
本発明に係るキャッシュ制御システムにおいて、前記管理処理部は、アドレス空間上の特定のアドレス情報と、前記アドレス情報から判断される制御権を保持する処理部との対応を記憶した制御情報を検索して、制御権を保持する処理部を特定する構成としてもよい。
【００３６】
本発明の他のアスペクト（側面）に係るストレージシステムは、上位装置との入出力を制御しキャッシュ機能を有する複数のキャッシュノードと、ストレージ装置との入出力を制御する複数の記憶制御ノードと、前記複数のキャッシュノードと前記複数の記憶制御ノードの間を相互に接続するネットワーク手段と、を備え、論理的なアドレス空間の特定の領域に関する制御権とキャッシュノードとの対応関係を管理する手段を有する。
【００３７】
本発明に係るストレージシステムにおいて、あるキャッシュノードは、該キャッシュノードで、キャッシュを検索し、キャッシュがあれば、該当するキャッシュ領域を使い、上位装置のデータ要求を処理し、該キャッシュノードにキャッシュが無い場合も、該当する記憶制御ノードに必要な制御権を要求し、該制御権を持つキャッシュノードがあれば、該キャッシュノードに排他処理させ、該制御権を持つキャッシュノードの該当するキャッシュ領域を使い、上位装置のデータ要求を処理し、該制御権を持つキャッシュノードが無ければ、該当する制御権を要求元のキャッシュノードに付与したことを登録して通知させて、制御権を得た自ノードのキャッシュでキャッシュ制御する。
【００３８】
本発明の一つのアスペクト（側面）に係る方法は、上位装置に接続され入出力処理を行う、キャッシュ手段を有する複数のキャッシュノードと、複数の記憶装置と、複数の記憶装置に接続され入出力処理を行う複数の記憶制御ノードと、を備えたストレージシステムのキャッシュ制御方法であって、前記記憶制御ノードは、論理的なアドレス空間の特定の領域に関する制御権を、どのキャッシュノードで有するかを管理する工程を含む。
【００３９】
本発明に係る方法において、
前記キャッシュノードが、前記上位装置からのデータ要求を受けて、前記キャッシュノードでキャッシュを検索する工程と、
キャッシュがあると判断される場合、前記キャッシュノードは、該当するキャッシュ領域を用いてデータアクセスを行う工程と、を含む。
【００４０】
本発明に係る方法において、キャッシュがないと判断される場合、
前記キャッシュノードは、該当する記憶制御ノードに所定の制御権を要求し、該制御権を持つキャッシュノードが存在する場合、該制御権を持つキャッシュノードに排他処理させ、該制御権を持つキャッシュノードの該当するキャッシュ領域を用いて、前記上位装置のデータ要求を処理する工程と、
該制御権を持つキャッシュノードが無い場合、前記キャッシュノードは、特定の記憶制御ノードに対して、該当する制御権を、要求元のキャッシュノードに付与したことを登録して通知させる工程と、
該当する制御権が付与されたキャッシュノードは、該キャッシュノードのキャッシュでキャッシュ制御する工程と、を含む。
本発明の更に別のアスペクトによれば、少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部の検索を行うように要求を発行する手段を備え、前記管理処理部は、前記処理部からの前記要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記単位領域の制御権を有する処理部に対して、前記要求を発行した処理部の情報を通知する手段を備え、前記単位領域の制御権を有する処理部は、前記管理処理部からの通知情報を受け、リードアクセスである場合、前記要求を発行した処理部に対して、前記単位領域内のデータに対応するキャッシュメモリのデータを供給する。本発明において、ライトアクセスの場合、前記要求を発行した処理部は、前記管理処理部からの通知情報を受けた前記単位領域の制御権を有する処理部に対して、転送開始を通知し、書き込みデータの転送を行う。
本発明の更に別のアスペクトによれば、少なくとも１つのキャッシュメモリと、複数の処理部とを有するキャッシュ制御システムであって、キャッシュ対象のアドレス空間の所定のデータのアドレスから一意的に決定される単位領域に関して、どの処理部が制御権を有するかを管理する処理部(「管理処理部」という)を備え、前記複数の処理部の少なくとも１つの処理部は、前記処理部がアクセス対象の単位領域に関する制御権を持たない場合、前記管理処理部に対して、前記単位領域の制御権を有する処理部の検索を行うように要求を発行する手段を備え、前記管理処理部は、前記処理部からの前記要求を受け、前記単位領域の制御権を現在どの処理部が有しているか検索し、前記検索の結果、前記単位領域の制御権を有する処理部が存在する場合、前記要求を発行した処理部に対して、前記単位領域の制御権を有する処理部の情報を通知する手段を備えている。
本発明において、前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、リードアクセスの場合には、前記単位領域の制御権を有する処理部に、利用通知を送信し、前記利用通知を受けた前記単位領域の制御権を有する処理部は、前記単位領域内のデータに対応するキャッシュメモリのデータを、前記要求を発行した処理部に転送するようにしてもよい。
本発明において、前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、ライトアクセスの場合には、書き込みデータを、前記単位領域の制御権を有する処理部に転送するようにしてもよい。
本発明において、前記要求を発行した処理部は、前記管理処理部からの通知情報を受け、前記単位領域の制御権を有する処理部に対して問い合わせ、前記単位領域の制御権を有する処理部は、前記問い合わせを受けてアクセス対象の単位領域のデータのアドレス情報を通知し、前記要求を発行した処理部は、前記単位領域の制御権を有する処理部から通知された前記アドレス情報を用いて、アクセス対象の前記単位領域のデータのアクセスを行うようにしてもよい。
【発明の効果】
【００４１】
本発明によれば、複数のキャッシュノードを構成に有し、複数のキャッシュノード間でそれぞれが持つキャッシュを利用するように制御する構成としたことにより、キャッシュのヒット率が向上し、よりキャッシュのヒット率を高め、性能を向上することができる。
【００４２】
本発明によれば、ストレージ装置へのアクセス回数を省き、上位装置に対して、単位時間当りの入出力数やデータ転送速度の性能を、大きく向上することができる。その理由は、上位装置のデータ入出力要求に関して、自処理部で該当するキャッシュの制御権がある場合は他の処理部へ通信することなく上位装置のデータ入出力要求を制御でき、自処理部で該当するキャッシュの制御権がない場合でも、他処理部に該当するキャッシュの制御権があれば、余計なストレージ装置へのアクセスを省くことができ、全処理部に該当するキャッシュの制御権が無かった場合でも、書き込み要求であれば、ストレージ装置にアクセスすることなく、要求を受領した処理部がキャッシュに対して書き込むことができるためである。
【００４３】
さらに、本発明によれば、記憶空間の拡張と増加、上位装置の増加にあわせて拡張でき、性能も向上できるストレージシステムを提供できる。その理由は、ノード単位で拡張することができ、自キャッシュノードのキャッシュヒット率が高ければ、他ノードへ通信する回数を大幅に省くことが可能であり、自キャッシュノードにキャッシュが無くても他キャッシュノードにキャッシュがあればそれを利用することができるため、ノード数が増加した際にアクセス集中が増え性能ネックになるストレージ装置へのアクセスを省くことができ、全キャッシュノードにキャッシュが無かった場合でも、書き込み要求であれば要求を受領したキャッシュノードのキャッシュに対して書き込むことができることから、ノード数が増加した際にアクセス集中が増え性能ネックとなるストレージ装置へのアクセスを省くことができるためである。
【発明を実施するための最良の形態】
【００４４】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照してこれを説明する。まず本発明の原理を説明する。本発明は、他ノードとの協調制御によるキャッシュ利用効率の向上、及び、リソース競合の解消、レイテンシの削減により性能向上（単位時間当りのＩ／Ｏ処理数、データ転送量）を実現し、さらに、性能向上と、大規模化の抑止の両立を図るものである。図１は、本発明の原理を説明する図である。図１は、処理単位をなす複数の処理部が、通信手段等を介して相互に接続された複数のノードに分散して備えられ、キャッシュ領域を複数のノードに分散して保持する分散型メモリのキャッシュ制御システムの構成原理を示す図である。
【００４５】
本発明の実施の形態においては、システム内の論理的なアドレス空間によって上位処理手段からのアクセスを制御する。上位処理手段からのアクセスに際しては、上位処理手段との合意に基づいて決められたデータ識別情報があるものとする。上位処理手段は、当該データ識別情報を以って、特定のアドレス空間のデータをアクセスする。各ノードは、システム内の論理的なアドレス空間において、データ識別情報から一意的に決定される単位領域（本明細書では「チャンク」という）に関する制御権がある場合に、処理対象のデータをキャッシュ制御し、制御権が無い場合は、他のノードと協調制御を行う。
【００４６】
上位処理手段のアクセスするデータは、本システム内のキャッシュ領域に一時的に保存されるが、最終的に、下位処理部であるストレージ装置内に保存される。そのため、システム内の論理的なアドレス空間内の領域のアドレスとストレージ装置内の領域のアドレスとの対応関係は、キャッシュ制御システム内で管理情報として記憶されている。なお、各キャッシュ領域のキャッシュ制御情報は、該キャッシュ領域が備えられた各ノードに備えている。
【００４７】
図１を参照すると、上位処理手段１よりアクセス要求を受領することのある１つのノード内の処理部１において、処理対象データの該当するチャンクに関し、制御権を持たない場合（チャンクミスの発生時）、該処理部１は、管理処理部に、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第一の信号を送信する（ステップ１の要求）。
【００４８】
図１では、管理処理部のあるノードが処理部１と別のノードであるため、相互通信手段等を介して第一の信号を送信する（管理処理部と処理部１が同一のノードに存在する場合は、ノード内部で行えばよい）。第一の信号は、該当するチャンクに関する制御権を要求することを示す情報を含んでも良い。なお、処理部１は、該当するチャンクに関する制御権を持つ場合、該当するチャンクまたは該当するチャンク内の特定のデータに対応する処理部１と同一ノード内のキャッシュ領域に対して、他の処理部に通信することなくアクセスを行うことができる。
【００４９】
処理部１より第一の信号を受信した管理処理部は、特定のチャンクに関する制御権を保持する処理部を記憶管理する記憶部を参照して、該当するチャンクに対する制御権を保持している処理部を検索し、該当するチャンクに関する制御権を有する処理部が存在する場合には、該制御権を保持する処理部（「処理部２」とする）に対して、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第二の信号を送信する（ステップ２の許可指示）。図１では、処理部２のあるノードが管理処理部と別のノードであるため、相互通信手段等を介して第二の信号を送信する（処理部２と管理処理部が同一のノードに存在する場合は、ノード内部で行えばよい）。
【００５０】
処理部２は、管理処理部からの第二の信号を受け、処理部１に、該当するチャンクまたは該当するチャンク内の特定のデータに対応するキャッシュ領域へアクセスするための情報を与える（ステップ３の使用許可）。
【００５１】
処理部１は、処理部２より与えられた情報に基づき、処理部２を備えたノード内のキャッシュメモリの該当するキャッシュ領域をアクセスする（ステップ４の入出力）。
【００５２】
なお、処理部２は、管理処理部からの指示を受け、処理部１にアクセス情報を与えるに際して、該当するキャッシュ領域へのデータ更新に関して排他処理を行い（ただし、ステップ３の使用許可を発行する前に行う）、該当するキャッシュ領域は、処理部１のみが更新できるように制御する。すなわち、処理部１が該当するキャッシュ領域を更新する場合、他の処理部は、当該キャッシュ領域を更新できない。例えば、キャッシュ領域のデータに関して排他処理を行った後、処理部２に対して、上位処理手段２よりキャッシュ領域に関するデータの更新アクセス要求があった場合、処理部２は、排他されたキャッシュ領域であると判断し、当該要求のための更新処理は同時に実行されず、一貫性が維持される。
【００５３】
処理部１は、該当するキャッシュ領域の処理終了後、処理部２に、使用解除を通知する。処理部２は、使用解除の通知を受け、排他を解除する。なお、図１では、上位処理手段は処理部のあるノード外に示されているが、処理部のノードと同じノード上にあってもよく、また、上位処理手段１と上位処理手段２は、同一であってもよい。これらは、以下の図２で説明される形態においても同様に適用できる。
【００５４】
図２は、図１と同様、本発明の原理を説明するための図であり、図２（Ａ）は、情報処理装置等、一つの計算機システムにおけるキャッシュページのアクセス制御の原理を説明するための図である。図２（Ｂ）は、キャッシュページを共有メモリに備えた構成を示す図である。なお、図２（Ａ）の構成において、キャッシュ制御情報は、各処理手段の属する計算機内に備えており、処理手段毎に専用のメモリ領域が割当てられている。図２（Ｂ）の構成においては、キャッシュ制御情報は、上位処理手段からのアクセス要求を処理する処理部が備えられたノード毎に備えており、複数のプロセッサノードが相互通信手段を介して通信を行う分散システムに適用される。
【００５５】
より詳細には、図２（Ａ）を参照すると、計算機システム内のある処理手段１（プロセス、プロセッサであってもよい）において、該当するチャンクに関する制御権を持たない場合、該処理手段１は、該当するチャンクに関する制御権をどの処理手段が有しているかを管理する管理手段に、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第一の信号を送信する（ステップ１の要求）。
【００５６】
第一の信号を受信した管理手段は、特定のチャンクに関する制御権を保持する処理手段を記憶管理する記憶部を参照して、該当するチャンクに対する制御権を保持している処理手段を検索し、チャンクに関する制御権を保持する処理手段２に対して、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第二の信号を送信する（ステップ２の許可指示）。
【００５７】
処理手段２は、管理手段からの第二の信号を受け、処理手段１に、該当するチャンクまたは該当するチャンク内の特定のデータに対応するキャッシュ領域へアクセスするための情報を与える（ステップ３の使用許可）。
【００５８】
処理手段１は、与えられた情報に基づき、処理対象となるキャッシュ領域をアクセスする（ステップ４の入出力）。
【００５９】
なお、処理手段２は、管理手段からの第二の信号を受け、処理手段１にアクセス情報を与える場合に、対象のキャッシュ領域に対する排他処理を行い（ステップ３の使用許可を発行する前）、該当のキャッシュ領域ページは、処理手段１のみが更新できるように制御する。
【００６０】
処理手段１は、該当するキャッシュ処理終了後、処理手段２に、使用解除を通知する。処理手段２は、使用解除の通知を受け、排他を解除する。
【００６１】
図２（Ａ）では、複数の処理手段を備えた１つの計算機システムにおけるキャッシュ制御の原理を説明したが、複数のプロセッサおよび共有メモリが相互接続され、共有メモリにキャッシュ領域を備えた構成についても、本発明のキャッシュ制御を適用することができる。
【００６２】
次に、図２（Ｂ）を参照すると、１つの処理部１が、該当するチャンクに関する制御権を持たない場合、該処理部１は、管理処理部に、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第一の信号を送信する（ステップ１の要求）。
【００６３】
第一の信号を受信した管理手段は、どのチャンクに関しどの処理手段が制御権を保持しているかを記憶管理する記憶部を参照して、該当するチャンクに対する制御権を保持している処理手段を検索し、チャンクに関して制御権を保持する処理部２に対して、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第二の信号を送信する（ステップ２の許可指示）。
【００６４】
処理部２は、管理処理部からの第二の信号を受け、第一の処理部に、該当するチャンクまたは該当するチャンク内の特定のデータに対応するキャッシュ領域へアクセスするための情報を与える（ステップ３の使用許可）。
【００６５】
処理部１は、処理部２より与えられた情報に基づき、共有メモリ内の該当するキャッシュ領域をアクセスする（ステップ４の入出力）。
【００６６】
以上、各システム構成に即して本発明の原理を説明したが、以下では、図１の処理部１において、チャンクミスの発生時のキャッシュ制御の処理を図３の流れ図を参照して説明する。
【００６７】
ステップＳ１では、処理部１は、処理対象となるチャンクの制御権を管理する管理処理部に該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第一の信号を送信する。
【００６８】
ステップＳ２において、第一の信号を受信した管理処理部は、該当するチャンクに関する制御権を保持する処理部があるか検索する。
【００６９】
ステップＳ３において、管理処理部は、当該チャンクに関する制御権を保持する処理部がいない場合、処理部１に、当該チャンクの制御権を割当て、チャンクと制御権を保持する処理部との対応を記憶管理する記憶部へ保存する。
【００７０】
ステップＳ４において、管理処理部は、処理部１に当該チャンクに関する制御権を与えることを通知する。
【００７１】
ステップＳ５において、制御権の付与通知を受けた処理部１は上位処理手段のデータ要求に関するキャッシュを操作するのに必要なキャッシュ領域の割当てや排他処理等の準備を行う。本処理終了後、処理部１は、当該キャッシュ領域に対して、読込み処理または書込み処理を行う。
【００７２】
ステップＳ６において、ステップＳ２において検索を行った管理処理部は、当該チャンクに関する制御権を保持する処理部２が存在する場合、管理処理部は、該処理部２に、該当するチャンクまたは該当するチャンク内の特定のデータを識別する情報を含む第二の信号を送信する。
【００７３】
ステップＳ７において、第二の信号を受信した処理部２は、第二の信号から判断される該当するチャンクまたは該当するチャンク内の特定のデータに対応するキャッシュ領域の割当てや排他処理等の準備を行う。処理部１が該当するキャッシュ領域をアクセスする場合、処理部２やその他の処理部は、当該キャッシュ領域をアクセスできない。処理部１が参照のアクセスを行う場合は、他の処理部に参照のみ許可するようにしても良い。なお、処理部２が第二の信号を受信した際に、処理部２が当該キャッシュ領域を現在使用中である場合、処理部２は、第二の信号を処理部１のアクセス要求とし、上位処理手段からのデータ要求に関するキャッシュ制御時と同様に、当該キャッシュ領域に関する待ちとして管理し、使用完了後に、ステップＳ８の処理を行う。また、待ちとして管理せず、該当キャッシュページに関する待機（ＷＡＩＴ）信号を処理部１に与えてもよい。
【００７４】
ステップＳ８において、処理部２は、該当するチャンクまたは該当するチャンク内の特定のデータに対応するキャッシュ領域へアクセスするための情報を、処理部１に与える。
【００７５】
ステップＳ８による処理が正常終了すると、処理部１は、処理部２のローカルメモリ内の当該キャッシュ領域に対して読込み処理又は書き込み処理を行う。
【００７６】
本発明によれば、自ノードにキャッシュがヒットしなかった場合でも、他ノードに該当するキャッシュページが存在すれば、該他ノードのキャッシュページを利用することで、記憶装置へのアクセスを省くことができ、高速化に資する。また、各キャッシュノードにてキャッシュ制御することで、ノード間の通信量を減らすことができ、高速化に資する。以下実施例に即して説明する。
【実施例】
【００７７】
図４は、本発明の第１の実施例の構成を示す図である。図４を参照すると、本発明の第１の実施例は、ホストコンピュータ等の上位装置との入出力を制御し、該入出力データを一時的に記憶するキャッシュ機能を有する複数のキャッシュノード２ａ、２ｂ、２ｃ、２ｄと、データを最終的に記録し保存するストレージ装置との入出力を制御する記憶制御ノード３ａ、３ｂ、３ｃ、３ｄと、複数のキャッシュノード２ａ、２ｂ、２ｃ、２ｄと、複数の記憶制御ノード３ａ、３ｂ、３ｃ、３ｄ間の相互の通信を介する相互通信手段４と、を備えて構成されている。ストレージシステム１は、構成と各記憶制御ノードに接続される１つ以上のストレージ装置より構成される。
【００７８】
なお、図４では、簡単のため、キャッシュノード、記憶制御ノードを４台備えた構成としたが、台数は特に制限されない。また、相互通信手段４は、バス、ＳＣＳＩ、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット網または任意の他の好適な通信手段であってもよい。また、上位装置の台数、ストレージ装置の台数も特に制限されない。ストレージ装置は、複数のディスクドライブ群からなるディスクユニットであってもよく、ディスクアレイ装置等であってもよい。さらに、記憶制御ノードごとにストレージ装置を備えてもよく、記憶制御ノードとストレージ装置間を相互接続する構成としてもよい。
【００７９】
本実施例では、特定のキャッシュノードに割当てられる制御権を、記憶制御ノード３ａ、３ｂ、３ｃ、３ｄにて、ある制御権がどのキャッシュノードに割当てられているかを、分担して管理する。この際、割り当てられる制御権の単位領域をページと同じ大きさにし、キャッシュの制御体系に組み込むことで、制御権に伴う処理と制御権を管理するための情報の共通化を図り、全体の処理の単純化を図ることができる。この実施例の制御権は、図１乃至図３を参照して説明した特定のチャンクの制御権に対応する。制御権を持つノードは、他のノードに通信することなく、キャッシュ制御できる。一方、制御権を持たないキャッシュノードは、制御権を持つキャッシュノードが存在する場合に、予め定められた所定の動作を行うことにより、制御権を持つノードの該当するキャッシュページに対して、読み出しと書き込みを行うことができる。また、どのキャッシュノードにも制御権が存在しなかった場合には、制御権の問い合わせを行ったノード、即ち、最初に上位装置からのデータの読み出し要求もしくは書き込み要求を受けたノードに制御権を与える。これは、記憶制御ノードに、どのキャッシュノードが制御権を持つかを示す情報を書き込み、制御権の問い合わせを行ったキャッシュノードに対してキャッシュページを確保することで実現する。制御権を割り当てた後は、上位装置からのデータの読み出し又は書き込み要求を受けたノードは、書き込み要求の場合、上位装置からのデータをキャッシュページに受信し、読み出し要求の場合、記憶制御ノード経由でストレージ装置から、該読み出し要求に該当するデータを、自身のキャッシュページに受信した後に、上位装置に転送する。
【００８０】
図４に示す例では、キャッシュ機能を有するキャッシュノード２ａ、２ｂ、２ｃ、２ｄが、上位装置から、データ読み出し要求またはデータ書き込み要求を受け取ると、それぞれ、自キャッシュノード内のローカルメモリ（図４では不図示、図５を参照して後述される）に格納されている制御メモリ部のキャッシュの管理情報を調べ、自キャッシュノード内のキャッシュページ格納部に、該当するキャッシュページが存在するか否か検索する。具体的には、キャッシュ制御手段１１３がローカルメモリ１２上の制御メモリ部１２１に格納されているキャッシュ制御情報（図２３参照）のページタグを検索することで、該要求のキャッシュページが、既にキャッシュページ部１２２にあるかどうか判定している。
【００８１】
図２３は、ローカルメモリ１２上の制御メモリ部１２１に格納されているキャッシュ制御情報内の一構成例を示す図である。図２３を参照すると、本発明の一実施例に示されるキャッシュ制御情報は、複数のページタグ３１が、検索時の処理の高速化を図るためハッシュテーブル３０にて管理される構成を含んでいる。この他に、キャッシュ制御情報は、図示しない、空ページやストレージ装置へ保存されていない書き込みデータがあるページなどの管理情報を含む。
【００８２】
図２４は、ページタグの構成の一例を示す図である。図２３のページタグ３１は、図２４に示されるような情報を含んでおり、キャッシュページ部１２２上のキャッシュデータの格納位置を示すページアドレス４１と、ページアドレス４１で示されるキャッシュページが、上位装置が指定する、ストレージシステム上に存在する論理アドレス、もしくは前述の論理アドレスを一意的な変換の後に得られるアドレス、のキャッシュデータであるかを示すアドレス情報４０、ページタグ３１同士をリンクさせ、ページタグ３１の操作と検索を行う為のポインタ４２等からなる。また、ページタグ３１は、検索時の処理の高速化を図るためのハッシュテーブル３０にて管理されている。該キャッシュページがキャッシュページ１２２にあるかどうか検索を行う際には、該要求のアドレス情報から、ハッシュ関数の計算を行い、ハッシュテーブル３０のどのテーブルを検索するか決定する。このハッシュ関数による計算は、与えられるアドレス情報から一意に決まり、同じアドレス情報からは同じテーブルの位置が示される。ハッシュ関数による計算の結果、決定されたテーブルに結合されているページタグ３１のアドレス情報を比較し、テーブルに接続されているアドレス情報４０がどれも一致しないか、テーブルに接続されているページタグ３１が無ければ、該検索要求を受けた論理アドレスのデータはキャッシュページ部１２２に存在せず、アドレス情報４０の一致するページタグ３１が存在すれば、該検索要求を受けた論理アドレスのデータは、キャッシュページ部１２２に存在することになる。
【００８３】
本実施例では、前述の検索要求を受けた論理アドレスのデータがキャッシュページ部１２２に存在すれば、そのキャッシュノードが、該キャッシュページのアドレス情報４０で示される領域の制御権を持ち、存在しなければ制御権を持たない状態と定義することで、キャッシュ処理に制御権に関する処理、キャッシュ情報に制御権の情報を繰り込み、制御権の処理の簡略化を行う。
【００８４】
データ読み出し要求またはデータ書き込み要求を上位装置から受けとったキャッシュノードにおいて、該当するキャッシュページが見つかったときには、該キャッシュノードは、当該キャッシュページに対して制御権を持っているということであり、該キャッシュノードは、データ読み出し要求であれば、当該キャッシュページからデータを上位装置に転送すれば良く、上位装置に対する高速なレスポンスが可能となる。データ書き込み要求であれば、当該キャッシュページにデータを書き込んだ時点で、上位装置に対して、処理の完了を返し、そのデータを、処理完了後に、ストレージ装置に書き込むことにより、やはり高速レスポンスが可能となる。
【００８５】
一方、データ読み出し要求またはデータ書き込み要求を上位装置から受けとったキャッシュノードにおいて、該キャッシュノード内に、該当するキャッシュページが存在しなかった場合、制御権を管理する管理ノードへ通知して、当該キャッシュページの制御権保持ノードが存在する場合、要求を受理したキャッシュノードは、データ読み出し要求であれば、制御権保持ノードの当該キャッシュページから、相互通信手段４を経由して、データを転送すれば良く、ストレージ装置からデータを読み出すよりも、大幅な高速レスポンスが可能である。データ書き込み要求であっても、上位装置からの書き込みデータを、相互通信手段４を経由して制御権保持ノードの該当するキャッシュページにデータを書き込んだ時点で、上位装置に対して処理の完了を返し、そのデータを、後でストレージ装置に書き込むことにより、ストレージ装置へのアクセスが発生しないことから、やはり、高速レスポンスが可能となる。
【００８６】
図５は、図４のキャッシュノード２ａ、２ｂ、２ｃ、２ｄの構成を示す図である。なお、図４のキャッシュノード２ａ、２ｂ、２ｃ、２ｄは、同一構成とされ、キャッシュノード２とする。図５を参照すると、キャッシュノード２は、上位装置インターフェース手段１０と、プログラム制御により動作し主制御部となるデータ処理装置１１と、ローカルメモリ１２と、コントローラ１３とを備えている。
【００８７】
上位装置インターフェース手段１０は、１つ以上の上位装置と、各接続パス５ａ、５ｂ、５ｃ、５ｄを介して、接続され、上位装置からのデータ読み出し要求またはデータ書き込み要求を受信し、上位装置と、キャッシュノードとの間のデータの入出力を処理する。キャッシュノードには、複数の上位装置インターフェース手段を備えても良く、上位装置との接続には、スイッチ等の相互接続手段を用いても良い。
【００８８】
データ処理装置１１は、コマンド制御手段１１１と、管理ノード特定手段１１２と、キャッシュ制御手段１１３を備えている。コマンド制御手段１１１は、上位装置インターフェース手段１０が受信した上位装置からのデータ読み出し要求またはデータ書き込み要求の各コマンドを判断し、各コマンドに応じた処理を制御する。
【００８９】
管理ノード特定手段１１２は、自キャッシュノード内で読み書きすべきキャッシュページが存在しない場合に、通信する管理ノードを特定する。
【００９０】
キャッシュ制御手段１１３は、キャッシュ検索処理やローカルメモリ１２に格納されたキャッシュを管理制御する。
【００９１】
ローカルメモリ１２は、制御メモリ部１２１と、キャッシュページ部１２２を備え、ストレージ装置よりも高速なアクセスが可能な半導体メモリによって構成されている。ローカルメモリ１２は、複数あってもよく、制御メモリ部１２１と、キャッシュページ部１２２とがそれぞれ別のローカルメモリに備えられていてもよい。
【００９２】
制御メモリ部１２１は、論理記憶空間がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報（図６参照）や、キャッシュの管理情報、キャッシュノードの制御情報を格納する。
【００９３】
キャッシュページ部１２２は、上位装置インターフェース手段１０を経由して上位装置との間で入出力されるデータをページ単位で一時的に格納する。
【００９４】
コントローラ１３は、キャッシュノード２のデータ通信を制御し、相互通信手段４を介して他のキャッシュノードおよび記憶制御ノードとの通信も処理する。キャッシュノードには、複数のコントローラを備えても良い。
【００９５】
図６は、ストレージシステム１が認識する論理記憶空間（論理ボリューム）がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報の構成を示す図である。本実施例においては、ある論理ボリューム番号の論理記憶空間が割当てられている記憶制御ノードを、管理ノードとしている。
【００９６】
図５の管理ノード特定手段１１２は、記憶空間構成情報を参照することにより、ある論理ボリューム番号の論理記憶空間が、どの記憶制御ノードに割当てられているかを判断でき、管理ノードを特定することができる。制御メモリ部１２１に格納する記憶空間構成情報の替わりに、特定の論理記憶空間を所定の大きさに分割した単位が、どの記憶制御ノードに割り当てられているかを示す構成情報を格納してもよい。この場合、管理ノード特定手段１１２において、上位装置の要求するデータが属する分割単位を判定し、構成情報を参照して、当該分割単位がどの記憶制御ノードに割当てられているかを判断でき、管理ノードを特定することができる。
【００９７】
次に、図７を参照して、記憶制御ノードについて説明する。各記憶制御ノード３ａ、３ｂ、３ｃ、３ｄは同一構成とされる。記憶制御ノード３は、記憶装置インターフェース手段２０と、プログラム制御により動作し主制御部となるデータ処理装置２１と、ローカルメモリ２２と、コントローラ２３とを備えている。
【００９８】
記憶装置インターフェース手段２０は、１つ以上のストレージ装置と各接続パス６ａ、６ｂ、６ｃ、６ｄを介して接続され、ストレージ装置と記憶制御ノードの間のデータの入出力を行う。
【００９９】
データ処理装置２１は、記憶装置制御手段２１２と、制御権管理手段２１１とを備える。
【０１００】
記憶装置制御手段２１２は、データを最終的に記録し保存するストレージ装置への入出力コマンド処理を制御する。
【０１０１】
制御権管理手段２１１は、キャッシュノード２ａ、２ｂ、２ｃ、２ｄからの制御権に対する処理要求を実行する。
【０１０２】
ローカルメモリ２２は、制御メモリ部２２１を備え、ストレージ装置よりも高速なアクセスが可能な半導体メモリによって構成されている。
【０１０３】
制御メモリ部２２１は、記憶制御ノードの制御情報やストレージシステム１の装置構成情報を格納する。また、制御メモリ部２２１には、ストレージシステム１の認識するすべての論理記憶空間内のアドレスから一意に決定される特定のキャッシュページ単位に関する制御権をどのノードが持つかを示す制御権管理情報が格納される。
【０１０４】
コントローラ２３は、記憶制御ノードのデータ通信を制御し、相互通信手段４に接続され、他のキャッシュノードおよび記憶制御ノードとの通信を制御する。記憶制御ノードには、複数のコントローラを備えても良い。
【０１０５】
図８、図９は、図７におけるローカルメモリ２２の制御メモリ部２２１に格納される制御権管理情報の構成を示す図である。
【０１０６】
制御メモリ部２２１に格納される制御権管理情報は、キャッシュページ単位毎に割り当てられた領域の論理アドレスと、その領域の制御権を持つノード番号が対応してテーブルを構成している。
【０１０７】
これにより、制御権管理手段２１１は、ある論理アドレスが示されると、その論理アドレスが属する領域が制御権管理情報にあるか調べ、該当領域に対して制御権を持っているキャッシュノードの有無と、制御権を持っているノードがいた場合は、キャッシュノードを特定することができる。制御権管理手段２１１は、この判断に応じた処理を行う。
【０１０８】
制御権を持つキャッシュノードが存在しなかった場合には、新たに制御権を設定し制御権管理情報に登録し、制御権を登録したノードに対して通知する。
【０１０９】
制御権を持つキャッシュノードが存在した場合には、制御権を持つキャッシュノードに対して所定の指示を行う。
【０１１０】
次に、本発明の第１の実施例の動作について詳細に説明する。図１０は、本発明の第１の実施例の処理動作を説明するための流れ図である。
【０１１１】
以下、上位装置からのデータ読み出し要求またはデータ書込み要求を受領するキャッシュノードがキャッシュノード２ａである場合を例に説明する。
【０１１２】
図４のキャッシュノード２ａは、上位装置から接続パス５ａを介して、上位装置インターフェース手段１０（図５参照）にて、データ読み出し要求またはデータ書込み要求のコマンドを受信する。
【０１１３】
キャッシュノード２ａは、該コマンドを受領すると、コマンド制御手段１１１（図５参照）にて、要求を解析する。
【０１１４】
そして、キャッシュ制御手段１１３（図５参照）は、コマンド制御手段１１１の解析結果を受けて、該要求のデータが該当するキャッシュページが既にキャッシュページ部１２２にあるかどうか、制御メモリ部１２１（図５参照）上のキャッシュ制御情報（図２３参照）を検索して判定する。
【０１１５】
具体的には、コマンド制御手段１１１が受信したコマンドで指定される論理アドレスが、ページタグのアドレス情報で１０００に相当するアドレスであり、かつ、その時のキャッシュノード２ａのキャッシュ制御情報の内容が、図２５に示す状態であるとする。キャッシュノード２ａのキャッシュ制御手段１１３は、ハッシュ関数の計算を行い、ハッシュテーブル上の１つのテーブルを決定する。ハッシュ関数の計算が”５”の場合、”５”のテーブルに接続されているページタグのアドレス情報４０を比較しながら、一致するページタグがあるかどうか検索する。
【０１１６】
この時のキャッシュ制御情報（図２３参照）の内容が図２５で示されるものであったとすると、該テーブルに接続されたページタグの１番目がアドレス情報”１０００”を持つため、コマンド制御手段１１１で受信したコマンドの指定する論理アドレスに該当するデータがキャッシュページ部１２２（図５参照）上に存在することになり、該コマンドを受信したキャッシュノード２ａが制御権を持つことになる為、他のキャッシュノードに通信すること無く、キャッシュページへのアクセスを行うことができる。
【０１１７】
この後、他の処理により操作されないように、当該キャッシュページを排他処理した後、キャッシュノード２ａは、データ読み出し要求であれば、ただちに該当するデータをキャッシュページ部１２２上の当該キャッシュページより読み出し、上位装置へ転送する。
【０１１８】
また、データ書込み要求であれば、上位装置より送られたデータをキャッシュページ部１２２上の該当キャッシュページに書き込む。各処理は、他のノードへ通信が必要ないため、高速に処理することができる。
【０１１９】
この後、キャッシュ制御手段１１３は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）法などによる効率的なキャッシュページ管理を行うために必要な、制御メモリ部１２１のキャッシュ管理情報を更新し、排他を解除する。
【０１２０】
該当するキャッシュページがキャッシュページ部１２２上に存在しない場合、図１０に示した手順にしたがった処理が行われる。
【０１２１】
図１０は、本発明の第１の実施例において、キャッシュノードが、上位装置からのデータ読み出し要求またはデータ書込み要求を受領し、自キャッシュノードにおいてキャッシュ検索した際に、自キャッシュノードにはキャッシュが存在しなかった場合の処理を示すフローチャートである。
【０１２２】
まず、キャッシュノード２ａのコマンド制御手段１１１が受信したコマンドで指定される論理アドレスが、ページタグのアドレス情報で３０００に相当するアドレスでかつその時のノード２ａのキャッシュ制御情報（図２３参照）が、図２５に示す内容であるものとする。キャッシュノード２ａのキャッシュ制御手段１１３は、ハッシュ関数の計算を行い、ハッシュテーブル上の１つのテーブルを決定する。ハッシュ関数の計算が”５”であったとする。キャッシュ制御手段１１３は、キャッシュ制御情報（図２５参照）上のハッシュテーブル上の５のテーブルに接続されているページタグのアドレス情報４０（図２４参照）を比較するが、どのページタグのアドレス情報にも”３０００”は存在しないので、キャッシュノード２ａは、該論理アドレスに相当するデータがキャッシュページ部に存在せず、制御権が無いことになる。
【０１２３】
キャッシュノード２ａのキャッシュ制御手段１１３が、制御権を持たないと判断すると、キャッシュノード２ａの管理ノード特定手段１１２は、該当ページに対する制御権の要求を通知すべき管理ノードを特定する（図１０のステップＡ１）。
【０１２４】
管理ノード特定手段１１２は、制御メモリ部１２１に格納された記憶空間構成情報（図８参照）を参照し、制御権の要求を通知すべき管理ノードである記憶制御ノードを特定すできる。
【０１２５】
該当の管理ノードを特定した後、コントローラ１３に通知を指示し、相互通信手段４を介して特定した記憶制御ノードへ制御権要求を通知する（図１０のステップＡ２）。
【０１２６】
ここでは、管理ノード特定手段１１２により、当該要求のデータに対する制御権の割り当てを管理する制御権管理ノードが、記憶制御ノード３ａであった場合として説明する。
【０１２７】
制御権要求の通知を受けた記憶制御ノード３ａ、コントローラ２３（図７参照）にて、該制御権要求を受信し、制御権管理手段２１１にて該制御権要求を判断し、制御権判定の処理を行う。
【０１２８】
制御権管理手段２１１は、制御メモリ部２２１に格納された制御権管理情報を検索して、該当するページの論理アドレスがあるかを判定する（図１０のステップＡ３）。
【０１２９】
具体的には、例えば、制御権管理情報（図８参照）は、チャンク識別子、制御権保持ノード番号等から成り、本実施例においては、チャンク識別子をページタグ３１（図２３参照）のアドレス情報４０（図２４参照）、もしくはアドレス情報から一意的に決まる識別子を格納しておく。また、制御権保持ノード番号は制御権を持つキャッシュノードを示す情報を格納する。
【０１３０】
ここで、一例として、チャンク識別子とページタグ３１のアドレス情報４０（図２４参照）が同じものを格納する例を示す。この時、記憶制御ノード３ａが受けたアドレス情報が”３０００”でかつ、記憶制御ノード３ａが持つ制御管理情報が（図８）に示される内容とする。制御権管理手段２１１は、制御権管理情報（図８）のチャンク識別子に”３０００”を示す物が無いか、検索を行う。その結果、チャンク識別子が”３０００”の情報は存在せず、どのキャッシュノードも制御権を持たないことが判定できる。
【０１３１】
前述の様に、該制御権要求のデータに対応するキャッシュページの制御権保持ノードが存在しなかった場合、要求してきたキャッシュノード２ａに対して当該ページ領域の制御権を新規に付与し、制御権管理情報に登録する（図１０のステップＡ４）。
【０１３２】
具体的には、記憶制御ノード３ａの制御権管理情報（図８参照）の空いている領域に、新規にチャンク識別子が”３０００”の項目を追加し、制御権保持ノード番号に２ａを登録する（図９参照）。
【０１３３】
該制御権を登録後、コントローラ２３に通知を指示し、相互通信手段４を介して、新規に制御権を登録したことを要求元ノードであるキャッシュノード２ａに通知する（図１０のステップＡ５）。
【０１３４】
該当ページの制御権が与えられたことを受信したキャッシュノード２ａは、自キャッシュノード内で該当するキャッシュページを確保して、排他処理を行う（図１０のステップＡ６）。
【０１３５】
具体的には、キャッシュノード２ａの持つキャッシュ制御情報が図２５に示すものであり、制御権の与えられたアドレス情報が”３０００”とする。その時、キャッシュノード２ａのキャッシュ制御手段１１３は、ハッシュ関数の計算を行い、ハッシュテーブル上の１つのテーブルを決定する。ハッシュ関数の計算が”５”であったとすると、ハッシュテーブル上の”５”のテーブルに接続されているページタグ３１（図２３参照）のポインタをたどり、アドレス情報が”３０００”のページタグを追加し（アドレス情報が”５０００”のページタグのポインタに繋ぐ）、新たにキャッシュページの確保を行い、そのベースアドレスを、アドレス情報が”３０００”のページタグのベースアドレスに書き込み（図２６参照）、キャッシュノード２ａの制御権が確立する。その後、継続して行われるデータ読み出しもしくは書き込みの為に、キャッシュページの排他処理を行う。
【０１３６】
ここでは、上位装置からの要求により、キャッシュノード２ａが制御権を得たが、上位装置からのアクセス無しに、ノードが自発的に、連続したデータの読み出し要求を予想し、あらかじめストレージ装置から先にデータをキャッシュに読み込む先読みキャッシュ動作などでも、本シーケンスと同じ様な制御権を得ることが可能である。
【０１３７】
この後、上位装置からの要求がデータ読み出し要求であれば、制御記憶制御ノード３ａに該当するデータのストレージ装置より読み出しを指示し、キャッシュノード２ａの該当キャッシュページに格納し、上位装置へ転送する。
【０１３８】
上位装置からの要求がデータ書き込み要求であれば、上位装置より送られたデータを該当するキャッシュページに書き込み、上位装置に対して、処理の完了を返し、後でそのデータをストレージ装置に書き込む。
【０１３９】
上位装置の要求処理完了後、キャッシュノード２ａのキャッシュ制御手段１１３は、ＬＲＵ法などによる効率的なキャッシュページ管理を行うために必要な、制御メモリ部１２１のキャッシュ管理情報を更新し、排他を解除する。
【０１４０】
この書き込み要求に対する処理では、上位装置に応答を返すまでにストレージ装置へのアクセスが発生しないため高速なレスポンスが可能である。
【０１４１】
図１０のステップＡ３にて、制御権管理情報を検索して該当するページの論理アドレスがあり、制御権保持ノードがあった場合、記憶制御ノード３ａは、制御権保持ノードに対し、制御権要求元ノードであるキャッシュノード２ａの該当キャッシュページの利用要求を指示する（図１０のステップＡ７）。
【０１４２】
以下では、制御権管理情報により、制御権保持ノードがキャッシュノード２ｂであったものとして説明する。
【０１４３】
前述と同様に、チャンク識別子とページタグ３１のアドレス情報４０は同じものを格納する例に即して説明する。
【０１４４】
記憶制御ノード３ａが受けたアドレス情報が”４０００”であり、制御管理情報が図８に示すものであるとする。記憶制御ノード３ａの制御権管理手段２１１は、制御権管理情報（図９参照）のチャンク識別子に”４０００”を示すものが無いか、検索を行う。その結果、チャンク識別子が”４０００”のキャッシュページが存在し、該当する制御権保持ノード番号の２ｂを得ることが出来る。
【０１４５】
その後、記憶制御ノード３ａの制御権管理手段２１１は、コントローラ２３に通知を指示し、相互通信手段４を介して、キャッシュノード２ｂに該当キャッシュページの利用要求を通知する。
【０１４６】
該当キャッシュページの制御権保持ノードであるキャッシュノード２ｂは、キャッシュノード２ｂのコントローラ１３にて、記憶制御ノード３ａより、キャッシュノード２ａの該当キャッシュページの利用要求を受け取り、キャッシュノード２ｂのキャッシュ制御手段１１３にて、該当キャッシュページを他の処理により操作されないよう排他処理する（図１０のステップＡ８）。
【０１４７】
具体的には、キャッシュノード２ｂが記憶制御ノード３ａから受けた利用要求のアドレスが４０００で、キャッシュノード２ｂ上のキャッシュ制御情報が、図２７に示す内容であるものとする。
【０１４８】
キャッシュノード２ｂのキャッシュ制御手段１１３は、ハッシュ関数の計算を行い、ハッシュテーブル上の１つのテーブルを決定する。この時、ハッシュ関数の計算値が３であったとする。キャッシュ制御情報（図２７参照）のハッシュテーブル上の”３”のテーブルに接続されているページタグのアドレス情報４０を比較する、アドレス情報が”４０００”で一致するページタグが存在するので、キャッシュノード２ｂは、該当するキャッシュページの排他処理を行う。
【０１４９】
キャッシュノード２ｂのキャッシュ制御手段１１３は、該当キャッシュページの排他処理後、該当キャッシュページへアクセスするためのアドレス情報を、キャッシュノード２ｂのコントローラ１３に、制御権要求元ノードであるキャッシュノード２ａに対して通知を指示し、相互通信手段４を介し通知する。これは、前述のキャッシュ制御情報（図２７参照）のアドレス情報が”４０００”のページタグ内のページアドレス４１を含む内容のアドレス情報である（図１０のステップＡ９）。
【０１５０】
該当キャッシュページへアクセスするためのアドレス情報の通知を受けたキャッシュノード２ａは、この後、上位装置からの要求がデータ読み出し要求であれば、キャッシュノード２ｂの該当キャッシュページに格納されたデータを上位装置へ転送する。
【０１５１】
上位装置からの要求がデータ書き込み要求であれば、キャッシュノード２ｂは、上位装置より送られたデータを、キャッシュノード２ｂの該当するキャッシュページに書き込み、上位装置に対して処理の完了を返し、後でそのデータをストレージ装置に書き込む。
【０１５２】
制御権保持ノードに対するこの処理では、上位装置に応答を返すまでにデータ応答時間のかかるストレージ装置へのアクセスが発生しないため高速なレスポンスが可能である。
【０１５３】
次に、本実施例の作用効果について説明する。
【０１５４】
本実施例では、必要な制御権を持っていれば、キャッシュノードは、他のノードに通信することなく自ノード内でキャッシュ制御できるので、上位装置のデータ要求の処理にかかる時間を短縮することができる。
【０１５５】
このため、高速なレスポンスが可能であり、単位時間当りの入出力性能を大きく高めることができる。
【０１５６】
また、本実施例では、各キャッシュノードの自ノード内で該当するキャッシュページが存在しなくても、対応する記憶制御ノードに制御権を要求すると、記憶制御ノードにて、制御権を検索し、該当する制御権保持ノードがいた場合に、制御権保持ノードがキャッシュページを排他処理しアクセス情報を通知するので、該キャッシュページが存在しないャッシュノードでも、制御権保持ノードのキャッシュページを利用できる。
【０１５７】
このため、ストレージ装置へのアクセスが無く、高速なレスポンスが可能である。
【０１５８】
さらに、該当する制御権保持ノードが無かった場合でも、要求元キャッシュノードに対し制御権が付与され、すぐにキャッシュページを排他利用でき、データ書き込み要求であれば、当該キャッシュノードのローカルメモリへ上位装置からのデータを書き込み、ストレージ装置へのアクセス無く、データ処理が可能である。
【０１５９】
このため、やはり高速なレスポンスが可能である。
【０１６０】
第１の実施例では、これらの効果に加え、各ノードから集中してアクセスする共有メモリが不要である。
【０１６１】
このため、ノード数を増やすことが容易であり、大規模化し易い。
【０１６２】
また、ストレージ装置へのアクセスが少なく、ローカルの高速なメモリに対してデータ入出力処理が済み、大規模化がし易いことから、データ転送速度性能を大きく向上させることができる。
【０１６３】
本実施例を具体例に即して説明する。
【０１６４】
図１１及び図１２は、図４に示した前記第１の実施例の一具体例の処理を模式的に示した図であり、４台の上位装置（上位装置１、２、３、４）が、相互通信手段４を介して、キャッシュノード２ａ、２ｂ、２ｃ、２ｄに接続されている。キャッシュノード２ａ、２ｂ、２ｃ、２ｄは、相互通信手段４を介して記憶制御ノード３ａ、３ｂ、３ｃ、３ｄに接続され、記憶制御ノードは、ディスクアレイ等のストレージ装置に接続されている。以下では、上記装置３がキャッシュノード２ｂへ入出力要求を発行した場合について説明する。
【０１６５】
ノード２ｂは、上位装置３より入出力要求を受信し（図１１の入出力要求ステップ）、キャッシュ検索の処理を行う。ノード２ｂのローカルメモリキャッシュ制御情報を検索し、ノード２ｂのキャッシュメモリ内に入出力要求に該当するキャッシュページがあるか判断する。ノード２ｂは、該当するキャッシュページがあった場合（キャッシュヒット時）、排他処理のあと、読み出しや書き込み処理を行い、処理後、排他を解除する。
【０１６６】
一方、ノード２ｂ内のローカルメモリに、該当するキャッシュページが存在しない場合（キャッシュミス時）、ノード２ｂ内の論理記憶構成テーブルを参照し、入出力要求がどの論理記憶空間に該当するか判断し、該当する論理記憶空間を管理する記憶制御ノードへ、該当するキャッシュページの制御権を要求する（図１１の通信ステップＢ１）。この例では、該当する論理記憶空間が記憶制御ノード３ｃと判明したとする。
【０１６７】
キャッシュページの制御権を要求されたノード３ｃは、ノード３ｃ内の制御権管理手段を用いて、制御権の管理情報テーブルを参照し、該当するキャッシュページの制御権を保持しているキャッシュノードを検索する。
【０１６８】
ノード３ｃは、該当する制御権の保持ノードが見つからなかった場合、ノード２ｂに対して、該当するページの制御権を付与し、制御権管理情報に登録して通知する（図１１の通信ステップＢ２’）。
【０１６９】
ノード３ｃは、該当する制御権を保持しているキャッシュノードが見つかると、当該キャッシュノードへ、排他処理と通知処理を依頼する（図１０の通信ステップＢ２）。この例では、該当する制御権を保持しているノードがキャッシュノード２ｄと判明したとする。
【０１７０】
当該キャッシュページの制御権をもつノード２ｄは、ノード３ｃより指示を受けると、別の処理要求で操作されないように、排他処理する。ノード３ｃ内の該当ページの管理情報へ排他フラグをたてる等の処理を行えばよい。
【０１７１】
排他処理を行った後、ノード２ｄは、要求元ノードであるノード２ｂに対して、該当キャッシュページの利用を許可する通知と、キャッシュページにアクセスする為の情報（キャッシュページのアドレス情報）を送付する（図１２の通信ステップＢ３）。
【０１７２】
許可を受信したノード２ｂは、ノード２ｄのローカルメモリ内のキャッシュページにアクセスし、それが読み出し要求であれば、該キャッシュページのデータを上位装置に転送し、書き込み要求であれば、上位装置からデータを受け取り、該キャッシュページに書き込みを行い、上位装置３からの要求を処理する（図１２の通信ステップＢ４）。
【０１７３】
要求された入出力が完了すると、ノード２ｂは、ノード２ｄへ完了を通知する（図１２の通信ステップＢ５）。
【０１７４】
完了通知を受信したノード２ｄは、ノード２ｂの利用のための排他を解除する。
【０１７５】
図１３は、図１１及び図１２に示す構成において、上記装置３からキャッシュノード２ｂに書き込み処理を行った場合のシーケンス動作を説明するための図である。なお、図１３において、上位装置３、ノード２ｂ、２ｄ、３ｃは、図１１、図１２の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０１７６】
上記装置３は、書き込み要求をノード２ｂに送信する。
【０１７７】
ステップｔ１にて上位装置３より書き込み要求を受信したノード２ｂは、要求に対応するキャッシュを検索し、要求に対応するキャッシュページが存在する場合、当該キャッシュページの制御権があることになり、排他処理を行った後、肯定応答（Ａｃｋ）を上位装置３に送信する。
【０１７８】
ステップｔ２にて肯定応答を受信した上位装置３は、その後、書き込みデータをノード２ｂに送信し、ノード２ｂは、書き込みデータを該当するキャッシュページに格納する。ステップｔ３において、キャッシュページに格納後、要求処理完了（終了ステータス）を通知し、排他解除を行う。
【０１７９】
図１４は、キャッシュノード２ｂに制御権が付与される場合の一シーケンスを示す図である。図１４において、上位装置３、ノード２ｂ、２ｄ、３ｃは、図１１、図１２の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０１８０】
図１４を参照すると、上位装置３は、書き込み要求をノード２ｂに送信する。
【０１８１】
ステップｔ１において、上位装置３より書き込み要求を受信したノード２ｂは、要求に対応するキャッシュを検索し、要求に対応するキャッシュが存在しない場合、要求に対応するキャッシュページの制御権をノード３ｃに要求する。
【０１８２】
ステップｔ２において、ノード２ｂより要求を受信したノード３ｃは、該当キャッシュページの制御権保持ノードを検索し、登録されていないため、ノード２ｂに権利を付与し、権利付与を通知する。
【０１８３】
ステップｔ３において、権利付与の通知を受信したノード２ｂは、キャッシュページを準備し、排他処理して、肯定応答（Ａｃｋ）を上位装置３に送信する。
【０１８４】
ステップｔ４において、肯定応答を受信した上位装置３は、書き込みデータをノード２ｂに送信し、ノード２ｂは、当該書き込みデータをキャッシュページに格納する。ステップｔ５において、ノード２ｂは、キャッシュ格納後、要求処理完了（終了ステータス）を通知し、排他解除を行う。
【０１８５】
図１５は、ノード２ｂに、制御権を保持するノード２ｄからキャッシュの使用許可が行われる場合の一シーケンスを示す図である。図１５において、上位装置３、ノード２ｂ、２ｄ、３ｃは、図１１、図１２の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０１８６】
上位装置３は、書き込み要求をノード２ｂに送信する。ステップｔ１にて上位装置３より書き込み要求を受信したノード２ｂは、キャッシュを検索し、該当するキャッシュページが存在しない場合、要求に対応するキャッシュページの制御権をノード３ｃに要求する。
【０１８７】
ステップｔ２において、ノード２ｂより制御権の要求を受信したノード３ｃは、該当する制御権保持ノードを検索し、該当キャッシュページの制御権保持ノードがノード２ｄであることがわかる。ノード３ｃは、ノード２ｄにノード２ｂからの要求に対する使用許可処理の指示を行う。
【０１８８】
ステップｔ３において、ノード３ｃより指示を受信したノード２ｄは、該当キャッシュページの排他処理を行い、ノード２ｂが該キャッシュページへアクセスするために必要なアクセス情報を含む使用許可通知をノード２ｂに通知する。
【０１８９】
ステップｔ４において、ノード２ｄより使用許可通知を受信したノード２ｂは、上位装置３に、書き込み要求に対する肯定応答（Ａｃｋ）を送信する。ステップｔ５にて、Ａｃｋを受信した上位装置３は、書き込みデータを、ノード２ｂに送信する。ノード２ｂは、上位装置３から送信された書き込みデータを受信し、ノード２ｄ内の該当するキャッシュページへアクセスして、書き込みデータを格納する。
【０１９０】
ステップｔ６において、キャッシュページへのデータ格納後、ノード２ｂは、上位装置３に書き込み要求の処理完了（終了ステータス）を通知する。また、ノード２ｂは、使用完了通知をノード２ｄに送信する。
【０１９１】
ステップｔ７において、ノード２ｂからの使用完了通知を受けたノード２ｄは、該当キャッシュページの排他解除を行う。
【０１９２】
図１６は、上位装置３からノード２ｂに読み出し処理を行った場合の一シーケンス動作を説明するための図である。図１６において、上位装置３、ノード２ｂ、２ｄ、３ｃは、図１１、図１２の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０１９３】
上位装置３は、読み出し要求をノード２ｂに送信する。
【０１９４】
ステップｔ１において、上位装置３より読み出し要求を受信したノード２ｂは、要求に対応するキャッシュ検索を行う。前記要求に対応するキャッシュが見つかった場合、該当するキャッシュページの排他処理を行い、キャッシュページのデータを読み出す。ステップｔ２において、ノード２ｂは、読み出しデータを上位装置３に送信する。終了状態を送信した後、ステップｔ３において、ノード２ｂは、該当するキャッシュページの排他解除を行う。
【０１９５】
図１７は、上位装置からの読み出し要求に対応してキャッシュノード２ｂに制御権が付与される場合の一シーケンスを示す図である。図１７において、上位装置３、ノード２ｂ、２ｄ、３ｃは、図１１、図１２の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０１９６】
図１７を参照すると、上位装置３は、読み出し要求をキャッシュノード２ｂに送信する。
【０１９７】
ステップｔ１において、上位装置３より読み出し要求を受信したノード２ｂは、要求に対応するキャッシュ検索を行い、該当するキャッシュが存在しない時、要求に対応する制御権をノード３ｃに要求する。ステップｔ２において、ノード２ｂより要求を受信したノード３ｃは、該当する制御権保持ノードを検索し、登録されていないため、ノード２ｂに対して該当する制御権を付与し、制御権付与を通知する。
【０１９８】
ステップｔ３において、ノード３ｃより通知を受信したノード２ｂは、キャッシュページを準備し、排他処理して、ストレージ装置８ｃ内の必要なデータをノード３ｃに要求する。ステップｔ４にて、要求により、ストレージ装置８ｃ内の該当するデータが読み出され、当該読み出しデータが、ノード３ｃからノード２ｂに相互通信手段を介して転送され、ノード２ｂのキャッシュページに格納される。
【０１９９】
また、ノード３ｃは、ステップｔ２においてノード２ｂより制御権の要求を受け、該当する制御権保持ノードが存在しないと判明した際に、当該要求に対応するストレージ装置８ｃ内のデータをノード３ｃ内のローカルメモリへ先読みする処理を、ノード２ｂに対して該当する制御権の付与および通知する処理と並行して行っても良い。これにより、ノード２ｂよりストレージ装置８ｃ内の該当データを要求された際に、ローカルメモリに先読みしたデータを用いることで、ストレージ装置のアクセス速度の遅さを緩衝し、キャッシュページへのデータ格納にかかる時間を短縮することが可能である。
【０２００】
ステップｔ５においてキャッシュページへのデータ格納が完了すると、ノード２ｂは、当該キャッシュページのデータを上位装置３に送信し、読み出しデータの終わりを示す終了ステータス情報を送信し、ステップｔ６において当該キャッシュページの排他を解除する。
【０２０１】
図１８は、ノード２ｂに、制御権を保持するノード２ｄからキャッシュの使用許可が行われる場合の一シーケンスを示す図である。図１８において、上位装置３、ノード２ｂ、２ｄ、３ｃは、図１１、図１２の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃに対応する。
【０２０２】
上位装置３は、読み出し要求をキャッシュノード２ｂに送信する。ステップｔ１において、読み出し要求を受信したキャッシュノード２ｂは、キャッシュ検索し、該当するキャッシュページが存在しない場合、該当するキャッシュページの制御権をノード３ｃに要求する。ステップｔ２において、ノード２ｂより要求を受信したノード３ｃは、該当キャッシュページの制御権保持ノードを検索し、該当キャッシュページの制御権保持ノードがノード２ｄであることがわかる。ノード３ｃは、ノード２ｄにノード２ｂからの要求に対する使用許可処理の指示を行う。
【０２０３】
ステップｔ３において、ノード３ｃより指示を受信したノード２ｄは、該当キャッシュページの排他処理を行い、ノード２ｂが該キャッシュページへアクセスするために必要なアクセス情報を含む使用許可通知を、ノード２ｂに通知する。
【０２０４】
ステップｔ４において、ノード２ｄより使用許可通知を受信したノード２ｂは、ノード２ｄ内の該当するキャッシュページへアクセスし、読み出しデータを上位装置３に送信する。
【０２０５】
ノード２ｂは、終了ステータス送信後、ステップｔ５において、使用完了通知をノード２ｄに送信する。ステップｔ６において、使用完了通知を受信したノード２ｄは、該当キャッシュページの排他を解除する。
【０２０６】
次に、本発明の第２の実施例について、図面を参照して説明する。本発明の第２の実施例は、前記第１の実施例と同様、図４の構成からなり、ホストコンピュータ等の上位装置との入出力を制御し、該入出力データを一時的に記憶するキャッシュ機能を有する複数のキャッシュノード２ａ、２ｂ、２ｃ、２ｄと、データを最終的に記録し保存するストレージ装置との入出力を制御する記憶制御ノード３ａ、３ｂ、３ｃ、３ｄと、複数のキャッシュノード２ａ、２ｂ、２ｃ、２ｄと、複数の記憶制御ノード３ａ、３ｂ、３ｃ、３ｄ間の相互の通信を介する相互通信手段４と、を備えて構成されている。ストレージシステム１は、構成と各記憶制御ノードに接続される１つ以上のストレージ装置より構成される。
【０２０７】
なお、図４では、簡単のため、キャッシュノード、記憶制御ノードを４台備えた構成としたが、第１の実施例と同様、台数は特に制限されない。また、相互通信手段４は、バス、ＳＣＳＩ、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット網または任意の他の好適な通信手段であってもよい。また、上位装置の台数、ストレージ装置の台数も特に制限されない。ストレージ装置は、複数のディスクドライブ群からなるディスクユニットであってもよく、ディスクアレイ装置等であってもよい。さらに、記憶制御ノードごとにストレージ装置を備えてもよく、記憶制御ノードとストレージ装置間を相互接続する構成としてもよい。
【０２０８】
本実施例では、特定のキャッシュノードに割当てられる制御権を、記憶制御ノード３ａ、３ｂ、３ｃ、３ｄにて、ある制御権がどのキャッシュノードに割当てられているかを、分担して管理する。
【０２０９】
図２８、図２９、図３０は、ストレージシステム１が認識する論理記憶空間（論理ボリューム）がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報の構成を示す図である。
【０２１０】
本発明の第２の実施例の記憶空間構成情報は、第１の実施例で説明した、図６で示される論理記憶構成情報を、特定の論理記憶空間を所定の大きさに分割した例であり、この所定の大きさに分割した単位領域を「エクステント」と呼び、制御権の単位領域をこのエクステントと同じ大きさに割り当てる。
【０２１１】
本発明の第２の実施例の制御権は、図１乃至図３を参照して説明した特定のチャンクの制御権に対応する。
【０２１２】
本発明の第２の実施例においては、１つの論理ボリュームを複数の記憶制御ノードのエクステントから構成することで、前記第１の実施例に対して、複数の記憶構成ノードに処理を分散させることが可能になり、上位装置のストレージシステムに対し、処理の分散を行い性能の改善を図る。エクステントは通常、キャッシュページの整数倍の領域からなり、数十メガバイトから数百メガバイトの大きさを持つ。
【０２１３】
制御権を持つノードは、他のノードに通信することなく、エクステント内のデータに関する、キャッシュの制御ができる。
【０２１４】
一方、制御権を持たないキャッシュノードは、制御権を持つキャッシュノードが存在する場合に、予め定められた所定の動作を行うことにより、制御権を持つノードの該当するエクステント内のデータに関するキャッシュの制御を行うことができる。
【０２１５】
また、どのキャッシュノードにも、当該エクステントに対応する制御権が存在しなかった場合、制御権の問い合わせを行ったノード、即ち、最初に上位装置からのデータの読み出し要求もしくは書き込み要求を受けたノードに制御権を与える。それは、記憶制御ノードに、どのキャッシュノードが制御権を持つかを示す情報を書き込み、制御権の問い合わせを行ったキャッシュノードにエクステントを確保することで実現する。
【０２１６】
制御権を割り当てた後は、必要に応じて、キャッシュページを新規に確保した上で、上位装置からのデータの読み出しもしくは書き込み要求を受けたノードが、書き込みであれば、上位装置からのデータを該キャッシュページに格納し、読み出しであれば、記憶制御ノード経由でストレージ装置から、該当するデータを、該キャッシュページに格納した後に、上位装置に転送する。
【０２１７】
図４に示す例では、キャッシュ機能を有するキャッシュノード２ａ、２ｂ、２ｃ、２ｄが、上位装置から、データ読み出し要求またはデータ書き込み要求を受け取ると、それぞれ、自キャッシュノード内のローカルメモリ（図５参照）に格納されている制御メモリ部のキャッシュの管理情報を用いて、自キャッシュノード内のキャッシュページ格納部に、該当するキャッシュページが存在するか否か検索する。
【０２１８】
本発明の第２の実施例においては、制御権の与えられたエクステントに対してのみ、キャッシュ処理の許可が与えられる為、特定論理アドレスに対応するキャッシュページが見つかるということは、そのキャッシュページの論理アドレスを含むエクステントに対して制御権が与えられていることになり、該キャッシュページに対する書き込み及び読み出し動作は、他のノードへの問い合わせ無しに実行することが可能である。
【０２１９】
即ち、データ読み出し要求またはデータ書き込み要求を上位装置から受けとったキャッシュノードにおいて、キャッシュ検索により該当するキャッシュページが存在すると判断したときには、該キャッシュノードは、当該キャッシュページを含むエクステントに対して制御権を持っており、該キャッシュノードは、データ読み出し要求であれば、当該キャッシュページからデータを上位装置に転送すれば良く、上位装置に対する高速なレスポンスが可能となる。データ書き込み要求であれば、当該キャッシュページにデータを書き込んだ時点で、上位装置に対して、処理の完了を返し、そのデータを、処理完了後に、ストレージ装置に書き込むことにより、やはり高速レスポンスが可能となる。
【０２２０】
一方、データ読み出し要求またはデータ書き込み要求を上位装置から受けとったキャッシュノードにおいて、キャッシュ検索により該キャッシュノード内に、該当するキャッシュページが存在しないと判断した場合、該キャッシュノード内の論理記憶構成情報を検索し、該キャッシュページを含むエクステントが存在すれば、管理ノードを含む他のノードに通信すること無く、キャッシュページを新規に確保し、書き込みであれば、上位装置からのデータを該キャッシュページに受信し、読み出しであれば、記憶制御ノード経由でストレージ装置から、該当するデータを、該キャッシュページに受信した後に、上位装置に転送する。
【０２２１】
読み込み、書き込み要求いずれの場合でも、該キャッシュページを含むエクステントに制御権があれば、該キャッシュページが存在しない場合でも、第１の実施例の様に、管理ノードに問い合わせること無く、キャッシュの処理を行うことが可能になり、キャッシュページが存在しない場合においても高速化を図ることができる。
【０２２２】
また、該キャッシュページを含むエクステントが該キャッシュノードの論理記憶構成情報に存在しない場合は、制御権を管理する管理ノードへ通知して、該管理ノードが制御権管理情報の検索を行う。
【０２２３】
その時、当該エクステントの制御権保持ノードが制御管理情報に存在する場合、要求を受理したキャッシュノードは、制御メモリ部のキャッシュの管理情報を調べ、自キャッシュノード内のキャッシュページ格納部に、該当するキャッシュページが存在するか否か検索する。
【０２２４】
その結果、当該キャッシュページが存在する場合に、データ読み出し要求であれば、制御権保持ノードの当該キャッシュページから、相互通信手段４を経由して、データを転送すれば良く、ストレージ装置からデータを読み出すよりも、大幅な高速レスポンスが可能である。
【０２２５】
データ書き込み要求であっても、上位装置からの書き込みデータを、相互通信手段４を経由して制御権保持ノードの該当するキャッシュページにデータを書き込んだ時点で、上位装置に対して処理の完了を返し、そのデータを、後でストレージ装置に書き込むことにより、ストレージ装置へのアクセスが発生しないことから、やはり、高速レスポンスが可能となる。
【０２２６】
また、管理ノードより要求を受けた制御権を持つノードで、該キャッシュページが存在しない場合、キャッシュページを新規に確保し、書き込みであれば、上位装置からのデータを、上位装置から要求を受けたノードと相互通信手段４を経由して、該キャッシュページに受信し、読み出しであれば、記憶制御ノード経由でストレージ装置から、該当するデータを、該キャッシュページに受信した後に、相互通信手段４を経由して、上位装置から要求を受けたノードから上位装置に転送する。
【０２２７】
図５は、図４のキャッシュノード２ａ、２ｂ、２ｃ、２ｄの構成を示す図である。なお、図４のキャッシュノード２ａ、２ｂ、２ｃ、２ｄは、同一構成とされ、キャッシュノード２とする。図５を参照すると、キャッシュノード２は、上位装置インターフェース手段１０と、プログラム制御により動作し主制御部となるデータ処理装置１１と、ローカルメモリ１２と、コントローラ１３とを備えている。
【０２２８】
上位装置インターフェース手段１０は、１つ以上の上位装置と、各接続パス５ａ、５ｂ、５ｃ、５ｄを介して、接続され、上位装置からのデータ読み出し要求またはデータ書き込み要求を受信し、上位装置と、キャッシュノードとの間のデータの入出力を処理する。キャッシュノードには、複数の上位装置インターフェース手段を備えても良く、上位装置との接続には、スイッチ等の相互接続手段を用いても良い。
【０２２９】
データ処理装置１１は、コマンド制御手段１１１と、管理ノード特定手段１１２と、キャッシュ制御手段１１３を備えている。コマンド制御手段１１１は、上位装置インターフェース手段１０が受信した上位装置からのデータ読み出し要求またはデータ書き込み要求の各コマンドを判断し、各コマンドに応じた処理を制御する。
【０２３０】
管理ノード特定手段１１２は、自キャッシュノード内で読み書きすべきエクステントが存在しない場合に、通信する管理ノードを特定する。
【０２３１】
キャッシュ制御手段１１３は、キャッシュ検索処理やローカルメモリ１２に格納されたキャッシュを管理制御する。
【０２３２】
ローカルメモリ１２は、制御メモリ部１２１と、キャッシュページ部１２２を備え、ストレージ装置よりも高速なアクセスが可能な半導体メモリによって構成されている。ローカルメモリ１２は、複数あってもよく、制御メモリ部１２１と、キャッシュページ部１２２とがそれぞれ別のローカルメモリに備えられていてもよい。
【０２３３】
制御メモリ部１２１は、論理記憶空間がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報（図６参照）や、制御権が自ノードに存在しない場合に問い合わせるノードを決定する制御権管理ノード情報（例えば図２８乃至図３０等参照）、キャッシュの管理情報、キャッシュノードの制御情報を格納する。
【０２３４】
キャッシュページ部１２２は、上位装置インターフェース手段１０を経由して上位装置との間で入出力されるデータをページ単位で一時的に格納する。
【０２３５】
コントローラ１３は、キャッシュノード２のデータ通信を制御し、相互通信手段４を介して他のキャッシュノードおよび記憶制御ノードとの通信も処理する。キャッシュノードには、複数のコントローラを備えても良い。
【０２３６】
図２８、図２９、図３０は、ストレージシステム１が認識する論理記憶空間（論理ボリューム）がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報の構成を示す図である。本実施例においては、ある論理ボリューム番号内のエクステントがどの記憶制御ノードのどのエクステントから構成されるかを示すテーブルで管理している。
【０２３７】
図５の管理ノード特定手段１１２は、図２８等の管理ノード構成情報を参照することにより、ある論理ボリューム番号の制御権管理情報が、どの記憶制御ノードに割当てられているかを判断でき、管理ノードを特定することができる。
【０２３８】
図２８乃至図３０の論理記憶構成情報は、図６で示される記憶空間構成情報の一例で、特定の論理記憶空間を所定の大きさに分割した単位に管理する例である。１つの論理ボリュームは複数のエクステントに分割され、これを論理エクステント名付ける。また、記憶制御ノード下の論理記憶空間もエクステント単位に分割される。これらのエクステントは、それぞれ論理アドレスもしくは論理記憶空間内で昇順に番号が割り振られ、それぞれ、「論理エクステント番号」、「物理エクステント番号」と名付ける。
【０２３９】
図２８の論理記憶構成情報は、論理ボリューム内の論理エクステントが、どの記憶ノード配下の物理エクステントであるか、対応付けるテーブルである。ある論理ボリュームの論理エクステント番号は、論理ボリューム内の読み書きを示す位置情報である論理アドレスから一意に決定でき、その時の論理エクステント番号で示されるテーブルには、その論理エクステントがマッピングされた記憶制御ノードの情報と、該記憶制御ノード内に割りあてられた物理エクステントの番号が記録されている。
【０２４０】
本発明の第２の実施例では、あるキャッシュノードが制御権をもつかどうかは、そのノードの論理記憶構成情報を検索し、論理エクステントに対する物理エクステントがテーブル上でマッピングされているか否かで定義する。
【０２４１】
論理エクステントに対し、物理エクステントの情報がマッピングされていれば、その論理記憶構成情報を持つキャッシュノードは、該エクステントに対する制御権を持つ。
【０２４２】
論理エクステントに対し、物理エクステントがマッピングされない、即ち、論理エクステント番号で決まるテーブルに、記憶制御ノードと該記憶制御ノード配下の物理エクステント番号が定義されていなければ、該エクステントに対する制御権は存在しない。
【０２４３】
次に、図７を参照して、記憶制御ノードについて説明する。各記憶制御ノード３ａ、３ｂ、３ｃ、３ｄは同一構成とされる。記憶制御ノード３は、記憶装置インターフェース手段２０と、プログラム制御により動作し主制御部となるデータ処理装置２１と、ローカルメモリ２２と、コントローラ２３とを備えている。
【０２４４】
記憶装置インターフェース手段２０は、１つ以上のストレージ装置と各接続パス６ａ、６ｂ、６ｃ、６ｄを介して接続され、ストレージ装置と記憶制御ノードの間のデータの入出力を行う。
【０２４５】
データ処理装置２１は、制御権管理手段２１１と記憶装置制御手段２１２とを備える。
【０２４６】
記憶装置制御手段２１２は、データを最終的に記録し保存するストレージ装置への入出力コマンド処理を制御する。
【０２４７】
制御権管理手段２１１は、キャッシュノード２ａ、２ｂ、２ｃ、２ｄからの制御権に対する処理要求を実行する。
【０２４８】
ローカルメモリ２２は、制御メモリ部２２１を備え、ストレージ装置よりも高速なアクセスが可能な半導体メモリによって構成されている。
【０２４９】
制御メモリ部２２１は、記憶制御ノードの制御情報やストレージシステム１の装置構成情報を格納する。また、制御メモリ部２２１には、ストレージシステム１の認識するすべての論理記憶空間内のアドレスから一意に決定される特定のキャッシュページ単位に関する制御権をどのノードが持つかを示す制御権管理情報が格納される。
【０２５０】
コントローラ２３は、記憶制御ノードのデータ通信を制御し、相互通信手段４に接続され、他のキャッシュノードおよび記憶制御ノードとの通信を制御する。記憶制御ノードには、複数のコントローラを備えても良い。
【０２５１】
図３１、図３２は、図７におけるローカルメモリ２２の制御メモリ部２２１に格納される制御権管理情報の構成を示す図である。
【０２５２】
制御メモリ部２２１（図７参照）に格納される図３１の制御権管理情報は、ある論理ボリュームのエクステントが、どのキャッシュノードにより制御権を保持されているかを示す情報からなり、エクステント単位毎に、そのエクステントの制御権を持つキャッシュノード番号が対応してテーブルを構成している。
【０２５３】
これにより、制御権管理手段２１１は、あるエクステント番号が示されると、そのエクステントが制御権管理情報にあるか調べ、該当エクステントに対して制御権を持っているキャッシュノードの有無と、制御権を持っているノードがいた場合は、キャッシュノードを特定することができる。制御権管理手段２１１は、この判断に応じた処理を行う。
【０２５４】
制御権を持つキャッシュノードが存在しなかった場合は、新たに制御権を設定し制御権管理情報に登録し、制御権を登録したノードに対して通知する。
【０２５５】
制御権を持つキャッシュノードが存在した場合には、制御権を持つキャッシュノードに対して所定の指示を行う。
【０２５６】
次に、本発明の第２の実施例の動作について詳細に説明する。
【０２５７】
図３３は、本発明の第２の実施例におけるキャッシュノードが、上位装置からのデータ読み出し要求またはデータ書込み要求を受領し、自キャッシュノードにおいてキャッシュ検索した際に、自キャッシュノードにキャッシュが存在する場合の処理を示すフローチャートである（ステップＣ１〜ステップＣ１８）。
【０２５８】
以下、上位装置からのデータ読み出し要求またはデータ書込み要求を受領するキャッシュノードがキャッシュノード２ａである場合を例に説明する。
【０２５９】
図４のキャッシュノード２ａは、上位装置から接続パス５ａを介して、上位装置インターフェース手段１０（図５参照）にて、データ読み出し要求またはデータ書込み要求のコマンドを受領する。
【０２６０】
キャッシュノード２ａは、該コマンドを受領すると、コマンド制御手段１１１（図５参照）にて、要求を解析する。
【０２６１】
そして、キャッシュ制御手段１１３（図５参照）は、コマンド制御手段１１１の解析結果を受けて、該要求のデータが該当する論理ボリューム上の論理アドレスのデータが既にキャッシュページ部１２２にあるかどうか、制御メモリ部１２１（図５参照）上のキャッシュ制御情報（図２３参照）を、前記第１の実施例と同様に検索して判定する（図３３のステップＣ１）。
【０２６２】
該当する論理アドレスのデータがキャッシュページ部１２２（図５参照）上に存在する場合、他の処理により操作されないように、当該キャッシュページを排他処理した後、キャッシュノード２ａは、データ読み出し要求であれば、ただちに該当するデータをキャッシュページ部１２２上の当該キャッシュページより読み出し、上位装置へ転送する。
【０２６３】
また、データ書込み要求であれば、上位装置より送られたデータをキャッシュページ部１２２上の該当キャッシュページに書き込む。各処理は、他のノードへ通信が必要ないため、高速に処理することができる（図３３のステップＣ２）。
【０２６４】
この後、キャッシュ制御手段１１３は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）法などによる効率的なキャッシュページ管理を行うために必要な、制御メモリ部１２１のキャッシュ管理情報を更新し、排他を解除する。
【０２６５】
該当する論理ボリューム上の論理アドレスのデータがキャッシュページ部１２２上に存在しない場合、図３３に示す手順にしたがった処理が行われる。
【０２６６】
まず、キャッシュノード２ａのキャッシュ制御手段１１３は該アドレスのデータがキャッシュページに存在しないと判断すると、キャッシュノード２ａの管理ノード特定手段１１２は、該論理ボリューム上の論理アドレスが含まれるエクステントが、自身のノードに存在するか否かの判定を行う（図３３のステップＣ３）。それには、図２８の論理記憶構成情報を使って行う。この時のキャッシュノード２ａの論理記憶構成情報が、図２８に示すもので、該論理アドレスから一意に求まる論理エクステントの番号が”２”、論理ボリュームが”０”であったとすると、具体的には次の様になる。
【０２６７】
キャッシュノード２ａのキャッシュ制御手段１１３は、論理アドレスから一意に求まる論理エクステント番号の”２”と論理ボリュームが”０”という情報から論理記憶構成情報上の１つのテーブルを決定する。
【０２６８】
キャッシュ制御手段１１３はキャッシュ制御情報（図２８参照）上の論理ボリュームが”０”の論理エクステント番号の”２”に該当するテーブルに物理エクステント番号と記憶制御ノードの情報が無いか判断する。その結果、論理エクステント番号が２のテーブルには、３ａの記憶制御ノードの物理エクステント番号”１”のエクステントが割り当てられていることが解る。即ち、論理エクステント番号が”２”のエクステントの制御権はキャッシュノード２ａが持つことが判定できる。
【０２６９】
当該エクステントに関する制御権は持つが、該当論理アドレスを含むデータがキャッシュページ部に存在しないため、キャッシュノード２ａのキャッシュ制御手段１１３は新規にキャッシュページの確保を行い（図３３のステップＣ４）、その後、継続して行われるデータ読み出しもしくは書き込みの為に、該キャッシュページの排他処理を行う。
【０２７０】
この後、上位装置からの要求がデータ読み出し要求であれば、制御記憶制御ノード３ａに該当するデータのストレージ装置より読み出しを指示し、キャッシュノード２ａの該当キャッシュページに格納し、上位装置へ転送する。
【０２７１】
また、上位装置からの要求がデータ書き込み要求であれば、上位装置より送られたデータを該当するキャッシュページに書き込み、上位装置に対して、処理の完了を返し、後でそのデータをストレージ装置に書き込む（図３３のステップＣ５）。こうすることで、該論理アドレスのキャッシュページがキャッシュメモリ部に存在しないときでも、記憶制御ノードと通信することなく、高速に処理可能である。
【０２７２】
また、図３３のステップＣ３で、該論理アドレスが含まれるエクステントが自身のノードに存在しない時には、該当ページに属するエクステントの制御権の要求を通知すべき管理ノードの特定を行う（図３３のステップＣ６）。管理ノードを特定するには、図２８の管理ノード構成情報を使って行う。
【０２７３】
この時、論理ボリューム０に対する処理で、かつ、キャッシュノード２ａの論理記憶構成情報が、図２８に示すものであり、該論理アドレスから一意に求まる論理エクステントの番号が”５”であったとすると、次の様になる。
【０２７４】
管理ノード特定手段１１２（図５参照）は、図２８の管理ノード構成情報を参照し、論理ボリューム０を管理する記憶制御ノードを特定する。この場合、論理ボリューム０のテーブル上の（論理エクステント番号”０”の）記憶ノード情報が”３ａ”であることから、制御権を管理するノードは”３ａ”の記憶制御ノードであり、該論理エクステントの、記憶制御ノード３ａ配下の物理エクステントは”３”であることが判明する。
【０２７５】
該当の管理ノードを特定した後、コントローラ１３に通知を指示し、相互通信手段４を介して特定した記憶制御ノード３ａへ制御権要求を通知する（図３３のステップＣ７）。
【０２７６】
制御権要求の通知を受けた記憶制御ノード３ａ、コントローラ２３（図７参照）にて、該制御権要求を受信し、制御権管理手段２１１にて該制御権要求を判断し、制御権判定の処理を行う。
【０２７７】
制御権管理手段２１１は、制御メモリ部２２１に格納された制御権管理情報を検索して、該当する論理アドレスのエクステントがあるかを判定する（図３３のステップＣ８）。
【０２７８】
本実施例では、制御権管理情報（図３１参照）に、論理エクステント番号と該論理エクステント番号の制御権を持つキャッシュノードを示す、制御権保持ノード番号を格納する。
【０２７９】
ここで、記憶制御ノード３ａが受けた、制御権要求の情報は、前述の様に、論理ボリュームが０の論理エクステント番号が”５”の要求である。
【０２８０】
また、この時の記憶制御ノード３ａが持つ制御管理情報が（図３１）に示す内容であるものとすると、制御権管理手段２１１は、制御権管理情報（図３１）の論理エクステント番号に制御保持ノード番号が登録されていないか、検索を行う。
【０２８１】
その結果、論理エクステント番号が”５”のテーブルには、制御保持ノード番号が登録されていない為、どのキャッシュノードも制御権を持たないことが解る。
【０２８２】
前述の様に、該制御権要求のデータに対応する制御権保持ノードが存在しなかった場合、要求してきたキャッシュノード２ａに対して当該エクステントの制御権を新規に付与し、制御権管理情報に登録する（図３３のステップＣ９）。
【０２８３】
具体的には、記憶制御ノード３ａの制御権管理情報（図３１参照）の論理エクステント番号が”５”の空いている制御権保持ノード番号の箇所に、新規に、ノード２ａを登録し、新規の物理エクステントをストレージシステム内の記憶制御ノード配下の物理エクステントの中から１つ確保する。
【０２８４】
当該制御権を登録後、コントローラ２３に通知を指示し、相互通信手段４を介して、新規に物理エクステントを登録し、制御権が確保できたことを要求元ノードであるキャッシュノード２ａに通知する（図３３のステップＣ１０）。
【０２８５】
該当論理エクステントに対し、新規に物理エクステントが与えられ制御権を確保したことを受信したキャッシュノード２ａは、論理記憶構成情報（図２８）に物理エクステントの登録を行い、制御権の確立を行う。
【０２８６】
具体的には、記憶制御ノード３ａの返した情報がノード３ａの物理エクステント番号が”９”であった場合、最初に要求をした論理エクステント番号が”５”のテーブルに、記憶制御ノードが”３ａ”であることと、その物理エクステントが”９”であることを記録することにより実現する（図２９参照）。
【０２８７】
その後、キャッシュ制御手段１１３は、上位装置より要求を受けた論理アドレスの読み出しまたは書き込みを行う為に、新規のキャッシュページの確保を行い、該キャッシュページの排他処理を行う。
【０２８８】
ここでは、上位装置からの要求により、キャッシュノード２ａが制御権を得たが、上位装置からのアクセス無しに、ノードが自発的に、連続したデータの読み出し要求を予想し、あらかじめストレージ装置から先にデータをキャッシュに読み込む先読みキャッシュ動作などでも、本シーケンスと同じ様な制御権を得ることが可能である。
【０２８９】
この後、上位装置からの要求がデータ読み出し要求であれば、制御記憶制御ノード３ａに該当するデータのストレージ装置より読み出しを指示し、キャッシュノード２ａの該当キャッシュページに格納し、上位装置へ転送する。
【０２９０】
上位装置からの要求がデータ書き込み要求であれば、上位装置より送られたデータを該当するキャッシュページに書き込み、上位装置に対して、処理の完了を返し、後でそのデータをストレージ装置に書き込む（図３３のステップＣ１１）。
【０２９１】
上位装置の要求処理完了後、キャッシュノード２ａのキャッシュ制御手段１１３は、ＬＲＵ法などによる効率的なキャッシュページ管理を行うために必要な、制御メモリ部１２１のキャッシュ管理情報を更新し、排他を解除する。
【０２９２】
この書き込み要求に対する処理では、上位装置に応答を返すまでにストレージ装置へのアクセスが発生しないため高速なレスポンスが可能である。
【０２９３】
図３３のステップＣ８において、制御権管理情報を検索し、該当する論理アドレスの物理エクステントが登録されて、制御権保持ノードがある場合、記憶制御ノード３ａは、制御権保持ノードに対し、制御権要求元ノードであるキャッシュノード２ａの該当物理エクステントの利用要求を指示する（図３３のステップＣ１２）。
【０２９４】
以下では、制御権管理情報により、制御権保持ノードがキャッシュノード２ｂであったものとして説明する。
【０２９５】
記憶制御ノード３ａが受けた論理エクステント番号が”６”で、制御管理情報が図３１で示すものとする。
【０２９６】
記憶制御ノード３ａの制御権管理手段２１１は制御権管理情報（図３１）の論理エクステント番号が６のテーブルに制御権保持ノード番号が登録されていないか、検索を行う。
【０２９７】
その結果、物理エクステント番号が”６”の位置に制御権保持ノード番号”２ｂ”が登録されており、論理ボリュームが”０”の論理エクステント番号が”６”のエクステントは、キャッシュノード２ｂが制御権をもつことが解る。
【０２９８】
その後、記憶制御ノード３ａの制御権管理手段２１１は、コントローラ２３に通知を指示し、相互通信手段４を介して、キャッシュノード２ｂに該当論理エクステントの利用要求を通知する。
【０２９９】
該当論理エクステントの制御権保持ノードであるキャッシュノード２ｂは、キャッシュノード２ｂのコントローラ１３にて、記憶制御ノード３ａより、キャッシュノード２ａの該当論理エクステントの利用要求と読み出し、書き込みの為の論理アドレスを受け取り、キャッシュノード２ｂのキャッシュ制御手段１１３にて、該当論理エクステントを他の処理により操作されないよう排他処理する（図３３のステップＣ１３）。
【０３００】
キャッシュノード２ｂのキャッシュ制御手段１１３は、該当論理エクステントの排他処理後、該当論理エクステント内の論理アドレスに相当するデータが、キャッシュノード２ｂのキャッシュページ部に存在するか否か検索を行う（図３３のステップＣ１４）。
【０３０１】
その結果、該当論理アドレスのデータに相当するキャッシュページがキャッシュページに存在すれば、該キャッシュページを他の処理により操作されないように排他を行い、該キャッシュページへアクセスするためのアドレス情報を、キャッシュノード２ｂのコントローラ１３に、制御権要求元ノードであるキャッシュノード２ａに対して通知を指示し、相互通信手段４を介し通知する（図３３のステップＣ１５）。
【０３０２】
該当キャッシュページへアクセスするためのアドレス情報の通知を受けたキャッシュノード２ａは、この後、上位装置からの要求がデータ読み出し要求であれば、キャッシュノード２ｂの該当キャッシュページに格納されたデータを上位装置へ転送する。
【０３０３】
上位装置からの要求がデータ書き込み要求であれば、上位装置より送られたデータをキャッシュノード２ｂの該当するキャッシュページに書き込み、上位装置に対して処理の完了を返し、後でそのデータをストレージ装置に書き込む（図３３のステップＣ１６）。
【０３０４】
制御権保持ノードに対するこの処理では、上位装置に応答を返すまでにデータ応答時間のかかるストレージ装置へのアクセスが発生しないため高速なレスポンスが可能である。
【０３０５】
また、図３３のステップＣ１４で、該当論理アドレスのデータに相当するキャッシュページがキャッシュページに存在しない場合、キャッシュノード２ｂのキャッシュ制御手段１１３は、新規にキャッシュページの確保を行い、継続して行われるデータ読み出しもしくは書き込みの為に、該キャッシュページの排他処理を行う（図３３のステップＣ１７）。
【０３０６】
この時、論理ボリューム番号が０の論理エクステント番号が”６”で、かつ、キャッシュノード２ｂの論理記憶構成情報が、図３０に示すものであった場合、キャッシュノード２ｂのキャッシュ制御手段１１３は、キャッシュノード２ａが受けた、上位装置からの要求がデータ読み出しであれば、また、上位装置からの要求がデータ読み出し要求であれば、キャッシュノード２ｂのキャッシュ制御手段１１３は、論理記憶制御情報（図３０参照）を参照し、論理エクステント番号が”６”のテーブルを参照する。
【０３０７】
その結果、論理エクステント番号６は、記憶制御ノード３ｂの物理エクステント番号が”１０”の場所に対応付けられているので、キャッシュノード２ｂのキャッシュ制御手段１１３（図５）は、コントローラ１３に通知を指示し、相互通信手段４を介して記憶制御ノード３ｂへ該物理エクステント上のデータの読み込み要求を通知する。
【０３０８】
制御権要求の通知を受けた記憶制御ノード３ｂは、コントローラ２３（図７参照）にて、該制御権要求を受信し、配下の物理エクステント番号が１０上のデータを読み出し、相互通信手段４を介して、キャッシュノード２ｂ上のキャッシュページに格納する。
【０３０９】
その後に、キャッシュノード２ｂは、相互通信手段４を介して、キャッシュページ上のデータを、キャッシュノード２ａを経由し、上位装置に転送する。
【０３１０】
また、上位装置からの要求がデータ書き込み要求であれば、キャッシュノード２ｂのキャッシュ制御手段１１３は、新規に確保されたキャッシュページに対する書き込み通知の指示を、コントローラ１３に指示し、相互通信手段４を介してキャッシュノード２ｂへ通知する。
【０３１１】
キャッシュノード２ａは、キャッシュノード２ｂからの通知内容（書き込みアドレス等）に従い、上位装置から受けた書き込みデータを、通信手段４を介して、キャッシュノード２ｂの該当するキャッシュページに書き込んだ後、上位装置に処理の終了通知し、その後、該当するキャッシュページと論理エクステントの排他処理を解除する（図３３のステップＣ１８）。
【０３１２】
さらにその後に、キャッシュノード２ｂは、論理記憶制御情報（図３０参照）を参照し、論理エクステント番号が６のテーブルを参照する。
【０３１３】
その結果、論理エクステント番号６は、記憶制御ノード３ｂの物理エクステント番号が”１０”の場所に対応付けられているので、キャッシュノード２ｂの物理エクステント番号が”１０”に該当する論理アドレスにデータの書き込みを行う。
【０３１４】
次に、本発明の第３の実施例について説明する。本発明の第３の実施例の構成は、図４に示した本発明の第１、第２の実施例と同様とされ、キャッシュノード２ａ、２ｂ、２ｃ、２ｄと、記憶制御ノード３ａ、３ｂ、３ｃ、３ｄと、相互通信手段４とから構成される。
【０３１５】
図１９を参照すると、本発明の第３の実施例における各キャッシュノード２は、本発明の第１の実施例と同様に、上位装置インターフェース手段１０と、ローカルメモリ１２と、コントローラ１３とを備える。
【０３１６】
また、図２０を参照すると、本発明の第３の実施例における各記憶制御ノード３は、本発明の第１の実施例と同様に、記憶装置インターフェース手段２０と、ローカルメモリ２２と、コントローラ２３とを備える。
【０３１７】
本発明の第３の実施例では、コントローラ１３は、マイクロコンピュータ、プログラムＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を内蔵して並列に処理を行うことができる。コントローラ１３は、上位装置インターフェース手段１０、およびローカルメモリ１２に接続されているとともに、相互通信手段４に接続されている。
【０３１８】
このため、コントローラ１３は、ローカルメモリ１２を高速にアクセスすることができるとともに、相互通信手段４を介して他のノードへもアクセスすることができる。
【０３１９】
キャッシュノードの制御用プログラム１３１は、コントローラ１３のプログラムＲＯＭに格納されており、コントローラ１３のマイクロコンピュータに読み込まれ、コントローラ１３の動作を制御し、ローカルメモリ１２に、制御メモリ部１２１とキャッシュページ部１２２を生成する。
【０３２０】
コントローラ１３は、キャッシュノードの制御用プログラム１３１の制御により、第１の実施例におけるデータ処理装置１１による処理と同一の処理を実行する。
【０３２１】
コントローラ２３も同様に、マイクロコンピュータ、プログラムＲＯＭを内蔵して並列に処理を行うことができ、記憶装置インターフェース手段２０、およびローカルメモリ２２に接続されているとともに、相互通信手段４に接続されている。
【０３２２】
このため、コントローラ２３は、ローカルメモリ２２を高速にアクセスすることができるとともに、相互通信手段４を介して他のノードへもアクセスすることができる。
【０３２３】
記憶制御ノードの制御用プログラム２３１は、コントローラ２３のプログラムＲＯＭに格納されており、コントローラ２３のマイクロコンピュータに読み込まれ、コントローラ２３の動作を制御し、ローカルメモリ２２に、制御権管理情報を含む制御メモリ部２２１を生成する。コントローラ２３は、記憶制御ノードの制御用プログラム２３１の制御により、第１の実施例におけるデータ処理装置２１による処理と同一の処理を実行する。
【０３２４】
本発明のさらに別の実施例について説明する。図２１は、本発明の第４の実施例の構成を示す図である。本実施例では、前記第１の実施例のキャッシュノード２と、記憶制御ノード３を、一つのノード９で構成したものであり、各ノード９ａ、９ｂ、９ｃ、９ｄは、ＬＡＮ、ＳＡＮ等の任意の通信手段５で上位装置７ａ、７ｂ、７ｃ、７ｄに接続されるとともに、ストレージ装置８ａ、８ｂ、８ｃ、８ｄに接続され、他のノードと相互通信手段４を介して接続される。なお、ノード、上位装置、ストレージ装置の台数には特に制限はない。
【０３２５】
図２２は、図２１に示した第４の実施例のノード９の構成を示す図である。図２２を参照すると、ノード９は、入出力インターフェース手段９０と、データ処理装置９１と、ローカルメモリ９２と、コントローラ９３を備えている。
【０３２６】
データ処理装置９１は、図５及び図６に示したコマンド制御手段１１１と、制御権の管理ノード特定手段１１２と、キャッシュ制御手段１１３と、制御権管理手段２１１と、記憶装置制御手段２１２とを備えている。
【０３２７】
コマンド制御手段１１１は、入出力インターフェース手段９０が受信した上位装置からのデータ読み出し要求またはデータ書き込み要求の各コマンドを判断し、各コマンドに応じた処理を制御する。
【０３２８】
管理ノード特定手段１１２は、自キャッシュノード内でキャッシュミスした際に通信すべき、制御権を管理するノードを特定する。
【０３２９】
キャッシュ制御手段１１３は、キャッシュ検索処理やローカルメモリ９２に格納されたキャッシュを管理制御する。
【０３３０】
ローカルメモリ９２は、制御権管理情報を含む制御メモリ部１２１と、キャッシュページ部１２２を備え、ストレージ装置(図２１の８ａ、８ｂ)よりも高速なアクセスが可能な半導体メモリによって構成されている。
【０３３１】
制御メモリ部１２１は、論理記憶空間がどの記憶制御ノードに割当てられているかを示す記憶空間構成情報（図６参照）や、キャッシュの管理情報、およびキャッシュノードの制御情報を格納する。キャッシュページ部１２２は、入出力インターフェース手段９０を経由して上位装置との間で入出力されるデータをページ単位で一時的に格納する。
【０３３２】
コントローラ９３は、ノード９のデータ通信を制御し、相互通信手段４を介して他のノードとの通信も処理する。
【０３３３】
制御権管理手段２１１は、ノード９ａ、９ｂ、９ｃ、９ｄ（図２１参照）からの制御権に対する処理要求を実行する。
【０３３４】
記憶装置制御手段２１２は、ストレージユニットへの入出力コマンド処理を制御する。制御メモリ部１２１に含まれる制御権管理情報は、ストレージシステムの認識するすべての論理記憶空間内のアドレスから一意に決定されるキャッシュページ単位毎に、制御権をどのノードが持つかを示す。なお、本実施例の動作は、前記第１、第２の実施例にて説明した図１０に示した流れ図に従うため、その説明は省略する。
【０３３５】
本発明のさらに別の実施例について説明する。本発明の第５の実施例は、上位装置３がキャッシュノード２ｂへ読み出し要求を発行し、該要求で示される論理アドレスのデータに関するキャッシュページの制御権が、キャッシュノード２ｂにはなく、キャッシュノード２ｄで持つ場合の処理が、前記第１の実施例、前記第２の実施例とは、相違している。以下では、本発明の第５の実施例を、前記第１の実施例、前記第２の実施例との相違点について主に、説明し、同一の処理の説明は、重複を回避するため、適宜省略する。
【０３３６】
図３４は、キャッシュページを要求したキャッシュノード２ｂに、制御権を保持するキャッシュノード２ｄから該キャッシュページの使用許可が行われる場合のシーケンスを示す図である。図３４において、上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃは、図４の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０３３７】
以下では、上位装置から読み出し要求が来た場合について、図３４を参照して、具体的に説明する。本実施例の場合、上位装置からの書き込み要求は、前記第１の実施例および前記第２の実施例の場合と同等の処理を行う。
【０３３８】
まず、以下に、前記第１の実施例の処理に相当する場合の具体例について説明する。上位装置３からの読み出し要求をキャッシュノード２ｂが受信すると、該読み出し要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか否か検索を行う。本実施例では、制御権はキャッシュノード２ｄに持ち、その為、該検索を行っても見つからず、該キャッシュページの制御権の問い合わせを記憶制御ノード３ｃに通知する（ステップｓ１）。
【０３３９】
該要通知を受けた記憶制御ノード３ｃは、該キャッシュページの制御権保持ノードを検索する。本実施例では、制御権をキャッシュノード２ｄに持つ為、検索の結果、制御権保持ノードはキャッシュノード２ｄとなる。記憶制御ノード３ｃは、キャッシュノード２ｄに対し、該キャッシュページの利用通知を、相互通信手段４を用いて行う（ステップｓ２）。
【０３４０】
該通知を受けたキャッシュノード２ｄは、該キャッシュページの排他処理を行い、キャッシュノード２ｂに対して、該当キャッシュページのデータを、相互通信手段４を用いて、キャッシュノード２ｂに対して送信する（ステップｓ３）。
【０３４１】
キャッシュノード２ｂでは、キャッシュノード２ｄからのデータを受信し、引き続き、該データを上位装置３に送信する（ステップｓ４）。
【０３４２】
そして、キャッシュノード２ｂは、上位装置３に対する終了ステータス送信後、使用完了通知を、相互通信手段４を用いてキャッシュノード２ｄに送信し（ステップｓ５）、キャッシュノード２ｄは、該キャッシュページの排他を解除する（ステップｓ６）。
【０３４３】
また、同様に、本実施例において、前記第２の実施例の処理に対応する場合の具体例について、図３５を用いて説明する。なお、構成等は、前述と同一であるものとする。
【０３４４】
まず、上位装置３からの読み出し要求をキャッシュノード２ｂが受信すると、キャッシュノード２ｂは、該読み出し要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行う。本実施例では制御権はキャッシュノード２ｄに持ち、その為、該検索では見つからない。引き続き、該データを含むエクステントがキャッシュノード２ｂに存在するか検索を行う。本実施例では、制御権をキャッシュノード２ｄに持つ場合である為、該エクステントに対する検索は見つからず、次に該エクステントの制御権の使用要求を記憶制御ノード３ｃに通知する（ステップｓ１）。
【０３４５】
該通知を受けた記憶制御ノード３ｃは、該エクステントの制御権保持ノードを検索する。本実施例では、制御権保持ノードがキャッシュノード２ｄである為、記憶制御ノード３ｃは、キャッシュノード２ｄに対する該エクステントに対する利用要求を、相互通信手段４を用いて通知する（ステップｓ２）。
【０３４６】
キャッシュノード２ｄは、該エクステントに対する利用要求を受け取ると、該エクステントの排他処理を行い、次に、上位装置３より読み出し要求を受けたデータがキャッシュノード２ｄのキャッシュページ部に存在するか否か検索を行う（ステップｓ３）。
【０３４７】
前述のエクステントの検索に対して、該当するキャッシュページが存在しない場合、キャッシュノード２ｄのキャッシュ制御手段１１３は新規にキャッシュページの確保を行い、継続して行われるデータ読み出しの為に、該キャッシュページの排他処理を行う。キャッシュノード２ｄのキャッシュ制御手段１１３は、コントローラ１３に通知を指示し、相互通信手段４を介して記憶制御ノード３ｃへデータの読み込み要求を通知する。
【０３４８】
該要求の通知を受けた記憶制御ノード３ｃは、該当するデータを読み出し、相互通信手段４を介して、キャッシュノード２ｄ上のキャッシュページに格納する（ステップｓ８）。
【０３４９】
その後に、キャッシュノード２ｄは、相互通信手段４を介して、キャッシュページ上のデータを、キャッシュノード２ｂを経由し、上位装置に転送する（ステップｓ５）。
【０３５０】
ステップｓ３でのキャッシュページ部に対する検索に対し、該当するキャッシュページが存在する場合、該データの格納されたキャッシュページ内のデータを、キャッシュノード２ｂに対し、相互通信手段４を用いて、キャッシュノード２ｂを経由し、上位装置に転送する（ステップｓ４）。
【０３５１】
図３５のステップｓ３において、キャッシュノード２ｄで該当するデータキャッシュページが存在する／しないのいずれの場合でも、上位装置へのデータの転送が終了すれば、キャッシュノード２ｂは、上位装置３に対する終了ステータス送信する（ステップｓ６）。
【０３５２】
その後、制御権の利用完了通知を、相互通信手段４を用いてキャッシュノード２ｄに送信し、キャッシュノード２ｄは該キャッシュページの排他及び該エクステントの排他を解除する（ステップｓ７）。
【０３５３】
いずれの場合においても、前記第１の実施例、第２の実施例のステップｔ３（図１８参照）において、キャッシュノード２ｄがキャッシュページの使用許可通知の代わりに、データを送ることで、処理のステップ減らすことが可能になり、前記第１の実施例および第２の実施例より、さらに高速化を図ることができる。
【０３５４】
本発明のさらに別の実施例について説明する。本発明の第６の実施例は、上位装置３がキャッシュノード２ｂへ書き込みもしくは読み出し要求を発行し、該要求で示される論理アドレスのデータに関する制御権が、キャッシュノード２ｂにはなく、キャッシュノード２ｄで持つ場合の処理について、前記第１の実施例、第２の実施例と相違している。以下では、本発明の第６の実施例を、前記第１の実施例、前記第２の実施例との相違点について主に、説明し、同一の処理の説明は、重複を回避するため、適宜省略する。
【０３５５】
図３６、図３７、図３８において、上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃは、図４の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０３５６】
以下に、本実施例において、上位装置３から書き込み要求が来た場合（前記第１の実施例に対応する処理）について、図３６を参照して、具体的に説明する。
【０３５７】
まず、上位装置３からの書き込み要求をキャッシュノード２ｂが受信すると、該書き込み要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行うが、本実施例では、キャッシュノード２ｄに制御権を持つ場合であるので、次に該キャッシュページの制御権を記憶制御ノード３ｃに要求する（ステップｓ１）。記憶制御ノード３ｃは、該キャッシュページの制御権保持ノードを検索し、制御権保持ノードがキャッシュノード２ｄであることがわかる。
【０３５８】
記憶制御ノード３ｃは、相互通信手段４を用いて、制御権がキャッシュノード２ｄにあることを、キャッシュノード２ｂに対して通知する（ステップｓ２）。
【０３５９】
キャッシュノード２ｂは、キャッシュノード２ｄに対して、該キャッシュページに対する利用要求を、相互通信手段４を用いて行う（ステップｓ３）。
【０３６０】
キャッシュノード２ｄは、該当キャッシュページの排他処理を行い、キャッシュノード２ｄ上の該当キャッシュページのアクセス情報（アドレスなど）を含む利用許可通知をキャッシュノード２ｂに通知する（ステップｓ４）。
【０３６１】
キャッシュノード２ｂは、上位装置３に、書き込み要求に対する肯定応答（Ａｃｋ）を送信する（ステップｓ５）。
【０３６２】
肯定応答（Ａｃｋ）を受信した上位装置３は、書き込みデータを、キャッシュノード２ｂ宛に送信する（ステップｓ６）。
【０３６３】
キャッシュノード２ｂは、上位装置３から送信された書き込みデータを受信し、キャッシュノード２ｄ内の該当するキャッシュページへアクセスして、書き込みデータを格納し、キャッシュページへのデータ格納後、キャッシュノード２ｂは、上位装置３に書き込み要求終了のステータスを送信する（ステップｓ７）。
【０３６４】
その後、該当キャッシュページの使用完了通知をキャッシュノード２ｄに送信する。その後キャッシュノード２ｂからの使用完了通知を受けたキャッシュノード２ｄは、該当キャッシュページの排他解除を行い、処理を完了する（ステップｓ８）。
【０３６５】
次に、本実施例において、上位装置３から読み出し要求が来た場合（前記第１の実施例に対応する処理）について、図３７を参照して、具体的に説明する。
【０３６６】
まず、上位装置３からの読み出し要求をキャッシュノード２ｂが受信すると、該読み出し要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行うが、本実施例では、キャッシュノード２ｄに制御権がある場合で、検索しても見つからない為、次に、該キャッシュページの制御権を記憶制御ノード３ｃに要求する（ステップｓ１）。
【０３６７】
記憶制御ノード３ｃは、該キャッシュページの制御権保持ノードを検索する。本実施例では、制御権保持ノードはキャッシュノード２ｄであるため、記憶制御ノード３ｃは、相互通信手段４を用いて、制御権がキャッシュノード２ｄにあることを、キャッシュノード２ｂに対して通知する（ステップｓ２）。
【０３６８】
キャッシュノード２ｂは、キャッシュノード２ｄに対して、該キャッシュページに対する利用要求を、相互通信手段４を用いて行う（ステップｓ３）。
【０３６９】
該利用要求を受けたキャッシュノード２ｄは、該当キャッシュページの排他処理を行い、キャッシュノード２ｄ上の該当キャッシュページのアクセス情報（アドレスなど）を含む利用許可通知をキャッシュノード２ｂに通知する（ステップｓ４）。
【０３７０】
キャッシュノード２ｂは、キャッシュノード２ｄからの通知により、キャッシュノード２ｄ内の該当するキャッシュページへアクセスし、読み出しデータを上位装置３に送信する（ステップｓ５）。
【０３７１】
次に、キャッシュノード２ｂは、上位装置に読み出し処理の終了ステータスを送信後、使用完了通知をキャッシュノード２ｄに送信する（ステップｓ６）。
【０３７２】
該通知を受信したキャッシュノード２ｄは該当キャッシュページの排他を解除し、処理が完了する（ステップｓ７）。
【０３７３】
本実施例において、上位装置３から書き込み要求が来た場合（前記第２の実施例に対応する処理）について、図３６を参照して具体的に説明する。
【０３７４】
まず、上位装置３からの書き込み要求をキャッシュノード２ｂが受信すると、キャッシュノード２ｂは、書き込み要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行うが、本実施例では、制御権をキャッシュノード２ｄが持つ場合で、検索の結果はみつからず、引き続き、該データを含むエクステントがキャッシュノード２ｂに存在するか検索を行う。本実施例では、キャッシュノード２ｂは制御権を持たない場合であることから、このエクステントに対する検索は見つからず、次に該エクステントの制御権の使用要求を記憶制御ノード３ｃに要求する（ステップｓ１）。
【０３７５】
記憶制御ノード３ｃは、該エクステントの制御権保持ノードを検索する。本実施例では、制御権保持ノードがキャッシュノード２ｄであることから、記憶制御ノード３ｃは、キャッシュノード２ｂに対し、該エクステントの制御権がキャッシュノード２ｄに存在することを、相互通信手段４を用いて通知する（ステップｓ２）。
【０３７６】
次に、キャッシュノード２ｂは、キャッシュノード２ｄに対する該エクステントに対する利用要求を、相互通信手段４を用いて行う（ステップｓ３）。キャッシュノード２ｄは、該エクステントに対する利用要求を受け取ると、該エクステントの排他処理を行い、次に、上位装置３より書き込み要求を受けたデータがキャッシュノード２ｄのキャッシュページ部に存在するか否か検索を行う。
【０３７７】
前述のエクステントの検索に対して、該当するキャッシュページが存在しなかった場合、キャッシュノード２ｄのキャッシュ制御手段１１３は、新規にキャッシュページの確保を行い、継続して行われるデータ書き込みの為に、該キャッシュページの排他処理を行ったあと、該キャッシュページのアクセス情報（アドレスなど）を含む利用許可通知をキャッシュノード２ｂに通知する。該キャッシュページ部に対する検索に対し、該当するキャッシュページが存在した場合、同様に、キャッシュノード２ｄは該キャッシュページのアクセス情報（アドレスなど）を含む利用許可通知をキャッシュノード２ｂに通知する（ステップｓ４）。
【０３７８】
ステップｓ４で、キャッシュノード２ｄで該当するデータキャッシュページが存在する／しない、いずれの場合も、キャッシュノード２ｂがキャッシュノード２ｄからの、該キャッシュページの利用許可通知を受けると、キャッシュノード２ｂは、上位装置３に、書き込み要求に対する肯定応答（Ａｃｋ）を送信する（ステップｓ５）。Ａｃｋを受信した上位装置３は、書き込みデータを、キャッシュノード２ｂ宛に送信する。キャッシュノード２ｂは、上位装置３から送信された書き込みデータを受信し、キャッシュノード２ｄ内の該当するキャッシュページへアクセスして、データを書き込む。
【０３７９】
上位装置からのデータがキャッシュページに格納されれば、キャッシュノード２ｂは、終了ステータス送信する（ステップｓ７）。その後、制御権の利用完了通知を、相互通信手段４を用いてキャッシュノード２ｄに送信し、キャッシュノード２ｄは該キャッシュページの排他及び該エクステントの排他を解除する（ステップｓ８）。
【０３８０】
次に、本実施例において、上位装置３から読み出し要求が来た場合（前記第２の実施例に対応する処理）について、図３８を参照して具体的に説明する。
【０３８１】
まず、上位装置３からの読み出し要求をキャッシュノード２ｂが受信すると、キャッシュノード２ｂは、読み出し要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行う。本実施例においては、制御権をキャッシュノード２ｄもつ場合で、検索の結果はみつからず、引き続き、該データを含むエクステントがキャッシュノード２ｂに存在するか検索を行う。本実施例では、キャッシュノード２ｂは制御権を持たない場合であることから、このエクステントに対する検索は見つからず、次に、該エクステントの制御権の使用要求を記憶制御ノード３ｃに要求する（ステップｓ１）。
【０３８２】
記憶制御ノード３ｃは、該エクステントの制御権保持ノードを検索する。本実施例では、制御権保持ノードがキャッシュノード２ｄであることから、記憶制御ノード３ｃは、キャッシュノード２ｂに対して、該エクステントの制御権がキャッシュノード２ｄに存在することを、相互通信手段４を用いて通知する（ステップｓ２）。
【０３８３】
次に、キャッシュノード２ｂは、キャッシュノード２ｄに対する該エクステントに対する利用要求を、相互通信手段４を用いて行う（ステップｓ３）。
【０３８４】
キャッシュノード２ｄは、該エクステントに対する利用要求を受け取ると、該エクステントの排他処理を行い、次に、上位装置３より読み出し要求を受けたデータがキャッシュノード２ｄのキャッシュページ部に存在するか否か検索を行う（ステップｓ４）。
【０３８５】
前述のエクステントの検索に対して、該当するキャッシュページが存在しなかった場合、キャッシュノード２ｄのキャッシュ制御手段１１３は、新規にキャッシュページの確保を行い、継続して行われるデータ読み出しの為に、該キャッシュページの排他処理を行う。キャッシュノード２ｄのキャッシュ制御手段１１３は、実施例２と同様に、該エクステントの記憶制御ノードを、制御権管理情報（図８）を検索して決定する。
【０３８６】
この結果、該エクステントの読み出し先が記憶制御ノード３ｃの配下に存在しているものとすると、キャッシュ制御手段１１３は、コントローラ１３に通知を指示し、相互通信手段４を介して記憶制御ノード３ｃへデータの読み込み要求を通知する。
【０３８７】
該要求の通知を受けた記憶制御ノード３ｃは、該当するデータを読み出し、相互通信手段４を介して、キャッシュノード２ｄ上のキャッシュページに格納する(ステップｓ９)。
【０３８８】
ステップｓ４のキャッシュページ部に対する検索に対し、該当するキャッシュページが存在した場合、該データの格納されたキャッシュページの排他処理を行い、キャッシュページ部に対する検索に対し、該当するキャッシュページが存在せず、記憶制御ノード３ｃからデータを読み込んだ場合には、該データのキャッシュページの排他制御を行い、条件により、いずれかのキャッシュページのアクセス情報（アドレスなど）を含む利用許可通知をキャッシュノード２ｂに通知する（ステップｓ５）。
【０３８９】
キャッシュノード２ｂは、キャッシュノード２ｄからの利用許可通知により、キャッシュノード２ｄ内の該当するキャッシュページへアクセスし、読み出しデータを上位装置３に送信する（ステップｓ６）。
【０３９０】
上位装置３へのデータの転送が終了すると、キャッシュノード２ｂは、上位装置３への終了ステータスを送信し、制御権の利用完了通知を、相互通信手段４を用いてキャッシュノード２ｄに送信する（ステップｓ７）。
【０３９１】
キャッシュノード２ｂからの通知を受信したキャッシュノード２ｄは、該キャッシュページの排他及び該エクステントの排他を解除し、処理が完了する（ステップｓ８）。
【０３９２】
いずれの場合においても、制御権の問い合わせを行う際、問い合わせを行ったノード（本実施例ではキャッシュノード２ｂ）に対し、制御権の管理を行うノード（本実施例では記憶制御ノード３ｃ）が、一度制御権の問い合わせを行ったノードに、何れのノードが制御権を持っているか、情報を返すことで、制御権の問い合わせを行ったノードは、制御権の問い合わせに対して、常に、制御権の管理を行うノードから、情報を得ることができる。
【０３９３】
これは、ノード間の通信障害などの障害が発生した際に、前記第１の実施例、第２の実施例においては、制御権の問い合わせの処理を行った後、制御権を持つノードで行われる処理もやり直さなければならず、その処理は、時間を要する場合もある。
【０３９４】
本実施例における障害時の処理は、制御権を持つか／持たないか、持っていればどのノードが持つのかという、比較的に単純な処理の為、リカバリの為の処理を簡易、短時間に行うことができる。
【０３９５】
本発明のさらに別の実施例について説明する。本発明の第７の実施例は、上位装置３がキャッシュノード２ｂへ書き込み要求を発行し、該要求で示される論理アドレスのデータに関する制御権が、キャッシュノード２ｂには無く、キャッシュノード２ｄで持つ場合の処理が、前記第６の実施例とは相違している。本実施例において、上位装置３からの読み込み要求に対する処理は前記第６の実施例と同一である。それ以外の処理は前記第１の実施例あるいは前記第２の実施例と同じ処理を行う。以下、本発明の第７の実施例について、前記第６の実施例との相違点について説明する。
【０３９６】
図３９において、上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃは、図４の上位装置３、キャッシュノード２ｂ、２ｄ、記憶制御ノード３ｃにそれぞれ対応している。
【０３９７】
次に、本実施例において、上位装置３から書き込み要求が来た場合（前記第１の実施例に相当する処理）について、図３９を参照して、具体的に説明する。
【０３９８】
まず、上位装置３からの書き込み要求をキャッシュノード２ｂが受信すると、該書き込み要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行うが、本実施例では、存在しない条件である為、次に、該キャッシュページの制御権を記憶制御ノード３ｃに要求する（ステップｓ１）。
【０３９９】
記憶制御ノード３ｃは、該キャッシュページの制御権保持ノードを検索する。本実施例では制御権保持ノードがキャッシュノード２ｄであることから、記憶制御ノード３ｃは、相互通信手段４を用いて、制御権がキャッシュノード２ｄにあることを、キャッシュノード２ｂに対して通知する（ステップｓ２）。
【０４００】
その後、キャッシュノード２ｂは、上位装置３に、書き込み要求に対する肯定応答（Ａｃｋ）を送信する（ステップｓ３）。
【０４０１】
肯定応答（Ａｃｋ）を受信した上位装置３は、書き込みデータを、キャッシュノード２ｂ宛に送信する。キャッシュノード２ｂは、上位装置３から送信された書き込みデータを受信し、キャッシュノード２ｄに、該キャッシュページの利用要求と書き込みデータを送信する（ステップｓ４）。
【０４０２】
キャッシュノード２ｄは、該キャッシュページの利用要求とデータを受信すると、書き込みデータを一時的に格納する為の領域に格納する。この一時領域は、キャッシュページ部１２２の未使用（空き）のキャッシュページに対して行われる。キャッシュノード２ｄのキャッシュ制御手段１１３は、上位装置３から受信した論理アドレスで示されるデータに該当するキャッシュページの検索を行い、検索の結果、見つかったキャッシュページの排他処理を行う。その後、キャッシュノード２ｄは、一時領域のデータを、検索で見つけたキャッシュページに対して書き込んだ後、使用した一時領域を開放し、キャッシュページに対する書き込み処理が終了したことを、キャッシュノード２ｂに対して通知する（ステップｓ５）。
【０４０３】
キャッシュノード２ｂは、キャッシュノード２ｄからのキャッシュページへの書き込みが終了したことを示す通知を受け取ると、上位装置３に書き込み要求終了のステータスを送信し、使用完了通知をキャッシュノード２ｄに送信する（ステップｓ６）。
【０４０４】
その後、キャッシュノード２ｂからの使用完了通知を受けたキャッシュノード２ｄは、該当キャッシュページの排他解除を行い、処理を完了する（ステップｓ７）。
【０４０５】
次に、本実施例において、上位装置３から書き込み要求が来た場合（前記第２の実施例に相当する処理）について、図３９を参照して具体的に説明する。
【０４０６】
まず、上位装置３からの書き込み要求をキャッシュノード２ｂが受信すると、キャッシュノード２ｂは、書き込み要求で指定されるデータが、該キャッシュノード２ｂのキャッシュページ部に存在するか検索を行うが、本実施例では存在しない条件の為、引き続き、該データを含むエクステントがキャッシュノード２ｂに存在するか検索を行う。本実施例では、キャッシュノード２ｂには制御権を持たない場合であるので、このエクステントに対する検索は見つからず、次に該エクステントの制御権の使用要求を記憶制御ノード３ｃに要求する（ステップｓ１）。
【０４０７】
記憶制御ノード３ｃは、該エクステントの制御権保持ノードを検索し、制御権保持ノードがキャッシュノード２ｄであることがわかる。記憶制御ノード３ｃは、キャッシュノード２ｂに対し、該エクステントの制御権がキャッシュノード２ｄに存在することを、相互通信手段４を用いて通知する（ステップｓ２）。
【０４０８】
その後、キャッシュノード２ｂは、上位装置３に、書き込み要求に対する肯定応答（Ａｃｋ）を送信する（ステップｓ３）。
【０４０９】
肯定応答（Ａｃｋ）を受信した上位装置３は、書き込みデータを、キャッシュノード２ｂ宛に送信する（ステップｓ４）。
【０４１０】
キャッシュノード２ｂは、上位装置３から送信された書き込みデータを受信し、該エクステントの利用要求と書き込みデータをキャッシュノード２ｄへ送信する。
【０４１１】
該利用要求とデータを受信したキャッシュノード２ｄは、受信した書き込みデータを一時的に格納する為の領域に格納する。この一時領域は、キャッシュページ部１２２の未使用（空き）のキャッシュページに対して行われる。キャッシュノード２ｄのキャッシュ制御手段１１３は、該エクステントの排他処理を行い、次に、上位装置３より書き込み要求を受けたデータがキャッシュノード２ｄのキャッシュページ部に存在するか否か検索を行う。前述のキャッシュページの検索に対して、該当するキャッシュページが存在しなかった場合、キャッシュノード２ｄのキャッシュ制御手段１１３は一時領域としてデータの書き込みを行ったキャッシュページに対し、他の処理により操作されないように排他処理を行った上で、正式なキャッシュページとして、前記第２の実施例で説明した、新規に確保されたキャッシュページと同じ手順でキャッシュ制御情報への追加を行う。
【０４１２】
キャッシュページ部に対する検索に対し、該当するキャッシュページが存在した場合、キャッシュノード２ｄは一時領域のデータを、検索で見つけたキャッシュページに対して書き込んだ後、使用した一時領域を開放する。
【０４１３】
キャッシュノード２ｄで該当するデータキャッシュページが存在する／しないいずれの場合も、キャッシュノード２ｄがキャッシュページに対する処理が終了すると、キャッシュページに対する書き込み処理が終了したことを、キャッシュノード２ｂに対して通知する（ステップｓ５）。
【０４１４】
キャッシュノード２ｄからの書き込み処理終了の通知を受け取ると、キャッシュノード２ｂは、上位装置３に対し、書き込み処理の終了ステータス送信し、後に制御権の利用完了通知を、相互通信手段４を用いてキャッシュノード２ｄに送信する（ステップｓ６）。
【０４１５】
その後、キャッシュノード２ｄは該キャッシュページの排他及び該エクステントの排他を解除する（ステップｓ７）。
【０４１６】
本実施例によれば、いずれの場合においても、前記第１の実施例、第２の実施例におけるステップｔ４（図１５参照）で行われる、上位装置３に対する肯定応答（Ａｃｋ）の通知を、図３９のステップｓ３の段階で返すことが可能とされており、全体の処理時間の短縮を図ることができる。
【０４１７】
本発明のさらに別の実施例として、
・上位装置３からの読み出し要求に関して、前記第５の実施例の処理を行い、
・上位装置３からの書き込み要求に関して、前記第７の実施例の処理を行う、
構成とされる。読み出し／書き込み要求のいずれの場合にも、処理時間の短縮を図るものである。
【０４１８】
本発明は、
・キャッシュ手段を有する複数のノードから構成され、一台のストレージシステムとして利用できるディスクアレイ装置、
・キャッシュ手段を有する複数のノードから構成され、一台のキャッシュシステムとして利用できるキャッシュ制御装置、
・キャッシュ手段を有する複数のスイッチから構成され、一台のストレージシステムとして利用できるスイッチ装置、
等にも、適用できる。
【０４１９】
以上本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【０４２０】
【図１】本発明のキャッシュ制御の原理を説明するための図である。
【図２】本発明のキャッシュ制御の原理を説明するための図である。
【図３】本発明のキャッシュ制御手順を説明するための流れ図である。
【図４】本発明の一実施例の構成を示す図である。
【図５】本発明の一実施例のキャッシュノードの構成を示す図である。
【図６】本発明の一実施例の記憶空間構成情報の構成を示す図である。
【図７】本発明の一実施例の記憶制御ノードの構成を示す図である。
【図８】本発明の一実施例の制御権管理手段における制御権管理情報のブロック図である。
【図９】本発明の一実施例の制御権管理手段における制御権管理情報のブロック図である。
【図１０】本発明の一実施例において、キャッシュノードが上位装置からデータ要求を受領した場合の動作の一例を示すフローチャートである。
【図１１】本発明の一実施例の動作手順を説明するための図である。
【図１２】本発明の一実施例の動作手順を説明するための図である。
【図１３】本発明の一実施例の書き込み手順を説明するためのシーケンス図である。
【図１４】本発明の一実施例の書き込み手順を説明するためのシーケンス図である。
【図１５】本発明の一実施例の書き込み手順を説明するためのシーケンス図である。
【図１６】本発明の一実施例の読み出し手順を説明するためのシーケンス図である。
【図１７】本発明の一実施例の読み出し手順を説明するためのシーケンス図である。
【図１８】本発明の一実施例の読み出し手順を説明するためのシーケンス図である。
【図１９】本発明の第３の実施例におけるキャッシュノードの構成を示す図である。
【図２０】本発明の第３の実施例における記憶制御ノードの構成を示す図である。
【図２１】本発明の第４の実施例の構成を示す図である。
【図２２】本発明の第４の実施例のノードの構成を示す図である。
【図２３】本発明の第１の実施例のキャッシュ制御情報の構成を示す図である。
【図２４】本発明の第１の実施例のページタグの構成を示す図である。
【図２５】本発明の第１の実施例のキャッシュ制御情報の構成を示す図である。
【図２６】本発明の第１の実施例のキャッシュ制御情報の構成を示す図である。
【図２７】本発明の第１の実施例のキャッシュ制御情報の構成を示す図である。
【図２８】本発明の第２の実施例の論理記憶構成情報の構成を示す図である。
【図２９】本発明の第２の実施例の論理記憶構成情報の構成を示す図である。
【図３０】本発明の第２の実施例の論理記憶構成情報の構成を示す図である。
【図３１】本発明の第２の実施例の制御管理情報の構成を示す図である。
【図３２】本発明の第２の実施例の管理ノード構成情報の構成を示す図である。
【図３３】本発明の第２の実施例において、キャッシュノードが上位装置からデータ要求を受領した場合の動作の一例を示すフローチャートである。
【図３４】本発明の第５の実施例の読み出し手順を説明するためのシーケンス図である。
【図３５】本発明の第５の実施例の読み出し手順を説明するためのシーケンス図である。
【図３６】本発明の第６の実施例の書き込み手順を説明するためのシーケンス図である。
【図３７】本発明の第６の実施例の書き込み手順を説明するためのシーケンス図である。
【図３８】本発明の第６の実施例の書き込み手順を説明するためのシーケンス図である。
【図３９】本発明の第７の実施例の書き込み手順を説明するためのシーケンス図である。
【符号の説明】
【０４２１】
１  ストレージシステム
２、２ａ、２ｂ、２ｃ、２ｄ  キャッシュノード
３、３ａ、３ｂ、３ｃ、３ｄ  記憶制御ノード
４  相互通信手段
５ａ，５ｂ，５ｃ，５ｄ  上位装置接続パス
６ａ，６ｂ，６ｃ，６ｄ  ストレージ装置接続パス
７ａ、７ｂ、７ｃ、７ｄ  上位装置
８ａ、８ｂ、８ｃ、８ｄ  ストレージ装置
９、９ａ、９ｂ、９ｃ、９ｄ  ノード
１０  上位装置インターフェース手段
１１  データ処理装置
１１１  コマンド制御手段
１１２  管理ノード特定手段
１１３  キャッシュ制御手段
１２  ローカルメモリ
１２１  制御メモリ部
１２２  キャッシュページ部
１３  コントローラ
１３１  キャッシュノード制御用プログラム
２０  記憶装置インターフェース手段
２１、９１  データ処理装置
２１１  制御権管理手段
２１２  記憶装置制御手段
２２、９２  ローカルメモリ
２２１  制御メモリ部
２２２  制御権管理情報
２３、９３  コントローラ
３０  ハッシュテーブル
３１  ページタグ
４０  アドレス情報
４１  ページアドレス
４２  ポインタ
９０  入出力インターフェース手段
２３１  記憶制御ノード制御用プログラム
Ａ１  管理ノード特定ステップ
Ａ２  制御権要求ステップ
Ａ３  制御権判定処理ステップ
Ａ４  制御権登録ステップ
Ａ５  制御権登録通知ステップ
Ａ６  キャッシュページ排他処理ステップ
Ａ７  キャッシュページ利用要求ステップ
Ａ８  キャッシュページ排他処理ステップ
Ａ９  キャッシュページ利用通知ステップ
【図１】
2006164218.tif 000003
【図２】
2006164218.tif 000004
【図３】
2006164218.tif 000005
【図４】
2006164218.tif 000006
【図５】
2006164218.tif 000007
【図６】
2006164218.tif 000008
【図７】
2006164218.tif 000009
【図８】
2006164218.tif 000010
【図９】
2006164218.tif 000011
【図１０】
2006164218.tif 000012
【図１１】
2006164218.tif 000013
【図１２】
2006164218.tif 000014
【図１３】
2006164218.tif 000015
【図１４】
2006164218.tif 000016
【図１５】
2006164218.tif 000017
【図１６】
2006164218.tif 000018
【図１７】
2006164218.tif 000019
【図１８】
2006164218.tif 000020
【図１９】
2006164218.tif 000021
【図２０】
2006164218.tif 000022
【図２１】
2006164218.tif 000023
【図２２】
2006164218.tif 000024
【図２３】
2006164218.tif 000025
【図２４】
2006164218.tif 000026
【図２５】
2006164218.tif 000027
【図２６】
2006164218.tif 000028
【図２７】
2006164218.tif 000029
【図２８】
2006164218.tif 000030
【図２９】
2006164218.tif 000031
【図３０】
2006164218.tif 000032
【図３１】
2006164218.tif 000033
【図３２】
2006164218.tif 000034
【図３３】
2006164218.tif 000035
【図３４】
2006164218.tif 000036
【図３５】
2006164218.tif 000037
【図３６】
2006164218.tif 000038
【図３７】
2006164218.tif 000039
【図３８】
2006164218.tif 000040
【図３９】
2006164218.tif 000041