(57)【要約】【課題】アクセス権の取得に要する時間を短縮することにより、システムの処理性能を向上できるようにする。【解決手段】処理装置２０が記憶部３２ａ，３２ｂに対して排他制御命令を実行するに際して、複数の記憶装置３０ａ，３０ｂのうち一の記憶装置３０ａに対して、比較用データＡＰ０を送信する比較用データ送信ステップと、一の記憶装置３０ａにおいて、処理装置２０から送信された比較用データＡＰ０と読出用データＤＡ０とを比較する比較ステップとをそなえる。【選択図】図１
2010079676.tif 000002
【特許請求の範囲】
【請求項１】
比較用データを保持する比較用データ保持部と書換用データを保持する書換用データ保持部とプロセッサとをそなえた複数の処理装置と、前記複数の処理装置のそれぞれと通信可能に接続され、読出用データを書換自在に保持する読出用データ保持部と前記複数の処理装置によって共有される記憶部とをそなえた複数の記憶装置とをそなえた記憶システムにおいて、該処理装置から該記憶部に排他的にアクセスするための排他制御命令を処理する処理方法であって、
該処理装置が該記憶部に対して該排他制御命令を実行するに際して、前記複数の記憶装置のうち一の記憶装置に対して、該比較用データを送信する比較用データ送信ステップと、
前記一の記憶装置において、該処理装置から送信された該比較用データと該読出用データとを比較する比較ステップとをそなえることを特徴とする、処理方法。
【請求項２】
前記一の記憶装置において該比較部による該比較用データと該読出用データとの比較が行なわれる前に、該処理装置が、前記複数の記憶装置に対してそれぞれ該書換用データを送信する書換用データ送信ステップをそなえることを特徴とする、請求項１記載の処理方法。
【請求項３】
該記憶装置が、前記書換用データ送信ステップにおいて送信された該書換用データを書換用データ格納部に格納する書換用データ格納ステップと、
該読出用データ保持部に格納された該読出用データを、該書換用データ格納部に格納された該書換用データにより書き換える書換処理ステップとをそなえ、
該記憶装置が、該比較ステップにおける比較の結果、該比較用データと該読出用データとが一致する場合に、該書換処理ステップによる該読出用データの書き換え処理にかかる準備処理を開始することを特徴とする、請求項２記載の処理方法。
【請求項４】
前記一の記憶装置が、該比較ステップにおける比較結果を該処理装置に対して送信する比較結果送信ステップと、
該処理装置が、該比較結果送信ステップにおいて、該比較用データと該読出用データとが一致する旨の比較結果が送信された場合に、前記複数の記憶装置のそれぞれに対して、該書換処理ステップにおいて該書換用データによる該読出用データの書換えを行なわせるように指示を送信する書換指示送信ステップとをそなえることを特徴とする、請求項３記載の処理方法。
【請求項５】
前記一の記憶装置が、前記比較用データ送信ステップにおいて送信された該比較用データを比較用データ格納部に格納する比較用データ格納ステップと、
前記一の記憶装置が、該読出用データ保持部に保持されている読出用データを取得する、読出用データ取得ステップと、
前記一の記憶装置が、該読出用データ取得ステップにおいて取得された該読出用データを読出用データ格納部に格納する読出用データ格納ステップとをそなえ、
該比較部ステップにおいて、該比較用データ格納部に格納された該比較用データと、読出用データ格納部に格納されている該読出用データとを比較することを特長とする、請求項１〜請求項４のいずれか１項に記載の処理方法。
【請求項６】
プロセッサをそなえた複数の処理装置と、前記複数の処理装置のそれぞれと通信可能に接続され、前記複数の処理装置によって共有される記憶部をそなえた複数の記憶装置とをそなえ、前記複数の処理装置のそれぞれが該記憶部に対して排他的にアクセスするための排他制御命令を実行可能な記憶システムであって、
該処理装置が、
比較用データを保持する比較用データ保持部と、
書換用データを保持する書換用データ保持部と、
該記憶部に対して該排他制御命令を実行するに際して、前記複数の記憶装置のうち一の記憶装置に対して、該比較用データを送信する比較用データ送信部とをそなえ、
前記一の記憶装置が、
読出用データを書換自在に保持する読出用データ保持部と、
該処理装置から送信された該比較用データと該読出用データとを比較する比較部とをそなえることを特徴とする、記憶システム。
【請求項７】
該処理装置が、該記憶部に対して該排他制御命令を実行するに際して、前記一の記憶装置において該比較部による該比較用データと該読出用データとの比較が行なわれる前に、前記複数の記憶装置に対してそれぞれ該書換用データを送信する書換用データ送信部をそなえることを特徴とする、請求項６記載の記憶システム。
【請求項８】
該記憶装置が、
前記書換用データ送信部によって送信された該書換用データを格納する書換用データ格納部と、
該読出用データ保持部に保持された該読出用データを、該書換用データ格納部に格納された該書換用データにより書き換える書換処理部とをそなえ、
該比較部による比較の結果、該比較用データと該読出用データとが一致する場合に、該書換処理部による該読出用データの書き換え処理にかかる準備処理を開始することを特徴とする、請求項７記載の記憶システム。
【請求項９】
前記一の記憶装置が、
該比較部による比較結果を該処理装置に対して送信する比較結果送信部をそなえ、
該処理装置が、
該比較結果送信部から、該比較用データと該読出用データとが一致する旨の比較結果が送信された場合に、前記複数の記憶装置のそれぞれに対して、該書換処理部により、該書換用データによる該読出用データの書換えを行なわせる指示を送信する書換指示送信部をそなえることを特徴とする、請求項８記載の記憶システム。
【請求項１０】
前記一の記憶装置が、
前記比較用データ送信部によって送信された該比較用データを格納する比較用データ格納部と、
該読出用データ保持部に保持されている読出用データを取得する、読出用データ取得部と、
該読出用データ取得部によって取得された該読出用データを格納する読出用データ格納部とをそなえ、
該比較部が、該比較用データ格納部に格納された該比較用データと、読出用データ格納部に格納されている該読出用データとを比較することを特長とする、請求項６〜請求項９のいずれか１項に記載の記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多重化された記憶装置を複数の処理装置で共有する際における排他制御命令の処理に関する。
【背景技術】
【０００２】
図４は従来の記憶システムの構成を模式的に示す図である。
従来の記憶システム１００は、例えば、情報処理装置として複数のクラスタをそなえたマルチクラスタシステムとして構成されたコンピュータシステムであって、図４に示すように、複数（図４に示す例では２つ）のクラスタ（本体装置）２０１ａ，２０１ｂと、複数（図４に示す例では２つ）のＳＳＵ（System Storage Unit；システム記憶装置）３０１ａ，３０１ｂとをそなえて構成されている。
【０００３】
ＳＳＵ３０１ａ，３０１ｂは、それぞれデータを読み／書き自在に記憶する記憶装置であって、図４に示すように、ＳＳＵ３０１ａはメモリ３０２ａ，インタフェースユニット３０３ａ−１，３０３ａ−２を、ＳＳＵ３０１ｂはメモリ３０２ｂ，インタフェースユニット３０３ｂ−１，３０３ｂ−２を、それぞれそなえて構成されている。
そして、ＳＳＵ３０１ａ，３０１ｂは、クラスタ２０１ａ，２０１ｂからそれぞれ送信されるデータを格納するようになっており、この図４に示す記憶システム１００においては、２つのクラスタ２０１ａ，２０１ｂが、２つのＳＳＵ３０１ａ，３０１ｂを共有しているのである。
【０００４】
メモリ３０２ａ，３０２ｂは、それぞれデータを読出／書込自在に格納するものであって、例えば、ＨＤＤ（Hard disk drive：磁気記憶装置）やＳＳＤ（Semiconductor Storage Device：半導体記憶装置）等により構成されている。
インタフェースユニット３０３ａ−１，３０３ａ−２，３０３ｂ−１，３０３ｂ−２は、それぞれメモリ３０２ａ，３０２ｂに対するデータの書き込みや読み出しの各種制御を行なうものであって、クラスタ２０１ａ，２０１ｂからの指示（要求）に従って、メモリ３０２ａ，３０２ｂにデータの書き込みや読み取り等の処理を行ない、又、その結果を、指示を送信したクラスタ２０１ａ，２０１ｂに対して送信（結果報告等）するようになっている。
【０００５】
ここで、メモリ３０２ａには、インタフェースユニット３０３ａ−１及びインタフェースユニット３０３ａ−２から共有されており、いずれからもデータの書き込みや読み出しを行なうことができるようになっている。又、同様に、メモリ３０２ｂには、インタフェースユニット３０３ｂ−１及びインタフェースユニット３０３ｂ−２から共有されており、いずれからもデータの書き込みや読み出しを行なうことができるようになっている。
【０００６】
また、この従来の記憶システム１００においては、ＳＳＵ３０１ａとＳＳＵ３０１ｂとには、互いに同一のデータが書き込まれるようになっており、これにより、データの二重化（冗長化）が行なわれるようになっている。
具体的には、ＳＳＵ３０１ａのメモリ３０２ａにおけるデータ領域（二重化データ領域）と、ＳＳＵ３０１ｂのメモリ３０２ｂにおけるデータ領域（二重化データ領域）との少なくとも一部に同一内容を格納することにより、ＳＳＵ３０１ａ，３０１ｂのいずれかが故障した場合でも、残りのＳＳＵ３０１ｂ，３０１ａにおいてクラスタ２０１ａ，２０１ｂが同一のデータにアクセスすることができるようになっている。
【０００７】
また、これらのデータ領域には、後述するクラスタ２０１ａ，２０１ｂによる排他制御命令のためのアクセス制御において用いられる比較用のデータ（パターン）が格納されるようになっており、図４に示す例においては、メモリ３０２ａには読出パターンＤＡ０が、又、メモリ３０２ｂには読出パターンＤＡ１がそれぞれ書換可能に格納されるようになっている。
【０００８】
クラスタ２０１ａ，２０１ｂは、ＳＳＵ３０１ａ，３０１ｂと、ＦＣ（Fibre Channel）やパラレルケーブル等の通信ケーブルを介して通信可能に接続された情報処理装置である。図４に示すように、クラスタ２０１ａは、ＣＰＵ（Central Processing Unit）２０２ａおよびメモリユニット（主記憶）２０３ａをそなえて構成されており、クラスタ２０１ｂは、ＣＰＵ２０２ｂおよびメモリユニット（主記憶）２０３ｂをそなえて構成されている。
【０００９】
ＣＰＵ２０２ａ，２０２ｂは、種々の演算や制御を行なうプロセッサであって、例えば、メモリユニット２０３ａやメモリ３０２ａ，３０２ｂの他、図示しない記憶装置に格納されたプログラムを実行することにより、種々の機能を実現するようになっている。
そして、これらのクラスタ２０１ａ，２０１ｂは、種々の処理を行なうに際して、そのデータをＳＳＵ３０１ａ，３０１ｂに格納するようになっている。
【００１０】
ここで、クラスタ２０１ａは、ＳＳＵ３０１ａのインタフェースユニット３０３ａ−１及びＳＳＵ３０１ｂのインタフェースユニット３０３ｂ−１に接続されており、クラスタ２０１ｂは、ＳＳＵ３０１ａのインタフェースユニット３０３ａ−２及びＳＳＵ３０１ｂのインタフェースユニット３０３ｂ−２に接続されている。
なお、以下、クラスタを示す符号としては、複数のクラスタのうち１つを特定する必要があるときには符号２０１ａ，２０１ｂを用いるが、任意のクラスタを指すときには符号２０１を用いる。
【００１１】
また、この従来の記憶システム１００においては、２つのＳＳＵ３０１ａ，３０１ｂのうち、ＳＳＵ３０１ａがマスタとして、又、ＳＳＵ３０１ｂがスレーブとして取り扱われるようになっている。
そして、この従来の記憶システム１００においては、ＳＳＵ３０１ａ，３０１ｂの読出パターンＤＡ０，ＤＡ１に関する処理を行なうに際して、２つのクラスタ２０１ａ，２０１ｂのうち、いずれか１つのクラスタ２０１に対してのみ（排他的に）アクセス権が発行されるようになっている。
【００１２】
メモリユニット２０３ａ，２０３ｂは、種々のデータやプログラムを格納するものである。そして、メモリユニット２０３ａには、許可パターンＡＰ０及び次回許可パターンＮＰ０が、又、メモリユニット２０３ｂには、許可パターンＡＰ１及び次回許可パターンＮＰ１が、それぞれ格納されている。
許可パターンＡＰ０，ＡＰ１及び次回許可パターンＮＰ０，ＮＰ１は、クラスタ２０１ａ，２０１ｂがＳＳＵ３０１ａ，３０１ｂに対して排他的な制御命令（排他制御命令）を実行するために用いられるデータであって、それぞれ、上述した読出パターンＤＡ０，ＤＡ１と同じビット数（データサイズ）を有している。
【００１３】
クラスタ２０１ａ，２０１ｂは、ＳＳＵ３０１ａ，３０１ｂに対して排他制御命令を実行するに際して、コンペアアンドスワップ（Compare-and-Swap：ＣＡＳ）方式を用いてアクセス制御を行なうようになっている。
このＣＡＳ方式を用いたアクセス制御において、許可パターンＡＰ０，ＡＰ１は、メモリ３０２ａに格納された読出パターンＤＡ０との比較に用いられる比較用値として用いられるようになっており、又、次回許可パターンＮＰ０，ＮＰ１は、前述したメモリ３０２ａに格納された読出パターンＤＡ０を置換するための置換用値として用いられるようになっている。又、次回許可パターンＮＰ０，ＮＰ１は、許可パターンＡＰ０，ＡＰ１と整合するように作成されている。なお、ＣＡＳ方式については、例えば、下記特許文献１に開示されている。
【００１４】
ここで、許可パターンＡＰ０，許可パターンＡＰ１，次回許可パターンＮＰ０および次回許可パターンＮＰ１は互いに異なるものである。
具体的には、例えば、許可パターンＡＰ０，ＡＰ１は、ＳＳＵ３０１ａ，３０１ｂのメモリ（共有資源）３０２ａ，３０２ｂに、アクセスする順番を示す情報であって、これらの許可パターンＡＰ０，ＡＰ１のうち値の小さい方のクラスタ２０１が、メモリ３０２ａ，３０２ｂに対して最も早くアクセスする権利を有することを示す。
【００１５】
この場合、次回許可パターンＮＰ０，ＮＰ１は、許可パターンＡＰ０，ＡＰ１の次の順番を示す情報（大きい値）である。
そして、これらの許可パターンＡＰ０，ＡＰ１および次回許可パターンＮＰ０，ＮＰ１は、クラスタ２０１による共有資源へのアクセスが行なわれる度に、順次、更新（インクリメント）されるようになっている。
【００１６】
そして、この従来の記憶システム１００においては、２つのクラスタ２０１のうち、いずれか１つのクラスタ２０１にアクセス権が取得された時点で、そのアクセス権を有するクラスタ２０１（例えば、クラスタ２０１ａ）が、ＳＳＵ３０１ａ，３０１ｂの各読出パターンＤＡ０，ＤＡ１に、同一の次回許可パターンＮＰ０を用いて上書きすることにより書き換えを行なうのである。
【００１７】
ここで、図５を参照しながら、従来の記憶システム１００におけるクラスタ２０１がＳＳＵ３０１ａ，３０１ｂに対するアクセス権を得られた場合の処理の流れを説明する。なお、この図５においては、クラスタ２０１ａがアクセス権を得ることができた例について示している。
なお、以下、クラスタ２０１が、ＳＳＵ３０１ａ，３０１ｂのメモリ３０２ａ，３０２ｂ（共有資源）に対して、次に（最先に）アクセスする権利（アクセス権）を得ることを、許可パターンに対するアクセス権を得ると表現する場合がある。
【００１８】
先ず、クラスタ２０１ａは、メモリユニット２０３ａに対して許可パターンＡＰ０の読み出しを要求する。メモリユニット２０３ａから許可パターンＡＰ０が返されるので（図５の符号ａ１参照）、クラスタ２０１ａは、この許可パターンＡＰ０をレジスタ（図示省略）に格納する。
また、クラスタ２０１ａは、マスタであるＳＳＵ３０１ａに対して、読出パターンＤＡ０のロック読み出しを行なう（図５の符号ａ２参照）。
【００１９】
なお、この従来の記憶システム１００においては、クラスタ２０１ａに対する読出パターンＤＡ０のロック読み出しが許可されると、ＳＳＵ３０１ａは、このクラスタ２０１ａからアンロックの要求がされて来るまで、クラスタ２０１ｂに対して読出パターンＤＡ０に対するロック読み出しを許可しないようになっている。
ＳＳＵ３０１ａにおいては、メモリ３０２ａの読出パターンＤＡ０を読み出して（図５の符号ａ３参照）、この読み出した読出パターンＤＡ０を読み出し結果報告としてクラスタ２０１ａに送信する（図５の符号ａ４参照）。クラスタ２０１ａは、ＳＳＵ３０１ａから送信された読出パターンＤＡ０をレジスタ（図示省略）に格納する。
【００２０】
クラスタ２０１ａは、許可パターンＡＰ０と読出パターンＤＡ０とを比較する（図５の符号ａ５参照）。ここで、読出パターンＤＡ０が許可パターンＡＰ０に一致すると、クラスタ２０１ａは、メモリユニット２０３ａに対して次回許可パターンＮＰ０の読み出しを要求し、メモリユニット２０３ａから次回許可パターンＮＰ０が返されると（図５の符号ａ６参照）、この次回許可パターンＮＰ０を図示しないレジスタに格納する。
【００２１】
クラスタ２０１ａは、ＳＳＵ３０１ａ，３０１ｂに対して、それぞれ読出パターンＤＡ０，ＤＡ１の二重書き込みを要求し（図５の符号ａ７参照；二重書込要求）、ＳＳＵ３０１ａ，３０１ｂに対して、それぞれ次回許可パターンＮＰ０を送信する。
ＳＳＵ３０１ａ，３０１ｂにおいては、それぞれ、読出パターンＤＡ０を書き換えるための準備を行なった後（図５の符号ａ８参照）、次回許可パターンＮＰ０により読出パターンＤＡ０を書き換えることにより二重書き込みを行なう（図５の符号ａ９参照）。又、ＳＳＵ３０１ａ，３０１ｂは、二重書き込みを行なった旨の報告（二重書込完了報告）をクラスタ２０１ａに送信する（図５の符号ａ１０参照）。
【００２２】
クラスタ２０１ａは、ＳＳＵ３０１ａ，３０１ｂの双方から読出パターンＤＡ０，ＤＡ１の二重書込完了報告が返されると、ＳＳＵ３０１ａに対してアンロック要求の送信を行なう（図５の符号ａ１１参照）。
ＳＳＵ３０１ａは、アンロックを実行した後に（図５の符号ａ１２参照）、クラスタ２０１ａに対してアンロックを完了した旨の報告を送信する（図５の符号ａ１３参照）。
【００２３】
クラスタ２０１ａは、ある許可パターンに対するアクセス権を得たため、その許可パターンに関する動作を行なうことができる唯一のクラスタ２０１となるのである。又、次回許可パターンＮＰ０は、許可パターンＡＰ０と整合するように作成されている。
また、この従来の記憶システム１００において、クラスタ２０１ａが読出パターンＤＡ０に対するロック読み出し実行中に、クラスタ２０１ｂが読出パターンＤＡ０に対するロック読み出しを実行した場合は、ＳＳＵ３０１ａはクラスタ２０１ａからのアンロック要求受け取り後にクラスタ２０１ｂに対して読出パターンＤＡ０に対するロック読み出しを許可するようになっており、この際、読出パターンＤＡ０として、クラスタ２０１ａにより書き込まれた次回許可パターンＮＰ０が読み出されるようになっている。
【００２４】
ここで、クラスタ２０１ｂは、取得した読出パターンＤＡ０（次回許可パターンＮＰ０）がメモリユニット２０３ｂに格納されている自らの許可パターンＡＰ１と一致しないため、ＳＳＵ３０１ａにアンロックを要求し、ロック処理の完了を通知する。
また、クラスタ２０１ｂは、許可パターンＡＰ１の内容を次回許可パターンＮＰ０と同一の内容とし、次回許可パターンＮＰ１を許可パターンＡＰ１と整合するように作成し、読出パターンＤＡ０に対するロック読み出しを実行する。
【００２５】
なお、上述の如く、クラスタ２０１ｂが読出パターンＤＡ０に対するロック読み出しを実行した場合において、クラスタ２０１ｂがＤＡ０（ＮＰ０）とＡＰ１の不一致でロック処理を完了してから、クラスタ２０１ｂが読出パターンＤＡ０に対する再度のロック読み出しを実行するまでの間に、クラスタ２０１ａが読出パターンＤＡ０を書き換えていなければ、許可パターンＡＰ１は読出パターンＤＡ０と一致する。そこで、クラスタ２０１ｂは、次回許可パターンＮＰ１によって読出パターンＤＡ０，ＤＡ１に対してそれぞれ二重書き込みを行ない、これらの書き込み完了後に、ＳＳＵ３０１ａにアンロックを要求し、ロック処理の完了を通知する。
【００２６】
クラスタ２０１ｂは、アクセス権を得たため、その許可パターン関する処理を行なうことができる唯一のクラスタ２０１となる。
次に、図６を参照しながら、従来の記憶システム１００におけるクラスタ２０１ａがＳＳＵ３０１ａ，３０１ｂに対するアクセス権を得られなかった場合の処理の流れを説明する。
【００２７】
先ず、クラスタ２０１ａは、メモリユニット２０３ａに対して許可パターンＡＰ０の読み出しを要求する。メモリユニット２０３ａから許可パターンＡＰ０が返されるので（図６の符号ｂ１参照）、クラスタ２０１ａは、この許可パターンＡＰ０をレジスタ（図示省略）に格納する。
また、クラスタ２０１ａは、マスタであるＳＳＵ３０１ａに対して、読出パターンＤＡ０のロック読み出しを行なう（図６の符号ｂ２参照）。
【００２８】
なお、この従来の記憶システム１００においては、クラスタ２０１ａに対する読出パターンＤＡ０のロック読み出しが許可されると、ＳＳＵ３０１ａは、このクラスタ２０１ａからアンロックの要求がされて来るまで、クラスタ２０１ｂに対して読出パターンＤＡ０に対するロック読み出しを許可しないようになっている。
ＳＳＵ３０１ａにおいては、メモリ３０２ａの読出パターンＤＡ０を読み出して（図６の符号ｂ３参照）、この読み出した読出パターンＤＡ０を読み出し結果報告としてクラスタ２０１ａに送信する（図６の符号ｂ４参照）。クラスタ２０１ａは、ＳＳＵ３０１ａから送信された読出パターンＤＡ０をレジスタ（図示省略）に格納する。
【００２９】
クラスタ２０１ａは、許可パターンＡＰ０と読出パターンＤＡ０とを比較する（図６の符号ｂ５参照）。ここで、読出パターンＤＡ０が許可パターンＡＰ０に一致しなかった場合には、クラスタ２０１ａは、ＳＳＵ３０１ａに対してアンロック要求の送信を行なう（図６の符号ｂ６参照）。
ＳＳＵ３０１ａは、アンロックを実行した後に（図６の符号ｂ７参照）、クラスタ２０１ａに対してアンロックを完了した旨の報告を送信する（図６の符号ｂ８参照）。
【特許文献１】特開昭６２−８５３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３０】
しかしながら、このような従来の記憶システム１００においては、例えばクラスタ２０１ａが許可パターンに対するアクセス権を得られた場合も得られなかった場合も、読出パターンＤＡ０のロック読み出しからアンロックまでの間は、他のクラスタ２０１ｂには読出パターンＤＡ０に対するロック読み出しが許可されず、処理を行なうことができない。
アクセス権を得たクラスタ２０１ａは、その後、ＳＳＵ３０１ａ，３０１ｂに関する処理を行なうが、装置間インタフェースを使用しないもしくは単純な使い方をする動作であり、近年の半導体装置の性能向上等により極めて高速化されている。
【００３１】
これに対して、マスタのＳＳＵ３０１ａと各クラスタ２０１ａ，２０１ｂとの通信で行われるアクセス権の取得にかかる処理時間は、相対的に遅くなっており、その結果、クラスタ２０１を２台から３台、４台と増やしたとしても、アクセス権を取得するために待たされるクラスタ２０１が増えるばかりで、システム性能は向上しないという課題がある。
本発明は、このような課題に鑑み創案されたもので、アクセス権の取得に要する時間を短縮することにより、システムの処理性能を向上できるようにすることを目的とする。
【課題を解決するための手段】
【００３２】
このため、この処理方法は、比較用データを保持する比較用データ保持部と書換用データを保持する書換用データ保持部とプロセッサとをそなえた複数の処理装置と、前記複数の処理装置のそれぞれと通信可能に接続され、読出用データを書換自在に保持する読出用データ保持部と前記複数の処理装置によって共有される記憶部とをそなえた複数の記憶装置とをそなえた記憶システムにおいて、該処理装置から該記憶部に排他的にアクセスするための排他制御命令を処理する処理方法であって、該処理装置が該記憶部に対して該排他制御命令を実行するに際して、前記複数の記憶装置のうち一の記憶装置に対して、該比較用データを送信する比較用データ送信ステップと、前記一の記憶装置において、該処理装置から送信された該比較用データと該読出用データとを比較する比較ステップとをそなえる（請求項１）。
【００３３】
また、この記憶システムは、プロセッサをそなえた複数の処理装置と、前記複数の処理装置のそれぞれと通信可能に接続され、前記複数の処理装置によって共有される記憶部をそなえた複数の記憶装置とをそなえ、前記複数の処理装置のそれぞれが該記憶部に対して排他的にアクセスするための排他制御命令を実行可能な記憶システムであって、該処理装置が、比較用データを保持する比較用データ保持部と、書換用データを保持する書換用データ保持部と、該記憶部に対して該排他制御命令を実行するに際して、前記複数の記憶装置のうち一の記憶装置に対して、該比較用データを送信する比較用データ送信部とをそなえ、前記一の記憶装置が、読出用データを書換自在に保持する読出用データ保持部と、該処理装置から送信された該比較用データと該読出用データとを比較する比較部とをそなえる（請求項６）。
【発明の効果】
【００３４】
開示の処理方法および記憶システムによれば、読出用データの二重書込処理を開始するまでの時間を短縮することができ、これにより、排他制御処理にかかるアクセス権の取得に要する時間を短縮し、システムの処理性能を向上できる。
また、比較用データと読出用データとの比較の結果、これらの比較用データと読出用データとが不一致であることが判明した場合に、記憶部に対するアンロック処理を自律的に行なうことができ、これにより、読出用データのロック読み出しからアンロックまでの時間を短縮することができる。
【発明を実施するための最良の形態】
【００３５】
以下、図面を参照して本記憶システムおよび処理方法に係る実施の形態を説明する。
図１は実施形態の一例としての記憶システムの構成を模式的に示す図である。
本記憶システム１００は、例えば、複数のクラスタをそなえたマルチクラスタシステムとして構成されたコンピュータシステムであって、図１に示すように、複数（図１に示す例では２つ）のクラスタ（処理装置，本体装置）２０ａ，２０ｂと、複数（図１に示す例では２つ）のＳＳＵ（System Storage Unit；システム記憶装置，記憶装置）３０ａ，３０ｂとをそなえて構成されている。
【００３６】
クラスタ２０ａ，２０ｂは、ＳＳＵ３０ａ，３０ｂと、ＦＣ（Fibre Channel）やパラレルケーブル等の通信線を介して通信可能に接続された情報処理装置であって、種々の処理を行なうに際して、そのデータをＳＳＵ３０ａ，３０ｂに格納するようになっている。
図１に示すように、クラスタ２０ａは、ＣＰＵ（Central Processing Unit；プロセッサ）２１ａおよびメモリユニット（主記憶）２２ａをそなえて構成されており、クラスタ２０ｂは、ＣＰＵ（プロセッサ）２１ｂおよびメモリユニット（主記憶）２２ｂをそなえて構成されている。
【００３７】
クラスタ２０ａは、後述するＳＳＵ３０ａのインタフェースユニット３１ａ−１及びＳＳＵ３０ｂのインタフェースユニット３１ｂ−１に接続されており、クラスタ２０ｂは、ＳＳＵ３０ａのインタフェースユニット３１ａ−２及びＳＳＵ３０ｂのインタフェースユニット３１ｂ−２に接続されている。
なお、以下、クラスタを示す符号としては、複数のクラスタのうち１つを特定する必要があるときには符号２０ａ，２０ｂを用いるが、任意のクラスタを指すときには符号２０を用いる。
【００３８】
同様に、以下、ＳＳＵを示す符号としては、複数のＳＳＵのうち１つを特定する必要があるときには符号３０ａ，３０ｂを用いるが、任意のＳＳＵを指すときには符号３０を用いる。
また、本記憶システム１００においては、２つのＳＳＵ３０ａ，３０ｂのうち、ＳＳＵ３０ａがマスタとして、又、ＳＳＵ３０ｂがスレーブとして取り扱われるようになっており、後述する排他制御命令の実行に際しては、これらの複数のＳＳＵ３０のうち、マスタのＳＳＵ３０ａとの間において、排他制御に関するアクセス権の設定等の各種処理が行なわれるようになっている。
【００３９】
すなわち、排他制御命令の実行に際して、クラスタ２０は、マスタであるＳＳＵ３０ａとの間でアクセス権に関する処理を行なうようになっている。
なお、複数のＳＳＵ３０間におけるマスタ及びスレーブの判断は、例えば、ＳＳＵ３０において、マスタもしくはスレーブである旨を示す設定を予め行なうことにより実現することができる。
【００４０】
例えば、ジャンパスイッチやディップスイッチ等の物理的なスイッチを用いて設定することにより、マスタもしくはスレーブの認識するための設定を行なってもよく、又、メモリ３２ａ，３２ｂ等における所定の領域に、マスタもしくはスレーブを認識するためのフラグをソフトウェア的に設定してもよく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００４１】
そして、クラスタ２０やＳＳＵ３０は、これらの設定に基づいて、そのＳＳＵ３０がマスタであるかスレーブであるかの判断を行なう。
メモリユニット２２ａ，２２ｂは、種々のデータやプログラムを読出可能に格納するものである。
また、メモリユニット２２ａには、許可パターン（比較用データ）ＡＰ０及び次回許可パターン（書換用データ）ＮＰ０が、又、メモリユニット２２ｂには、許可パターン（比較用データ）ＡＰ１及び次回許可パターン（書換用データ）ＮＰ１が、それぞれ書換可能に格納されている。
【００４２】
許可パターンＡＰ０，ＡＰ１及び次回許可パターンＮＰ０，ＮＰ１は、クラスタ２０ａ，２０ｂがＳＳＵ３０ａ，３０ｂに対して、例えば、コンペアアンドスワップ（Compare-and-Swap：ＣＡＳ）方式のような排他的な制御命令（排他制御命令）を実行する際に用いられるデータである。
ここで、許可パターンＡＰ０，許可パターンＡＰ１，次回許可パターンＮＰ０および次回許可パターンＮＰ１は、互いに同じビット数（データサイズ）を有する異なるパターンである。
【００４３】
具体的には、例えば、許可パターンＡＰ０，ＡＰ１は、ＳＳＵ３０ａ，３０ｂのメモリ（共有資源）３２ａ，３２ｂに、アクセスする順番を示す情報であって、これらの許可パターンＡＰ０，ＡＰ１のうち値の小さい方に対応するクラスタ２０が、メモリ３２ａ，３２ｂに対して最も早くアクセスする権利を有することを示す。
この場合、次回許可パターンＮＰ０，ＮＰ１は、許可パターンＡＰ０，ＡＰ１の次の順番を示す情報（大きい値）である。
【００４４】
そして、これらの許可パターンＡＰ０，ＡＰ１および次回許可パターンＮＰ０，ＮＰ１は、クラスタ２０による共有資源へのアクセスが行なわれる度に、それぞれ順次、更新（インクリメント）されるようになっている。例えば、この更新により、許可パターンＡＰ０には次回許可パターンＮＰ０の値が設定され（ＡＰ０＝ＮＰ０）、次回許可パターンＮＰ０の値はインクリメント（ＮＰ０＝ＮＰ０＋１）されるのである。
【００４５】
なお、これらの許可パターンＡＰ０，ＡＰ１，次回許可パターンＮＰ０，ＮＰ１，読出パターンＤＡ０の各値の設定手法は、ＣＡＳ手法において一般的に用いられている手法を適宜用いることができるので、その詳細な説明については省略する。
ＳＳＵ３０ａ，３０ｂに対する排他制御命令に際しては、読出パターンＤＡ０と許可パターンＡＰ０が一致するクラスタ２０が、そのＳＳＵ３０ａ，３０ｂに対するアクセス権を有するものとして取り扱われ、その次回許可パターンＮＰ０によって、読出パターンＤＡ０が書き換えられるのである（二重書換）。
【００４６】
なお、本実施形態においては、クラスタ２０が、ＳＳＵ３０ａ，３０ｂのメモリ３２ａ，３２ｂ（共有資源）に対して、次に（最先に）アクセスする権利（アクセス権）を得ることを、許可パターンに対するアクセス権を得ると表現する場合がある。
また、本記憶システム１００においては、ＳＳＵ３０ａ，３０ｂに関する排他制御命令を実行するに際して、これらのリソース（ＳＳＵ３０ａ，３０ｂ）における複数のクラスタ２０の競合を回避すべく、複数のクラスタ２０のうち、いずれか１つのクラスタ２０に対してのみ（排他的に）アクセス権が発行されるようになっている。
【００４７】
この排他制御命令にかかるアクセス制御において、許可パターンＡＰ０，ＡＰ１は、後述するメモリ３０ａに格納されている比較パターンＤＡ０との比較に用いられる比較用データとして用いられるようになっており、又、次回許可パターンＮＰ０，ＮＰ１は、メモリ３０２ａに格納された比較パターンＤＡ０を書き換える（置換する）ための書換用データとして用いられるようになっている。
【００４８】
すなわち、本記憶システム１００においては、メモリユニット２２ａ，２２ｂが、許可パターン（比較用データ）ＡＰ０，ＡＰ１を保持する比較用データ保持部として機能するとともに、次回許可パターン（書換用データ）ＮＰ０，ＮＰ１を保持する書換用データ保持部として機能するようになっている。
また、これらの次回許可パターンＮＰ０，ＮＰ１は、許可パターンＡＰ０，ＡＰ１と整合するように作成されている。
【００４９】
そして、２つのクラスタ２０のうち、いずれか１つのクラスタ２０にアクセス権が取得された時点で、そのアクセス権を有するクラスタ２０が、ＳＳＵ３０ａ，３０ｂの各比較パターンＤＡ０，ＤＡ１に上書きして同一のデータを書き込むのである。
ＣＰＵ２１ａ，２１ｂは、種々の演算や制御を行なうプロセッサであって、例えば、メモリユニット２２ａやメモリ３０ａ，３０ｂの他、図示しない記憶装置に格納されたプログラムを実行することにより、種々の機能を実現するようになっている。
【００５０】
例えば、本記憶システム１００においては、ＣＰＵ２１ａ，２１ｂは、かかるプログラムを実行することにより、データ送信部２１１，指示送信部２１２及びロック比較書込要求送信部２１３として機能するようになっている。
ここで、データ送信部（比較用データ送信部，書換用データ送信部）２１１は、メモリユニット２２ａ，２２ｂに格納された許可パターンＡＰ０，ＡＰ１や次回許可パターンＮＰ０，ＮＰ１を、図示しない通信インタフェースを介してＳＳＵ３０ａやＳＳＵ３０ｂに送信するものである。
【００５１】
具体的には、データ送信部（比較用データ送信部）２１１は、ＳＳＵ３０ａ，３０ｂに対して排他制御命令を実行するに際して、複数のＳＳＵ３０のうち、一の（マスタの）ＳＳＵ３０ａに対して、許可パターンＡＰ０を送信するようになっている。又、データ送信部（書換用データ送信部）２１１は、ＳＳＵ３０ａ，３０ｂに対して排他制御命令を実行するに際して、一の（マスタの）ＳＳＵ３０ａにおいて比較部３１２（詳細は後述）による許可パターンＡＰ０と読出パターンＤＡ０との比較が行なわれる前に、各ＳＳＵ３０ａ，３０ｂに対してそれぞれ次回許可パターンＮＰ０を送信するようになっている。
【００５２】
ロック比較書込要求送信部２１３は、ＳＳＵ３０ａ，３０ｂに関する排他制御命令を実行するに際して、ＳＳＵ３０ａ，３０ｂのそれぞれに対して、ロック比較書込要求を送信するようになっている。
このロック比較書込要求は、マスタであるＳＳＵ３０ａに対しては、レジスタ３１５に格納された読出パターンＤＡ０とレジスタ３１６に格納された許可パターンＡＰ０との比較を比較部３１２に行なわせる命令である。又、ロック比較書込要求は、この比較部３１２による比較の結果、読出パターンＤＡ０と許可パターンＡＰ０とが一致した場合に、レジスタ３１７に格納された次回許可パターンＮＰ０を、メモリ３２ａの所定領域に上書き（二重書き込み）させるための準備を行なわせ、更に、その後、そのクラスタ２０から二重書き込み実行要求が送信された場合に、読出パターンＤＡ０を次回許可パターンＮＰ０により書き換えさせる指示を含んでいる。
【００５３】
また、このロック比較書込要求は、スレーブであるＳＳＵ３０ｂに対しては、レジスタ３１７に格納された次回許可パターンＮＰ０を、メモリ３２ｂの所定領域に上書き（二重書き込み）させるための準備を行なわせ、更に、その後、クラスタ２０から二重書き込み実行要求が送信された場合に、読出パターンＤＡ０を次回許可パターンＮＰ０により書き換えさせるようになっている。
【００５４】
そして、このロック比較書込要求は、一のオペレーションコードとしてロック比較書込要求送信部２１３からＳＳＵ３０ａ，３０ｂに対してそれぞれ出力され、このオペレーションコードを受信したＳＳＵ３０ａ，３０ｂにおいては、それぞれ、書込処理部３１３等が、このロック比較書込要求に従った処理を行なうようになっている。
指示送信部（書換指示送信部）２１２は、後述するＳＳＵ３０ａの比較結果送信部３１４から、比較部３１２による比較結果として、許可パターンＡＰ０と読出パターンＤＡ０とが一致する旨の比較結果が送信された場合に、各ＳＳＵ３０ａ，３０ｂに対して、次回許可パターンＮＰ０による読出パターンＤＡ０，ＤＡ１の書換えを書換処理部３１３（詳細は後述）により行なわせる旨の指示（二重書込実行要求）を送信するものである。
【００５５】
また、この指示送信部２１２は、比較結果送信部３１４から、比較部３１２による比較結果として、許可パターンＡＰ０と読出パターンＤＡ０とが不一致である旨の比較結果が送信された場合に、各ＳＳＵ３０ａ，３０ｂに対して、次回許可パターンＮＰ０による読出パターンＤＡ０，ＤＡ１の書換え（二重書込）を中断する指示（二重書込中止要求）を送信するようになっている。
【００５６】
ＳＳＵ３０ａ，３０ｂは、それぞれデータを読み／書き自在に記憶する記憶装置であって、上述したクラスタ２０ａ，２０ｂが効率的に並列処理を実現するための制御機構をそなえており、種々のデータ転送命令や排他制御命令、さらにクラスタ間通信命令を実現することができるようになっている。
図１に示すように、ＳＳＵ３０ａはインタフェースユニット３１ａ−１，３１ａ−２及びメモリ３２ａをそなえて構成されており、ＳＳＵ３０ｂは、インタフェースユニット３１ｂ−１，３１ｂ−２及びメモリ３２ｂをそなえて構成されている。
【００５７】
そして、これらのＳＳＵ３０ａ，３０ｂは、クラスタ２０ａ，２０ｂからそれぞれ送信されるデータを格納するようになっており、本記憶システム１００においては、これらの２つのクラスタ２０ａ，２０ｂが、２つのＳＳＵ３０ａ，３０ｂを共有しているのである。なお、本実施形態においては、これらのＳＳＵ３０ａ，３０ｂにそなえられたメモリ３２ａ，３２ｂを、複数のクラスタ２０によって共有される共有資源と表現する場合がある。
【００５８】
メモリ３２ａ，３２ｂは、それぞれデータを読出／書込自在に格納するものであって、例えば、ＨＤＤ（Hard disk drive；磁気記憶装置）や半導体記憶装置等の各種の記憶装置により構成されている。
インタフェースユニット３１ａ−１，３１ａ−２，３１ｂ−１，３１ｂ−２は、メモリ３２ａ，３２ｂに対するデータの書き込みや読み出し，後述する排他制御命令に関する処理等の各種制御を行なうものであって、クラスタ２０ａ，２０ｂから送信される各種データや要求（指示，コマンド）を受信し、これらの要求に従って、メモリ３２ａ，３２ｂにデータの書き込みや読み取りを行なうようになっている。
【００５９】
また、これらのインタフェースユニット３１ａ−１，３１ａ−２，３１ｂ−１，３１ｂ−２は、メモリ３２ａ，３２ｂに対して行なった処理に関する結果を、指示が送信されたクラスタ２０ａ，２０ｂに対して送信（結果報告等）するようになっている。
図１に示す例においては、メモリ３２ａには、インタフェースユニット３１ａ−１及びインタフェースユニット３１ａ−２のいずれからもデータの書き込みや読み出しを行なうことができるようになっている。又、同様に、メモリ３２ｂには、インタフェースユニット３１ｂ−１及びインタフェースユニット３１ｂ−２のいずれからもデータの書き込みや読み出しを行なうことができるようになっている。
【００６０】
また、本記憶システム１００においては、ＳＳＵ３０ａとＳＳＵ３０ｂとには、互いに同一のデータが書き込まれるようになっており、これにより、ＳＳＵ３０ａとＳＳＵ３０ｂとの間でデータの二重化（冗長化）が行なわれるようになっている。
具体的には、ＳＳＵ３０ａのメモリ３２ａにおける所定のデータ領域（二重化データ領域）と、ＳＳＵ３０ｂのメモリ３２ｂにおける所定のデータ領域（二重化データ領域）とを同一内容にすることにより、ＳＳＵ３０ａ，３０ｂのいずれかに何らかの障害が生じた場合でも、残りのＳＳＵ３０ｂ，３０ａにおいてクラスタ２０ａ，２０ｂが同一のデータにアクセスすることができるようになっている。
【００６１】
また、これらのデータ領域における所定位置には、クラスタ２０ａ，２０ｂによる排他命令のためのアクセス制御において用いられる読出パターン（読出用データ）が格納されるようになっており、図１に示す例においては、メモリ３２ａには読出パターンＤＡ０が、又、メモリ３２ｂには読出パターンＤＡ１がそれぞれ書換可能に格納されるようになっている。
【００６２】
なお、これらの読出パターンＤＡ０と読出パターンＤＡ１としては、互いに同じデータが格納される（書き込まれる）ようになっており、前述した許可パターンＡＰ０，ＡＰ１次回許可パターンＮＰ０，ＮＰ１のいずれかが、これらの読出パターンＤＡ０，ＤＡ１として格納されるようになっている。
すなわち、これらの読出パターンＤＡ０，ＤＡ１は、それぞれ、前述した許可パターンＡＰ０，ＡＰ１および次回許可パターンＮＰ０，ＮＰ１と同じビット数（データサイズ）を有している。
【００６３】
そして、本記憶システム１００においては、これらのメモリ３２ａ，３２ｂが、読出パターンＤＡ０，ＤＡ１を書換自在に保持する読出用データ保持部として機能するようになっている。
インタフェースユニット３１ａ−１は、読出パターン取得部（読出用データ取得部）３１１，比較回路（比較部）３１２，書換処理部３１３，比較結果送信部３１４およびレジスタ３１５，３１６，３１７をそなえて構成されている。
【００６４】
なお、インタフェースユニット３１ａ−１，３１ａ−２，３１ｂ−１，３１ｂ−２は、互いにほぼ同様の構成をそなえている。以下、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。又、図１中においては、便宜上、インタフェースユニット３１ｂ−１，３１ｂ−２の構成の図示を省略している。
読出パターン取得部３１１は、メモリ３２ａの所定領域に保持されている読出パターンＤＡ０を取得するものであって、クラスタ２０ａから送信されるロック比較書込要求に従い、メモリ３２ａから読出パターンＤＡ０を読み出し、レジスタ３１５に格納するようになっている。
【００６５】
レジスタ（読出用データ格納部，第１のレジスタ）３１５は、読出パターン取得部３１１によってメモリ３２ａから取得された読出パターンＤＡ０を一時的に格納するデータ格納領域であって、前述した読出パターンＤＡ０を格納可能な容量（ビット長）をそなえて構成されている。
レジスタ（比較用データ格納部，第２のレジスタ）３１６は、クラスタ２０ａのデータ送信部２１１によって送信される許可パターン（比較用データ）ＡＰ０を一時的に格納するデータ格納領域であって、この許可パターンＡＰ０を格納可能な容量（ビット長）をそなえて構成されている。
【００６６】
比較部３１２は、クラスタ２０ａから送信された許可パターンＡＰ０と読出パターンＤＡ０とを比較するものであって、読出パターン取得部３１ａ−１によってレジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０とが一致するか否かを確認するようになっている。
この比較部３１２は、例えば、一致検出回路（コンパレータ）によって実現することができる。なお、一致検出回路は一般的に用いられるものであるので、その詳細な説明は省略する。又、比較部３１２としては、一致検出回路（ハードウェア）により実現する代わりに、同様の機能をソフトウェアによって実現してもよく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００６７】
比較結果送信部３１４は、比較部３１２による比較結果をクラスタ２０ａ，２０ｂに対して送信するものであり、インタフェースユニット３１ａ−１にそなえられた比較結果送信部３１４はクラスタ２０ａに対して比較結果を送信し、又、インタフェースユニット３１ａ−２にそなえられた比較結果送信部３１４はクラスタ２０ｂに対して比較結果を送信するようになっている。
【００６８】
レジスタ（書換用データ格納部，第３のレジスタ）３１７は、クラスタ２０ａ，２０ｂから送信される次回許可パターンＮＰ０，ＮＰ１を一時的に格納するデータ格納領域であって、この次回許可パターンＮＰ０を格納可能な容量（ビット長）をそなえて構成されている。
そして、インタフェースユニット３１ａ−１にそなえられたレジスタ３１７は、クラスタ２０ａから送信される次回許可パターンＮＰ０を格納するようになっており、インタフェースユニット３１ａ−２にそなえられたレジスタ３１７は、クラスタ２０ｂから送信される次回許可パターンＮＰ１を格納するようになっている。
【００６９】
書換処理部３１３は、比較部３１２による比較の結果、許可パターンＡＰ０と読出パターンＤＡ０とが一致する場合に、メモリ３２ａ，３２ｂに保持された読出パターンＤＡ０，ＤＡ１を、レジスタ３１７に格納された次回許可パターンＮＰ０，ＮＰ１により書き換えるものである。
なお、ＳＳＵ３０ｂは、ＳＳＵ３０ａとほぼ同様の構成をそなえており、ＳＳＵ３０ｂのインタフェースユニット３１ｂ−１は、ＳＳＵ３０ａのインタフェースユニット３１ａ−１と、又、ＳＳＵ３０ｂのインタフェースユニット３１ｂ−２は、ＳＳＵ３０ａのインタフェースユニット３１ａ−２と、それぞれほぼ同様の構成をそなえている。本実施形態においては、便宜上、これらの詳細な説明は省略する。
【００７０】
上述の如く構成された本実施形態の記憶システム１００におけるクラスタ２０が許可パターンに対するアクセス権を得られた場合の処理の流れを、図２を参照しながら説明する。なお、この図２においては、クラスタ２０ａがアクセス権を得ることができた例について示している。
先ず、クラスタ２０ａにおいて、ＣＰＵ２１ａは、メモリユニット２２ａに対して許可パターンＡＰ０及び次回許可パターンＮＰ０の読み出しを要求し、メモリユニット２２ａから許可パターンＡＰ０及び次回許可パターンＮＰ０が返される（図２の符号ｃ１参照）。又、クラスタ２０ａにおいては、これらのメモリユニット２２ａから読み出された許可パターンＡＰ０および次回許可パターンＮＰ０が図示しない送出用レジスタに格納される。
【００７１】
また、クラスタ２０ａ（ＣＰＵ２１ａ）は、マスタであるＳＳＵ３０ａとスレーブであるＳＳＵ３０ｂとの両方に対して、読出パターンＤＡ０，ＤＡ０のロック比較書込要求を行なう（図２の符号ｃ２参照）。
ＳＳＵ３０ａにおいては、読出パターン取得部３１ａ−１が、メモリ３２ａの比較パターンＤＡ０を読み出して（図２の符号ｃ３参照；読出用データ取得ステップ）、この読み出した比較パターンＤＡ０をレジスタ３１５に格納する（読出用データ格納ステップ）。
【００７２】
また、クラスタ２０ａにおいては、データ送信部２１１が、送出用レジスタに格納された許可パターンＡＰ０および次回許可パターンＮＰ０をＳＳＵ３０ａ，３０ｂのそれぞれに送信する（図２の符号ｃ４参照；比較用データ送信ステップ，書換用データ送信ステップ）。
ＳＳＵ３０ａにおいては、クラスタ２０ａから送信された許可パターンＡＰ０及び次回許可パターンＮＰ０が、レジスタ３１６およびレジスタ３１７にそれぞれ格納される（比較用データ格納ステップ，書換用データ格納ステップ）。
【００７３】
そして、ＳＳＵ３０ａにおいて、比較部３１２が、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０との比較を行ない（図２の符号ｃ５参照；比較ステップ）、比較結果送信部３１４は、この比較部３１２による比較結果（本例においては、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０とが一致）をクラスタ２０ａに送信する（図２の符号ｃ６参照；比較結果送信ステップ）。
【００７４】
また、ＳＳＵ３０ａにおいては、書込処理部３１３は、レジスタ３１７に格納されている次回許可パターンＮＰ０によるメモリ３２ａの読出パターンＤＡ０の二重書込を行なうための準備を開始する（図２の符号ｃ７参照）。
なお、この二重書込の準備としては、例えば、書込先である読出パターンＤＡ０の格納先のアドレス情報等、二重書込を行なうに際して必要とされる情報の取得や演算等の処理が行なわれる。
【００７５】
クラスタ２０ａにおいては、比較結果送信部３１４から、許可パターンＡＰ０と読出パターンＤＡ０とが一致する旨の比較結果が送信されると、指示送信部２１２が、ＳＳＵ３０ａ，３０ｂに対して、それぞれ、次回許可パターンＮＰ０による読出パターンＤＡ０の書換えを行なわせる指示（二重書込実行要求）を送信する（図２の符号ｃ８参照；書換指示送信ステップ）。
【００７６】
なお、この二重書込を実行するに際して必要とされる情報は、例えば、上述した符号ｃ２（オペレーションコードや読出パターンＤＡ０のアドレス）や符号ｃ４（次回許可パターンＮＰ０）によって示されるステップにおいて既にＳＳＵ３０ａに送信されているのである。
ＳＳＵ３０ａ，３０ｂにおいては、書換処理部３１３が、レジスタ３１７に格納されている次回許可パターンＮＰ０により、メモリ３２ａの読出パターンＤＡ０を書き換えることにより二重書き込みを行なう（図２の符号ｃ９参照；書換処理ステップ）。
【００７７】
また、ＳＳＵ３０ａ，３０ｂは、二重書き込みを行なった旨の報告（二重書込完了報告）をそれぞれクラスタ２０ａに送信する（図２の符号ｃ１０参照）。
クラスタ２０ａは、ＳＳＵ３０ａ，３０ｂの双方から読出パターンＤＡ０，ＤＡ１の二重書込完了報告が返されると、ＳＳＵ３０ａに対してアンロック要求の送信を行なう（図２の符号ｃ１１参照）。
【００７８】
ＳＳＵ３０ａは、アンロックを実行した後に（図２の符号ｃ１２参照）、クラスタ２０ａに対してアンロックを完了した旨の報告を送信する（図２の符号ｃ１３参照）。
次に、本実施形態の記憶システム１００におけるクラスタ２０が許可パターンに対するアクセス権を得られなかった場合の処理の流れを、図３を参照しながら説明する。なお、この図３においては、クラスタ２０ａがアクセス権を得ることができなかった例について示している。
【００７９】
先ず、クラスタ２０ａにおいて、ＣＰＵ２１ａは、メモリユニット２２ａに対して許可パターンＡＰ０及び次回許可パターンＮＰ０の読み出しを要求し、メモリユニット２２ａから許可パターンＡＰ０及び次回許可パターンＮＰ０が返される（図３の符号ｄ１参照）。又、クラスタ２０ａにおいては、これらのメモリユニット２２ａから読み出された許可パターンＡＰ０および次回許可パターンＮＰ０が図示しない送出用レジスタに格納される。
【００８０】
また、クラスタ２０ａ（ＣＰＵ２１ａ）は、マスタであるＳＳＵ３０ａとスレーブであるＳＳＵ３０ｂとの両方に対して、読出パターンＤＡ０，ＤＡ０のロック比較書込要求を行なう（図３の符号ｄ２参照）。
ＳＳＵ３０ａにおいては、読出パターン取得部３１ａ−１が、メモリ３２ａの比較パターンＤＡ０を読み出して（図３の符号ｄ３参照；読出用データ取得ステップ）、この読み出した比較パターンＤＡ０をレジスタ３１５に格納する（読出用データ格納ステップ）。
【００８１】
また、クラスタ２０ａにおいては、データ送信部２１１が、送出用レジスタに格納された許可パターンＡＰ０および次回許可パターンＮＰ０をＳＳＵ３０ａ，３０ｂのそれぞれに送信する（図３の符号ｄ４参照；比較用データ送信ステップ，書換用データ送信ステップ）。
ＳＳＵ３０ａにおいては、クラスタ２０ａから送信された許可パターンＡＰ０及び次回許可パターンＮＰ０が、レジスタ３１６およびレジスタ３１７にそれぞれ格納される（比較用データ格納ステップ，書換用データ格納ステップ）。
【００８２】
そして、ＳＳＵ３０ａにおいて、比較部３１２が、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０との比較を行ない（図３の符号ｄ５参照；比較ステップ）、比較結果送信部３１４は、この比較部３１２による比較結果（本例においては、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０とが不一致）をクラスタ２０ａに送信する（図３の符号ｄ６参照；比較結果送信ステップ）。
【００８３】
ＳＳＵ３０ａにおいては、書換処理部３１３が、レジスタ３１７に格納されている次回許可パターンＮＰ０によるメモリ３２ａの読出パターンＤＡ０の二重書込を行なうための準備を開始する（図３の符号ｄ７参照）。
また、ＳＳＵ３０ａにおいては、比較部３１２による比較結果により、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０とが不一致であることが判明すると、メモリ３２ａに対するアンロック処理を自律的に行なう（図３の符号ｄ８参照）。
【００８４】
クラスタ２０ａにおいては、指示送信部２１２は、比較結果送信部３１４から、比較部３１２による比較結果として、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０とが不一致である旨の結果が返信されると、書込処理部３１３が、各ＳＳＵ３０ａ，３０ｂに対して、次回許可パターンＮＰ０による読出パターンＤＡ０，ＤＡ１の書換え（二重書込）を中断する指示（二重書込中止要求）を送信する（図３の符号ｄ９参照）。
【００８５】
ＳＳＵ３０ａ，３０ｂにおいては、書込処理部３１３による次回許可パターンＮＰ０による読出パターンＤＡ０，ＤＡ１の書換え（二重書込）を中断し（図３の符号ｄ１０参照）、クラスタ２０ａに対して、それぞれ、二重書込を中断した旨の報告（二重書込中断完了報告）を送信する（図３の符号ｄ１１参照）。
このように、本実施形態の記憶システム１００によれば、ＳＳＵ３０ａにおいてレジスタ３１５，３１６および比較部３１２をそなえ、この比較部３１２による許可パターンＡＰ０と読出パターンＤＡ０との比較が行なわれた後に、比較結果送信部３１４がクラスタ２０ａに対して比較結果を送信するのと並行して、書込処理部３１３が、レジスタ３１７に格納されている次回許可パターンＮＰ０によるメモリ３２ａの読出パターンＤＡ０の二重書込を行なうための準備を開始するので、読出パターンＤＡ０の二重書込処理を開始するまでの時間を短縮することができる。これにより、アクセス権の取得に要する時間を短縮し、システムの処理性能を向上できる。
【００８６】
また、ＳＳＵ３０ａにおける許可パターンＡＰ０と読出パターンＤＡ０との比較に先立って、クラスタ２０ａにおいて、メモリユニット２２ａからの許可パターンＡＰ０及び次回許可パターンＮＰ０の読み出しを行なうとともに、これらの許可パターンＡＰ０及び次回許可パターンＮＰ０をＳＳＵ３０ａ，３０ｂに対して送信するので、比較部３１２によって読出パターンＤＡ０と許可パターンＡＰ０との比較が行なわれてから、読出パターンＤＡ０，ＤＡ１の二重書き込みが完了するまでの時間を短縮することができる。これによっても、アクセス権の取得に要する時間を短縮し、システムの処理性能を向上できる。
【００８７】
さらに、次回許可パターンＮＰ０のメモリユニット２２ａ，２２ｂからの読み出しを、許可パターンＡＰ０の読み出しとともに行なっているので（図２の符号ｃ１参照）、排他制御命令にかかる処理時間を短縮することができる。
近年の記憶装置は複数要求を可能としており、又、複数バンクを持つことが可能であれば複数同時読み出しを行なうことができるので、これらの許可パターンＡＰ０と次回許可パターンＮＰ０とを同時に読み出すために要する読出実行時間は、許可パターンＡＰ０だけを読み出すために要する読出実行時間の２倍よりも小さくなる。従って、メモリユニット２２ａ，２２ｂから許可パターンＡＰ０及び次回許可パターンＮＰ０を読み出すために要する時間を短縮することができることは明らかである。
【００８８】
また、ＳＳＵ３０ａにおいてレジスタ３１５，３１６および比較部３１２をそなえることにより、クラスタ２０ａがＳＳＵ３０ａ，３０ｂに対するアクセス権を得られなかった場合においても、比較部３１２による許可パターンＡＰ０と読出パターンＤＡ０との比較が行なわれ、レジスタ３１５に格納された読出パターンＤＡ０と、レジスタ３１６に格納された許可パターンＡＰ０とが不一致であることが判明すると、メモリ３２ａに対するアンロック処理を自律的に行なうことができ、これにより、読出パターンＤＡ０のロック読み出しからアンロックまでの時間を短縮することができる。
【００８９】
そして、上述の如く、読出パターンＤＡ０のロック読み出しからアンロックまでの時間を短縮することができるので、クラスタ２０の台数を２台から３台、４台・・・と増やしていくことでシステム性能が向上することが期待できる。
なお、クラスタ２０において、上述したデータ送信部２１１，指示送信部２１２及びロック比較書込要求送信部２１３としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００９０】
データ送信部２１１，指示送信部２１２及びロック比較書込要求送信部２１３としての機能を実現する際には、ハードウェアの組み合わせで実現するようにしてもよく、内部記憶装置（本実施形態ではメモリユニット２２ａ，２２ｂやその他の図示しないＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ２１ａ，２１ｂ）によって実行されるようにしてもよい。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００９１】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、クラスタ２０がコンピュータとしての機能を有しているのである。
【００９２】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
【００９３】
そして、開示の記憶システムおよび処理方法は、上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
なお、上述の実施形態が開示されていれば、本実施形態を当業者によって実施・製造することが可能である。
【産業上の利用可能性】
【００９４】
複数の処理装置と複数の処理対象をそなえたシステムにおいて、処理対象に対して排他的にアクセスして行なう種々の処理に適用できる。
【図面の簡単な説明】
【００９５】
【図１】実施形態の一例としての記憶システムの構成を模式的に示す図である。
【図２】実施形態の記憶システムにおけるクラスタがＳＳＵに対するアクセス権を得られた場合の処理の流れを説明するための図である。
【図３】実施形態の記憶システムにおけるクラスタがＳＳＵに対するアクセス権を得られなかった場合の処理の流れを説明するための図である。
【図４】従来の記憶システムの構成を模式的に示す図である。
【図５】従来の記憶システムにおけるＳＳＵに対する排他的書き込み制御手法を説明するための図である。
【図６】従来の記憶システムにおけるＳＳＵに対する排他的書き込み制御手法を説明するための図である。
【符号の説明】
【００９６】
２０ａ，２０ｂ，２０    クラスタ（処理装置）
２１ａ，２１ｂ    ＣＰＵ（プロセッサ）
２２ａ，２２ｂ    メモリユニット
３０ａ，３０ｂ，３０    ＳＳＵ（記憶装置）
３１ａ−１，３１ａ−２，３１ｂ−１，３１ｂ−２    インタフェースユニット
１００    記憶システム
２１１    データ送信部（比較データ送信部，書換用データ送信部）
２１２    書換指示送信部
２１３    ロック比較書込要求送信部
３１１    読出パターン取得部
３１２    比較部
３１３    書換処理部
３１４    比較結果送信部
３１５    レジスタ（読出用データ格納部）
３１６    レジスタ（比較用データ格納部）
３１７    レジスタ（書換用データ格納部）
ＡＰ０    許可パターン（比較用データ）
ＤＡ０    読出パターン（読出用データ）
ＮＰ０    次回許可パターン（書換用データ）
【図１】
2010079676.tif 000003
【図２】
2010079676.tif 000004
【図３】
2010079676.tif 000005
【図４】
2010079676.tif 000006
【図５】
2010079676.tif 000007
【図６】
2010079676.tif 000008