(57)【要約】【課題】  複数のプロセッサによる処理性能が低下してしまうことを抑える。【解決手段】  コントローラと、複数のプロセッサとコントローラとに通信可能に接続された一以上の中間デバイスとが備えられる。プロセッサによる指定値を含んだ第一のアクセスメッセージを、そのプロセッサに接続された第一の中間デバイスが、コントローラに送信する。コントローラが、その第一のアクセスメッセージに含まれる指定値に対応したローカルメモリアドレスを特定し、特定されたローカルメモリアドレスを含んだ第二のアクセスメッセージを、二以上の他のプロセッサに対して送信する。二以上の他のプロセッサ又はそれらに接続された第二の中間デバイスが、第二のアクセスメッセージに含まれているローカルメモリアドレスに対応したローカルメモリ領域であって、二以上の他のプロセッサにそれぞれ対応した二以上のローカルメモリのローカルメモリ領域に、アクセスする。【選択図】図２
2006285778.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサによって一以上のストレージに対する処理を行うストレージシステムにおいて、
複数のプロセッサと、
前記複数のプロセッサに対してそれぞれ用意された複数のローカルメモリと、
コントローラと、
前記複数のプロセッサと前記コントローラとに通信可能に接続された一以上の中間デバイスと
を備え、
前記複数のローカルメモリの各々は、複数のローカルメモリアドレスと、前記複数のローカルメモリアドレスにそれぞれ対応したローカルメモリ領域とを有し、
プロセッサが指定した値である指定値を含んだ第一のアクセスメッセージを、そのプロセッサに接続された第一の中間デバイスが、前記コントローラに送信し、
前記コントローラが、前記第一の中間デバイスから第一のアクセスメッセージを受信し、前記受信した第一のアクセスメッセージに含まれる指定値に対応したローカルメモリアドレスを特定し、特定されたローカルメモリアドレスを含んだ第二のアクセスメッセージを、二以上の他のプロセッサに対して送信し、
前記二以上の他のプロセッサにそれぞれ接続された第二の中間デバイスが、前記第二のアクセスメッセージを受信し、前記第二の中間デバイス又は前記二以上の他のプロセッサが、前記第二のアクセスメッセージに含まれているローカルメモリアドレスに対応したローカルメモリ領域であって、前記二以上の他のプロセッサにそれぞれ対応した二以上のローカルメモリのローカルメモリ領域に、アクセスする、
ストレージシステム。
【請求項２】
前記コントローラが、
各ローカルメモリアドレス毎にロックオンかロックオフかを制御し、
前記受信した第一のアクセスメッセージに含まれている指定値に対応したローカルメモリアドレスがロックオフになっている場合、そのローカルメモリアドレスをロックオンとし、その後、前記第一のアクセスメッセージを処理して前記第二のアクセスメッセージを送信した以降のタイミングで、そのローカルメモリアドレスをロックオフとし、
前記受信した前記受信した第一のアクセスメッセージに含まれている指定値に対応したローカルメモリアドレスがロックオンになっている場合、そのローカルメモリアドレスがロックオフになってから、その第一のアクセスメッセージの処理を実行する、
請求項１記載のストレージシステム。
【請求項３】
前記プロセッサが、自分に対して用意されたローカルメモリのローカルメモリ領域からデータを読出す前に、そのローカルメモリ領域に対応したローカルメモリアドレスをロックオンにすることを前記コントローラに要求し、
前記コントローラは、前記プロセッサからの要求の対象であるローカルメモリアドレスについてロックオンできたか否かの通知を前記プロセッサに送信し、
前記プロセッサは、ロックオンできたことの通知を受けた場合に、前記ローカルメモリ領域からデータを読出す、
請求項２記載のストレージシステム。
【請求項４】
前記複数のローカルメモリの同一のローカルメモリアドレスは、所定のプロセッサに割り当てられており、
前記プロセッサに割り当てられたローカルメモリアドレスに対応するローカルメモリ領域は、前記プロセッサにとっては書込み領域であり、前記他のプロセッサにとっては読出し領域である、
請求項１記載のストレージシステム。
【請求項５】
前記プロセッサが、前記書込み領域にデータを書込み、
前記第一の中間デバイスが、前記書込み領域に対応したローカルメモリアドレスを指定値とした前記第一のアクセスメッセージを前記コントローラに送信する、
請求項４記載のストレージシステム。
【請求項６】
複数の指定値にそれぞれ対応した複数のアクセス先データを記録したアクセスマップを備え、
前記複数のアクセス先データの各々には、どのプロセッサをアクセス先とするかが記述されており、
前記コントローラは、前記受信した第一のアクセスメッセージに含まれている指定値に対応したアクセス先データを前記アクセスマップから特定し、前記特定されたアクセス先データが表す二以上の他のプロセッサに対して、前記第二のアクセスメッセージを送信する、
請求項１記載のストレージシステム。
【請求項７】
前記二以上の他のプロセッサは、所定の属性を有するプロセッサグループである、
請求項１記載のストレージシステム。
【請求項８】
前記コントローラには、前記複数のプロセッサが前記コントローラを介してアクセス可能な共有メモリが接続されており、
前記コントローラは、前記二以上のローカルメモリへのアクセス対象のデータを、前記共有メモリに書込む、
請求項１記載のストレージシステム。
【請求項９】
前記コントローラは、前記第一のアクセスメッセージに含まれている指定値と、前記指定値を指定したのはどのプロセッサであるかとに基づいて、前記二以上の他のプロセッサを決定する、
請求項１記載のストレージシステム。
【請求項１０】
前記コントローラと各中間デバイスとの間には、前記コントローラから各中間デバイスへの第一のパスと、前記各中間デバイスから前記コントローラへの第二のパスとがあり、
前記コントローラは、前記第二のパスを介して前記第一のアクセスメッセージを受信し、前記第一のパスを介して前記第二のアクセスメッセージを送信する、
請求項１記載のストレージシステム。
【請求項１１】
前記コントローラは、前記第一のアクセスメッセージを受信して前記第二のアクセスメッセージを送信した場合、以下の（Ａ）乃至（Ｆ）の応答方式、
（Ａ）前記第二のアクセスメッセージに対する応答を前記二以上の他のプロセッサから受ける前に、前記プロセッサに応答を返す、
（Ｂ）前記第二のアクセスメッセージに対する応答を前記二以上の他のプロセッサの各々から受ける都度に、前記プロセッサに応答を返す、
（Ｃ）前記第二のアクセスメッセージに対する応答を前記二以上の他のプロセッサの全てから受けた後に、前記プロセッサに応答を返す、
（Ｄ）前記第二のアクセスメッセージに従って前記二以上のローカルメモリにデータが書かれた場合に前記二以上の他のプロセッサから出力される応答を前記二以上の他のプロセッサの各々から受ける都度に、前記プロセッサに応答を返す、
（Ｅ）前記第二のアクセスメッセージに従って前記二以上のローカルメモリにデータが書かれた場合に前記二以上の他のプロセッサから出力される応答を前記二以上の他のプロセッサの全てから受けた後に、前記プロセッサに応答を返す、
（Ｆ）前記第一のアクセスメッセージの受信と前記第二のアクセスメッセージの送信とを複数回行い、前記複数回の前記第二のアクセスメッセージに対する複数回分の応答を前記二以上の他のプロセッサから受信した後に、前記プロセッサに応答を返す、
のうちのいずれかの応答方式を実行する、
請求項１記載のストレージシステム。
【請求項１２】
前記コントローラは、アクセスが正確に行われたかの信頼性と、前記コントローラと前記中間デバイスとの間のパスの占有率と、前記第一のアクセスメッセージが送信されてから前記プロセッサに応答が届くまでのレスポンス時間長とのうちの少なくとも一つに基づいて、前記（Ａ）乃至（Ｆ）の応答方式の中から一つの応答方式を採用し、採用した応答方式を実行する、
請求項１１記載のストレージシステム。
【請求項１３】
各プロセッサには、自分に対して用意されたローカルメモリと、他のプロセッサの他のローカルメモリとを含んだ複数の記憶デバイスがあり、
各プロセッサは、
指定値を発行するプロセッサコアと、
前記プロセッサコアから発行された指定値に基づいて、前記プロセッサに対して用意されたローカルメモリと、他のプロセッサの他のローカルメモリとを含んだ複数の記憶デバイスの中から二以上の記憶デバイスを決定するアクセス制御回路と
を備え、前記決定された二以上の記憶デバイスにアクセスする、
請求項１記載のストレージシステム。
【請求項１４】
ストレージシステムに搭載することができるプロセッサであって、
値を発行するプロセッサコアと、
前記プロセッサコアから発行された値に基づいて、前記プロセッサに対して用意されたローカルメモリと、他のプロセッサの他のローカルメモリとを含んだ複数の記憶デバイスの中から二以上の記憶デバイスを決定するアクセス制御回路と
を備え、前記決定された二以上の記憶デバイスにアクセスする、
プロセッサ。
【請求項１５】
複数のプロセッサによって一以上のストレージに対する処理を行う記憶制御方法において、
前記複数のプロセッサに対してそれぞれ用意された複数のローカルメモリの各々は、複数のローカルメモリアドレスと、前記複数のローカルメモリアドレスにそれぞれ対応したローカルメモリ領域とを有しており、
プロセッサが指定した値である指定値を含んだ第一のアクセスメッセージを、そのプロセッサに接続された第一の中間デバイスからコントローラに送信し、
前記第一のアクセスメッセージに含まれる指定値に対応したローカルメモリアドレスを特定し、
特定されたローカルメモリアドレスを含んだ第二のアクセスメッセージを前記コントローラから二以上の他のプロセッサに対して送信し、
前記第二のアクセスメッセージに含まれているローカルメモリアドレスに対応したローカルメモリ領域であって、前記二以上の他のプロセッサにそれぞれ対応した二以上のローカルメモリのローカルメモリ領域に、アクセスする、
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを備えたシステムのための技術に関し、例えば、ストレージへのアクセスを制御するストレージシステム及び記憶制御方法に関する。
【背景技術】
【０００２】
複数のプロセッサを備えたシステムとして、例えば、特許文献１に記載のディスクアレイ制御装置が知られている。そのディスクアレイ制御装置は、ホストコンピュータとの入出力制御を行う複数のチャネルアダプタと、磁気ディスク装置との入出力を制御する複数のディスクアダプタと、共有メモリと、内蔵データキャッシュを備えた共有メモリ搭載プロセッサとを備えている。複数のチャネルアダプタには、複数のチャネルアダプタ搭載プロセッサが搭載されており、複数のディスクアダプタには、複数のディスクアダプタ搭載プロセッサが搭載されている。チャネルアダプタ搭載プロセッサ及びディスクアダプタ搭載プロセッサからの共有メモリに対するアクセスは、内蔵データキャッシュを経由して実行される。それにより、共有メモリへのアクセス所要時間の削減が図れる。
【０００３】
【特許文献１】特開２００１−３０６２６５号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、チャネルアダプタ及びディスクアダプタの各々に備えられているプロセッサには、一つ以上のメモリ（以下、共有メモリと区別するために「ローカルメモリ」という）を通信可能に接続することができる。プロセッサは、共有メモリを介して、他のプロセッサと通信することができ、その通信対象のデータを、ローカルメモリに対して読み書きすることができる。具体的には、例えば、プロセッサは、他のプロセッサに対するデータを共有メモリに書込んだり、他のプロセッサによって書込まれたデータを共有メモリから読出したりすることができ、書込み対象のデータや読出されたデータを、ローカルメモリに書込んだり、ローカルメモリから読出したりすることができる。共有メモリ側（例えば、共有メモリとプロセッサとの間に介在するメモリコントローラ）は、或るタイミングで（例えば、データが書込まれたタイミング或いは他のプロセッサからそのデータが読出されたタイミングで）、書込み元のプロセッサに応答を返すことができる。
【０００５】
しかし、上述したプロセッサ間通信の場合、共有メモリにアクセスが集中することになり、共有メモリ側からの応答待ち時間長が、処理性能のボトルネックになると考えられる。具体的には、例えば、共有メモリ側からプロセッサに応答が返されるまで、共有メモリとそのプロセッサとの間のパスが占有されてしまうことがあり、各プロセッサの処理性能が低下してしまうと考えられる。
【０００６】
また、上述したプロセッサ間通信の場合、各プロセッサが共有メモリにアクセスするためには、幾つかの機器（例えば、通信インターフェース装置やスイッチ等）を経由することになるので、そのアクセス（特に、データを待つ必要のある読出し）には、少なくともプロセッサがローカルメモリにアクセスする場合よりも長い時間がかかると考えられる。この点も、処理性能のボトルネックになると考えられる。
【０００７】
従って、本発明の一つの目的は、複数のプロセッサによる処理性能が低下してしまうことを抑えることにある。
【０００８】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本発明の第一の側面に従うストレージシステムは、複数のプロセッサと、前記複数のプロセッサに対してそれぞれ用意された複数のローカルメモリと、コントローラと、前記複数のプロセッサと前記コントローラとに通信可能に接続された一以上の中間デバイスとを備える。前記複数のローカルメモリの各々は、複数のローカルメモリアドレスと、前記複数のローカルメモリアドレスにそれぞれ対応したローカルメモリ領域とを有する。プロセッサが指定した値である指定値を含んだ第一のアクセスメッセージを、そのプロセッサに接続された第一の中間デバイスが、前記コントローラに送信する。前記コントローラが、前記第一の中間デバイスから第一のアクセスメッセージを受信し、前記受信した第一のアクセスメッセージに含まれる指定値に対応したローカルメモリアドレスを特定し、特定されたローカルメモリアドレスを含んだ第二のアクセスメッセージを、二以上の他のプロセッサに対して送信する。前記二以上の他のプロセッサにそれぞれ接続された第二の中間デバイスが、前記第二のアクセスメッセージを受信し、前記第二の中間デバイス又は前記二以上の他のプロセッサが、前記第二のアクセスメッセージに含まれているローカルメモリアドレスに対応したローカルメモリ領域であって、前記二以上の他のプロセッサにそれぞれ対応した二以上のローカルメモリのローカルメモリ領域に、アクセスする。
【００１０】
ここで、中間デバイスとは、例えば、後述するＣＨＡ或いはＤＫＡ等のパッケージに搭載される一種のインターフェース装置（例えば後述のＭＰＡ）であっても良いし、後述の転送制御回路であっても良い。
【００１１】
一つの実施態様では、前記コントローラが、各ローカルメモリアドレス毎にロックオンかロックオフかを制御することができる。具体的には、前記コントローラが、前記受信した第一のアクセスメッセージに含まれている指定値に対応したローカルメモリアドレスがロックオフになっている場合、そのローカルメモリアドレスをロックオンとし、その後、前記第一のアクセスメッセージを処理して前記第二のアクセスメッセージを送信した以降のタイミングで、そのローカルメモリアドレスをロックオフとすることができる。また、前記コントローラが、前記受信した前記受信した第一のアクセスメッセージに含まれている指定値に対応したローカルメモリアドレスがロックオンになっている場合、そのローカルメモリアドレスがロックオフになってから、その第一のアクセスメッセージの処理を実行することができる。
【００１２】
一つの実施態様では、前記プロセッサが、自分に対して用意されたローカルメモリのローカルメモリ領域からデータを読出す前に、そのローカルメモリ領域に対応したローカルメモリアドレスをロックオンにすることを前記コントローラに要求することができる。前記コントローラは、前記プロセッサからの要求の対象であるローカルメモリアドレスについてロックオンできたか否かの通知を前記プロセッサに送信することができる。前記プロセッサは、ロックオンできたことの通知を受けた場合に、前記ローカルメモリ領域からデータを読出すことができる。
【００１３】
一つの実施態様では、前記複数のローカルメモリの同一のローカルメモリアドレスは、所定のプロセッサに割り当てられていてもよい。その場合、前記プロセッサに割り当てられたローカルメモリアドレスに対応するローカルメモリ領域は、前記プロセッサにとっては書込み領域であり、前記他のプロセッサにとっては読出し領域であるとすることができる。
【００１４】
一つの実施態様では、前記プロセッサが、前記書込み領域にデータを書込み、前記第一の中間デバイスが、前記書込み領域に対応したローカルメモリアドレスを指定値とした前記第一のアクセスメッセージを前記コントローラに送信することができる。
【００１５】
一つの実施態様では、前記ストレージシステムが、複数の指定値にそれぞれ対応した複数のアクセス先データを記録したアクセスマップを備えることができる。前記複数のアクセス先データの各々には、どのプロセッサをアクセス先とするかが記述されていてもよい。前記コントローラは、前記受信した第一のアクセスメッセージに含まれている指定値に対応したアクセス先データを前記アクセスマップから特定し、前記特定されたアクセス先データが表す二以上の他のプロセッサに対して、前記第二のアクセスメッセージを送信することができる。
【００１６】
一つの実施態様では、前記二以上の他のプロセッサは、所定の属性を有するプロセッサグループであるとすることができる。
【００１７】
一つの実施態様では、前記コントローラには、前記複数のプロセッサが前記コントローラを介してアクセス可能な共有メモリが接続されていてもよい。前記コントローラは、前記二以上のローカルメモリへのアクセス対象のデータを、前記共有メモリに書込むことができる。
【００１８】
一つの実施態様では、前記コントローラは、前記第一のアクセスメッセージに含まれている指定値と、前記指定値を指定したのはどのプロセッサであるかとに基づいて、前記二以上の他のプロセッサを決定することができる。
【００１９】
一つの実施態様では、前記コントローラと各中間デバイスとの間には、前記コントローラから各中間デバイスへの第一のパスと、前記各中間デバイスから前記コントローラへの第二のパスとがあってもよい。前記コントローラは、前記第二のパスを介して前記第一のアクセスメッセージを受信し、前記第一のパスを介して前記第二のアクセスメッセージを送信することができる。
【００２０】
一つの実施態様では、前記コントローラは、前記第一のアクセスメッセージを受信して前記第二のアクセスメッセージを送信した場合、以下の（Ａ）乃至（Ｆ）の応答方式、
（Ａ）前記第二のアクセスメッセージに対する応答を前記二以上の他のプロセッサから受ける前に、前記プロセッサに応答を返す、
（Ｂ）前記第二のアクセスメッセージに対する応答を前記二以上の他のプロセッサの各々から受ける都度に、前記プロセッサに応答を返す、
（Ｃ）前記第二のアクセスメッセージに対する応答を前記二以上の他のプロセッサの全てから受けた後に、前記プロセッサに応答を返す、
（Ｄ）前記第二のアクセスメッセージに従って前記二以上のローカルメモリにデータが書かれた場合に前記二以上の他のプロセッサから出力される応答を前記二以上の他のプロセッサの各々から受ける都度に、前記プロセッサに応答を返す、
（Ｅ）前記第二のアクセスメッセージに従って前記二以上のローカルメモリにデータが書かれた場合に前記二以上の他のプロセッサから出力される応答を前記二以上の他のプロセッサの全てから受けた後に、前記プロセッサに応答を返す、
（Ｆ）前記第一のアクセスメッセージの受信と前記第二のアクセスメッセージの送信とを複数回行い、前記複数回の前記第二のアクセスメッセージに対する複数回分の応答を前記二以上の他のプロセッサから受信した後に、前記プロセッサに応答を返す、
のうちのいずれかの応答方式を実行することができる。
【００２１】
一つの実施態様では、前記コントローラは、アクセスが正確に行われたかの信頼性と、前記コントローラと前記中間デバイスとの間のパスの占有率と、前記第一のアクセスメッセージが送信されてから前記プロセッサに応答が届くまでのレスポンス時間長とのうちの少なくとも一つに基づいて、前記（Ａ）乃至（Ｆ）の応答方式の中から一つの応答方式を採用し、採用した応答方式を実行することができる。
【００２２】
一つの実施態様では、各プロセッサには、自分に対して用意されたローカルメモリと、他のプロセッサの他のローカルメモリとを含んだ複数の記憶デバイスがあってもよい。各プロセッサは、指定値を発行するプロセッサコアと、前記プロセッサコアから発行された指定値に基づいて、前記プロセッサに対して用意されたローカルメモリと、他のプロセッサの他のローカルメモリとを含んだ複数の記憶デバイスの中から二以上の記憶デバイスを決定するアクセス制御回路とを備え、前記決定された二以上の記憶デバイスにアクセスすることができる。
【００２３】
本発明の第二の側面に従うプロセッサは、値を発行するプロセッサコアと、前記プロセッサコアから発行された値に基づいて、前記プロセッサに対して用意されたローカルメモリと、他のプロセッサの他のローカルメモリとを含んだ複数の記憶デバイスの中から二以上の記憶デバイスを決定するアクセス制御回路とを備え、前記決定された二以上の記憶デバイスにアクセスすることができる。
【００２４】
本発明の第三の側面に従う記憶制御方法は、複数のプロセッサに対してそれぞれ用意された複数のローカルメモリの各々は、複数のローカルメモリアドレスと、前記複数のローカルメモリアドレスにそれぞれ対応したローカルメモリ領域とを有している場合に、プロセッサが指定した値である指定値を含んだ第一のアクセスメッセージを、そのプロセッサに接続された第一の中間デバイスからコントローラに送信し、前記第一のアクセスメッセージに含まれる指定値に対応したローカルメモリアドレスを特定し、特定されたローカルメモリアドレスを含んだ第二のアクセスメッセージを前記コントローラから二以上の他のプロセッサに対して送信し、前記第二のアクセスメッセージに含まれているローカルメモリアドレスに対応したローカルメモリ領域であって、前記二以上の他のプロセッサにそれぞれ対応した二以上のローカルメモリのローカルメモリ領域に、アクセスする。
【００２５】
なお、上述した中間デバイス及びコントローラのうちの少なくとも一つ、或いはそれらの処理を実行する機能を、「手段」という言葉で表すことができる。また、その手段は、ハードウェア、コンピュータプログラム又はそれらの組み合せで実現することができる。
【発明の効果】
【００２６】
本発明によれば、複数のプロセッサによる処理性能が低下してしまうことを抑えることができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して、本発明の幾つかの実施例を説明する。
【実施例１】
【００２８】
図１は、本発明の第一実施例に係るシステムのハードウェア構成の一例の概要を示す。なお、以下の説明では、同種類の要素（例えばＣＨＡ）を区別する場合には、区別される要素については、親番号（例えば３）と枝符号（例えばＡ）とから成る参照番号を用いるが、同種類の要素を格別区別しない場合には、親番号のみを用いる場合がある。
【００２９】
通信ネットワーク（例えば、ＬＡＮ（Local Area Network）或いはＳＡＮ（Storage Area Network））３２に、一以上のホスト装置３１とストレージシステム２０とが接続されている。
【００３０】
各ホスト装置３１は、例えば、ＣＰＵ、メモリ、入力装置（例えばマウスやキーボード）及び出力装置（例えば表示装置）のうちの少なくとも一つのハードウェア資源を備えるコンピュータマシンである。各ホスト装置３１は、例えば、パーソナルコンピュータ、ワークステーション、或いはサーバマシン等とすることができる。ホスト装置３１は、書込み要求及び書込み対象データや、読出し要求を、ストレージシステム２０に送信することができる。ホスト装置３１は、メインフレームコンピュータであってもよい。その場合、後述する複数のＣＨＡ３Ａ、３Ｂ、…のうちの少なくとも一つも、メインフレーム系のコンピュータマシンとすることができる。メインフレームコンピュータとしてのホスト装置３１とメインフレーム系のＣＨＡ３との間の通信は、例えば、FICON（Fibre Connection：登録商標）、ESCON（Enterprise System Connection：登録商標）、ACONARC（Advanced Connection Architecture：登録商標）、FIBARC（Fibre Connection Architecture：登録商標）等の通信プロトコルに従って行うことができる。
【００３１】
ストレージシステム２０は、複数（一つでも良い）のチャネルアダプタ（以下、ＣＨＡ）３Ａ、３Ｂ、…と、複数（一つでも良い）のストレージ２１、２１、…と、複数（一つでも良い）のディスクアダプタ（以下、ＤＫＡ）１３Ａ、１３Ｂ、…と、キャッシュメモリ（以下、ＣＭ）４１と、共有メモリパッケージ３５と、接続部３３とを備える。
【００３２】
複数のＣＨＡ３Ａ、３Ｂ、…は同じ構成及び機能を有することができるので、複数のＣＨＡ３Ａ、３Ｂ、…について、ＣＨＡ３Ａを代表的に例に採り説明する。ＣＨＡ３Ａは、ホスト装置３１との間の通信を制御するインターフェース装置（例えば回路基板）である。ＣＨＡ３Ａは、ホスト装置３１から書込み要求及び書込み対象データを受信し、受信した書込み対象データをＣＭ４１に書込んだり、書込み要求に基づいてＤＫＡ１３に対するメッセージ（例えば、書込み対象データのＣＭ４１上での存在場所とどのストレージに書くか）を生成して送信したりすることができる。また、ＣＨＡ３Ａは、ホスト装置３１から読出し要求を受信し、受信した読出し要求に基づいてＤＫＡ１３に対するメッセージ（例えば、どのストレージ２１からどの読出し対象データを読出してＣＭ４１上のどこに格納するか）を生成して送信したり、ＤＫＡ１３からのメッセージ（例えば、ＣＭ４１への読出しが終了したという通知）に基づいて、ＣＭ４１から読出し対象データを読出してホスト装置３１に送信したりすることもできる。ＣＨＡ３Ａのハードウェア構成例については後述する。
【００３３】
ストレージ２１は、どのようなものであっても良く、例えば、ハードディスク、光ディスク、磁気テープ或いは半導体メモリとすることができる。
【００３４】
複数のＤＫＡ１３Ａ、１３Ｂ、…は同じ構成及び機能を有することができるので、複数のＤＫＡ１３Ａ、１３Ｂ、…について、ＤＫＡ１３Ａを代表的に例に採り説明する。ＤＫＡ１３Ａは、自分と通信可能な一以上のストレージ２１、２１…との間の通信を制御するインターフェース装置（例えば回路基板）である。ＤＫＡ１３Ａは、ＣＨＡ３からのメッセージに基づいて、ＣＭ４１から書込み対象データを読出してストレージ２１に書込んだり、ＣＨＡ３からのメッセージに基づいて、ストレージ２１から読出し対象データを読出してＣＭ４１に書込んだりすることができる。ＤＫＡ１３Ａのハードウェア構成例については後述する。
【００３５】
ＣＭ４１は、ホスト装置３１とストレージ２１との間でやり取りされる書込み対象データや読出し対象データを一時的に記憶するためのメモリである。
【００３６】
共有メモリパッケージ（例えば回路基板）３５は、共有メモリ（以下、ＳＭ）３９と、スイッチＬＳＩ（Large-Scale Integrated circuit）３７とを備えている。ＳＭ３９は、種々の情報（例えば、ストレージシステム２０の動作を制御するための制御情報）を記憶することができ、各ＣＨＡ３のマイクロプロセッサ（以下、ＭＰ）５や各ＤＫＡ１３のＭＰ１５がアクセス可能なメモリである。スイッチＬＳＩ３７は、各ＭＰ５、１５からのＳＭ３９に対するアクセスを許可したり、各ＭＰ５、１５からのメッセージを他のＭＰ５、１５のローカルメモリ（以下、ＬＭ）７、１７に書込んだり、そのデータをＳＭ３９に書くか否かを制御したりすることができる。
【００３７】
接続部３３は、各ＣＨＡ３、ＣＭ４１、各ＤＫＡ１３及びスイッチＬＳＩ３７を相互に接続させるスイッチ（例えば、スイッチング動作によってデータ伝送を行うクロスバスイッチ）或いはバスとすることができる。
【００３８】
以上が、本実施例に係るシステムのハードウェア構成の概要についての説明である。次に、各ＣＨＡ３及び各ＤＫＡ１３のハードウェア構成の一例の概要について説明する。なお、以下の説明では、ＣＨＡ３又はＤＫＡ１３と他のＣＨＡ３又は他のＤＫＡ１３との間でスイッチＬＳＩ３７を介して或いは介さずにやり取りされる情報を「メッセージ」と呼ぶ。そのメッセージには、例えば、データ及びコマンドのうちの少なくとも一つを含めることができるものとする。
【００３９】
各ＣＨＡ３について、ＣＨＡ３Ａを代表的に例に採り説明する。ＣＨＡ３Ａは、例えば、通信ネットワーク３２に接続されるポート２Ａと、接続部３３に接続されるマイクロプロセッサアダプタ（以下、ＭＰＡ）４Ａと、ＭＰ５Ａと、ＭＰ５Ａがアクセス可能なＬＭ７Ａと、ポート２Ａ、ＭＰ５Ａ、ＬＭ７Ａ及びＭＰＡ４Ａに接続される転送制御回路６Ａとを備える（図１において、ＣＨＡ３Ｂの構成要素については、枝符号「Ａ」の代わりに「Ｂ」を付している）。この実施例では、一つのＣＨＡ３には、一つのＭＰ５が搭載されているものとするが、複数のＭＰ５が搭載されていてもよい（これは、後述のＤＫＡ１３についても同様とする）。また、この実施例では、一つのＭＰ５に対して、一つのＬＭ７が用意されているものとするが、複数のＬＭ７が用意されてもよい（これは、後述のＭＰ１５についても同様とする）。転送制御回路６Ａは、ポート２Ａ、ＭＰ５Ａ、ＬＭ７Ａ及びＭＰＡ４Ａにおける相互間のデータ転送を制御することができる。具体的には、例えば、転送制御回路６Ａは、ポート２Ａを介して入力されたデータをＭＰ５Ａ、ＬＭ７Ａ及びＭＰＡ４Ａのうちの少なくとも一方に出力したり、ＭＰＡ４Ａを介して入力されたデータをＭＰ５Ａ及びＬＭ７Ａのうちの少なくとも一方に出力したりすることができる。ＭＰ５Ａは、転送制御回路６Ａを介して、ＬＭ７Ａにデータを書込んだり、ＬＭ７Ａからデータを読出したりすることができる。
【００４０】
各ＤＫＡ１３について、ＤＫＡ１３Ａを代表的に例に採り説明する。ＤＫＡ１３Ａは、ＣＨＡ３Ａと実質的に同じ構成にすることができる。すなわち、例えば、ＤＫＡ１３Ａは、ポート１２Ａと、ＭＰＡ１４Ａと、ＭＰ１５Ａと、ＬＭ１７Ａと、転送制御回路１６Ａとを備えることができる（図１において、ＤＫＡ１３Ｂの構成要素については、枝符号「Ａ」の代わりに「Ｂ」を付している）。ポート１２Ａには、例えばファイバチャネルケーブルを介して、ストレージ２１が接続される。
【００４１】
図２Ａは、本発明の第一実施例で行われる一つの処理の概要を示す。なお、後述する書込みメッセージは、ＭＰ、転送制御部及びＭＰＡのうちの少なくとも一つが送受信することができるが、以下の説明では、ＭＰが送受信するものとする。
【００４２】
この第一実施例では、各ＭＰ５、１５は、自分のＬＭ７、１７にデータを書込むことに代えて又は加えて（例えば、その書込みと実質的に同時に）、複数の他のＭＰ５、１５にそれぞれ対応する複数のＬＭ７、１７にデータを書込むこと（以下、「マルチＬＭ書込み」と称することがある）ができる。
【００４３】
すなわち、例えば、ＣＨＡ３Ａ上のＭＰ５Ａが、ＬＭ７Ａにデータを書込む場合に、ＭＰ５Ａ、ＭＰＡ４Ａ及び転送制御回路６Ａのうちの少なくとも一つが、そのデータを含んだメッセージ（マルチＬＭ書込みを実行することのコマンドを含んだメッセージ、以下、マルチＬＭ書込みメッセージ）を生成してスイッチＬＳＩ３７に送信することができる。ここで、「書込む場合」とは、例えば、データを書込む前（例えば直前）、データを書込んだ後、又は、データを書込んで応答を受けた後、のうちのいずれであっても良い。
【００４４】
スイッチＬＳＩ３７が、そのマルチＬＭ書込みメッセージに従って、そのマルチＬＭ書込みメッセージに含まれるデータを、複数の他のＬＭ７Ｂ、１７Ａに書込むことができる。具体的には、例えば、スイッチＬＳＩ３７は、そのデータを含んだメッセージ（そのデータを書込むことのコマンドを含んだメッセージ、以下、通常書込みメッセージ）を生成し、ＬＭ７Ｂ及びＬＭ１７Ａをそれぞれ備えたＣＨＡ３Ｂ及びＤＫＡ１３Ａに、生成した通常書込みメッセージをそれぞれ送信することができる（マルチＬＭ書込みは、書込み先のＬＭの数が一以上であるのに対し、通常ＬＭ書込みは、書込み先のＬＭの数が一つであることを意味する）。通常書込みメッセージを受信したＣＨＡ３Ｂ（ＤＫＡ１３Ａ）では、ＭＰ５Ｂ（１５Ａ）、ＭＰＡ４Ｂ（１４Ａ）、及び転送制御回路６Ｂ（１６Ｂ）のうちの少なくとも一つが、受信された通常書込みメッセージに含まれているデータを、ＬＭ７Ｂ（１７Ａ）に書込むことができる。ＭＰ５Ｂ（１５Ａ）は、自分のＬＭ７Ｂ（１７Ａ）からデータを読出すことにより、データを取得することができる。
【００４５】
上述のことを実現するための一つの工夫として、各ＭＰ５、１５の各ＬＭ７、１７の領域を、以下のように区分しておき、そのような区分結果を表す情報（以下、「ＬＭマップ」と言う）を、そのＬＭ７、１７を備えるＣＨＡ３、ＤＫＡ１３上の記憶資源（例えば、ＭＰ５、１５内の内部レジスタ）に設定することが考えられる。
【００４６】
図２Ｂは、ＬＭ７、１７のＬＭマップの構成例を示す。図２Ｂには、図２Ａと対応させるために、ＬＭ７Ａ、７Ｂ、１７ＡのＬＭマップ７１Ａ、７１Ｂ、７３Ａを代表的に例に採り説明する。
【００４７】
ＬＭマップ７１Ａ、７１Ｂ、７３Ａは、ＬＭ７Ａ、７Ｂ、１７Ａの区分結果をそれぞれ表している。
【００４８】
この区分結果によると、ＬＭ７Ａ、７Ｂ、１７Ａの同一のアドレスが、所定のＭＰ５又は１５に割り当てられている。具体的には、例えば、ＬＭ７Ａ、７Ｂ及び１７Ａのアドレス「０」に対応する各記憶領域は、ＭＰ５Ａ用の書込み領域として割り当てられており、アドレス「１」に対応する各記憶領域は、ＭＰ５Ｂ用の書込み領域として割り当てられており、アドレス「２」に対応する各記憶領域は、ＭＰ１５Ａ用の書込み領域として割り当てられている。
【００４９】
このように、各アドレス（例えば「０」）の記憶領域は、どのＬＭ７Ａ、７Ｂ及び１７Ａでも、そのアドレスの記憶領域を割り当てられたＭＰ５、１５（例えば５Ａ）にとっては、書込み領域となる。
【００５０】
しかし、別のＭＰ５、１５（例えば５Ｂ及び１５Ａ）にとっては、その書込み領域は読出し領域となる。それにより、別のＭＰ５、１５（例えば５Ｂ及び１５Ａ）は、ＭＰ５、１５（例えば５Ａ）に割り当てられたアドレス（例えば「０」）の記憶領域からデータを読出し、故に、ＭＰ５、１５（例えば５Ａ）からのデータを取得することができる。
【００５１】
以上のようなＬＭマップは、それに対応するプロセッサが参照できるような場所（例えばプロセッサの内部レジスタ）に設定することができる。また、その場所には、上記の情報に加えて、どのアドレスにデータを書けばどのＭＰのＬＭにデータが書かれているかを表す情報も記録することができる。これにより、ＭＰ５，１５は、どの他のＭＰ５，１５にデータを送るかに応じて、自分のＬＭ７，１７の複数の書込み領域の中から、送り先のＭＰ５，１５に対応した書込み領域を選択し、選択した書込み領域にデータを書き、且つ、その選択した書込み領域のアドレスを含んだ書込みメッセージをスイッチＬＳＩ３７に送信することができる。
【００５２】
以上のように、全てのＬＭ５、１５について、各同一アドレス（オフセット等によって値そのものは違っていても、意味的に同じであればよい）の記憶領域を、一つのＭＰ５又は１５の書込み領域として割当てる。各ＭＰ５、１５については、自分のＬＭ５、１５において、自分に割り当てられているアドレス以外のアドレスに対応する記憶領域を、読出し領域として割り当てる。これにより、図２Ａに例示したようなマルチＬＭ書込みを実現することができる。
【００５３】
すなわち、例えば、ＬＭ７Ａのアドレス「０」に対応した記憶領域にＭＰ５Ａがデータを書込む場合、ＭＰ５Ａ、ＭＰＡ４Ａ及び転送制御回路６Ａのうちの少なくとも一つが、そのデータとアドレス「０」とを含んだマルチＬＭ書込みメッセージを生成してスイッチＬＳＩ３７に送信することができる。
【００５４】
スイッチＬＳＩ３７は、マルチＬＭ書込みメッセージに含まれているデータ及びアドレス「０」を含んだ通常書込みメッセージを生成し、その通常書込みメッセージを、ＣＨＡ３Ｂ及びＤＫＡ１３Ａに送信することができる。
【００５５】
その通常書込みメッセージを受信したＣＨＡ３Ｂ（ＤＫＡ１３Ａ）では、ＭＰ５Ｂ（１５Ａ）、ＭＰＡ４Ｂ（１４Ａ）、及び転送制御回路６Ｂ（１６Ｂ）のうちの少なくとも一つが、受信された通常書込みメッセージに含まれているデータを、その通常書込みメッセージに含まれるアドレス「０」の記憶領域（ＬＭ７Ｂ（１７Ａ）の記憶領域）に書込むことができる。ＭＰ５Ｂ（１５Ａ）は、自分のＬＭ７Ｂ（１７Ａ）のアドレス「０」の記憶領域からデータを読出すことにより（例えば、アドレス「０」の読出し領域をポーリングすることにより）、ＭＰ５Ａからのデータを取得することができる。
【００５６】
各ＣＨＡ３Ａ及び各ＤＫＡ１３とスイッチＬＳＩ３７とは、例えば、図３Ａに例示するような構成のメッセージを互いにやり取りすることができる。
【００５７】
図３Ａは、各ＣＨＡ３Ａ及び各ＤＫＡ１３とスイッチＬＳＩ３７と間でやり取りされるメッセージの構成例を示す。
【００５８】
参照番号２８１は、書込みを命令する場合に使用される書込みメッセージを示す。このメッセージ２８１には、アドレスを表す情報がセットされるアドレスフィールド２８１Ａと、コマンドがセットされるコマンドフィールド２８１Ｂと、書込み対象となるデータがセットされるデータフィールド２８１Ｃと、誤り訂正符号或いはエラーチェック用の符号等がセットされる符号フィールド２８１Ｄとがある。フィールド２８１Ａ〜２８１Ｄのうちの少なくとも一つは、固定長（例えば８ビット）であっても可変長であっても良い（これは、後述の各他種のフィールドについても同様である）。また、フィールド２８１Ｂにセットできるコマンドとしては、例えば、書込みであることに加えて、書込みの種別をも意味するコマンドとすることができる。書込みの種別としては、例えば、マルチＬＭ書込み（書込み先のＬＭの数は一以上なのか）と、通常書込み（書込み先のＬＭの数は一つなのか）と、ＳＭ書込みとがある。このため、例えば、マルチＬＭ書込みを意味するコマンドが含まれたメッセージ２８１は、上述したマルチＬＭ書込みメッセージであるし、通常書込みを意味するコマンドが含まれたメッセージ２８１は、上述した通常書込みメッセージである。
【００５９】
参照番号２８３は、書込みメッセージ２８１に対する書込み応答メッセージを示す。このメッセージ２８３には、ステータス（例えば、書込み成功或いは書込み失敗）を表すステータス情報がセットされるステータスフィールド２８３Ａと、誤り訂正符号等がセットされる符号フィールド２８３Ｂとがある。
【００６０】
スイッチＬＳＩ３７は、書込みメッセージ２８１を各ＣＨＡ３や各ＤＫＡ１３から受信したり、その書込みメッセージ２８１に対する応答として書込み応答メッセージ２８３を、書込みメッセージ２８１の送信元のＣＨＡ３又はＤＫＡ１３に送信したりすることができる。
【００６１】
図３Ｂは、スイッチＬＳＩ３７のハードウェア構成の一例の概要を示す。
【００６２】
スイッチＬＳＩ３７は、通信部５１と、ＳＭ３９に対するインターフェース装置（以下、ＳＭＩ／Ｆ）５４と、アドレスマップ５５を記憶するアドレスマップ記憶域（例えばレジスタ）５２と、アドレス状態記憶域５７と、キュー５９と、制御部５３とを備えることができる。
【００６３】
通信部５１は、例えば、接続部３３に対するインターフェース装置である。通信部５１は、例えば、接続部３３を介して各ＣＨＡ３、各ＤＫＡ１３からメッセージ２８１又は２８３を受信し、受信したメッセージ２８１又は２８３を制御部５３に渡すことができる。また、例えば、通信部５１は、制御部５３からメッセージ２８１又は２８３を受信し、受信したメッセージ２８１又は２８３を、接続部３３を介して各ＣＨＡ３、各ＤＫＡ１３に送信することもできる。
【００６４】
アドレスマップ５５について、図４を参照して説明する。アドレスマップ５５には、ＬＭ７、１７のどのアドレスが指定された場合にどのＬＭのどこにデータを書込むかが記録されている。例えば、アドレスマップ５５には、各アドレス毎に、データの送り先を表す送り先情報が対応付けられている。送り先情報は、例えば、複数のＭＰ５、１５にそれぞれ対応した複数の送信有無フラグ（データを送るか否かを表すフラグ）を含んでいる。また、アドレスマップ５５には、各ＭＰ５、１５毎に、どのＣＨＡ３或いはＤＫＡ１３に搭載されているＭＰであるかを表す情報も記録されている。このようなアドレスマップ５５と、各ＣＨＡ３、ＤＫＡ１３に設定されている上述したＬＭマップ７１Ａ〜７１Ｃ（図２Ｂ参照）とにより、マルチＬＭ書込みを実行することができる（具体的な処理流れについては、後に説明する）。
【００６５】
再び図３Ｂを参照する。アドレス状態記憶域５７は、ＬＭ７，１７のどのアドレスがどんな状態であるかを記憶することができる。具体的には、例えば、アドレス状態記憶域５７は、ＬＭ７，１７のアドレス（以下、「ＬＭアドレス」ということがある）のどれがロックオン状態か（換言すれば、排他がとられている最中か）を記憶することができる。これは、例えば、ロックオン状態か否かを表すためのフラグを各ＬＭアドレス毎に用意するか、或いは、ロックオン状態のＬＭアドレスを記憶することにより、実現することができる。
【００６６】
キュー５９は、未処理のマルチＬＭ書込みメッセージを記憶することができる。
【００６７】
制御部５３は、スイッチＬＳＩ３７の動作を制御することができる。制御部５３は、ハードウェア、コンピュータプログラム或いはそれらの組み合わせ（例えば、ＣＰＵ）により実現することができる。制御部５３は、通信部５１を介して、ＣＨＡ３やＤＫＡ１３から発行された書込みメッセージ２８１を受信する。制御部５３は、受信した書込みメッセージ２８１に含まれているコマンドを解釈することにより、その書込みメッセージ２８１が、マルチＬＭ書込みメッセージ、通常ＬＭ書込みメッセージ或いはＳＭ書込みメッセージのいずれであるかを判断することができる。制御部５３は、通常ＬＭ書込みメッセージであると判断した場合、その通常ＬＭ書込みメッセージから特定される宛先（例えば、アドレス或いはＭＰ番号等から特定されるＭＰ）を有したＣＨＡ３或いはＤＡＫ１３に、通常ＬＭ書込みメッセージ中のデータを含んだ書込みメッセージ２８１を送信することができる。制御部５３は、ＳＭ書込みメッセージであると判断した場合、そのＳＭ書込みメッセージ中のデータを、ＳＭＩ／５４を介してＳＭ３９に書き込むことができる。制御部５３は、通常ＬＭ書込みメッセージであると判断した場合、図５に例示する処理を実行することができる。
【００６８】
図５は、受信した書込みメッセージがマルチＬＭ書込みメッセージであると判断した場合に制御部５３が行う処理の流れの一例を示す。
【００６９】
制御部５３は、アドレス状態記憶域５７を参照することにより、マルチＬＭ書込みメッセージ中のＬＭアドレスがロックオン状態か否かを判断する（ステップＳ２０）。
【００７０】
ＬＭアドレスがロックオン状態であるということは、マルチＬＭ書込みメッセージ中のＬＭアドレスは排他中であり、それ故、そのマルチＬＭ書込みメッセージを処理できないことを意味する。そのため、Ｓ２０において、ロックオン状態であると判断された場合（Ｓ２０でＹＥＳ）、制御部５３は、そのマルチＬＭ書込みメッセージをキュー５９に蓄積する（Ｓ６０）。その後、制御部５３は、アドレス状態記憶域５７を参照することにより、キュー５９に蓄積されているマルチＬＭ書込みメッセージ中のＬＭアドレスがロックオン可能になったか否かの判断を行う（Ｓ７０）。制御部５３は、ロックオン可能になったと判断された場合には（Ｓ７０でＹＥＳ）、そう判断されたマルチＬＭ書込みメッセージについて、後述するＳ３０の処理を行い、ロックオン可能になっていないと判断された場合には（Ｓ７０でＮＯ）、再びＳ２０の処理を行う。
【００７１】
Ｓ２０において、ロックオン状態でないと判断された場合（Ｓ２０でＮＯ）、制御部５３は、処理対象のマルチＬＭ書込みメッセージ中のＬＭアドレスがロックオンであることをアドレス状態記憶域５７に書き込む（Ｓ３０）。
【００７２】
そして、制御部５３は、そのマルチＬＭ書込みメッセージの処理を行う（Ｓ４０）。具体的には、制御部５３は、アドレスマップ５５を参照して、処理対象のマルチＬＭ書込みメッセージ中のＬＭアドレスに対応する送り先ＭＰ５，１５を特定し、特定された各送り先ＭＰ５，１５毎に、そのＬＭアドレスを含んだ書込みメッセージを生成して送信することができる。
【００７３】
Ｓ４０の後、制御部５３は、そのＬＭアドレスについてロックオフを行う（Ｓ５０）。例えば、制御部５３は、アドレス状態記憶域５７にアクセスして、そのＬＭアドレスのロックオン状態を解除する。
【００７４】
以上が、受信した書込みメッセージがマルチＬＭ書込みメッセージであると判断した場合に制御部５３が行う処理の流れの一例である。
【００７５】
ところで、既に説明したように、制御部５３は、各ＬＭアドレスについて、排他処理を行うことができる。それにより、各ＬＭアドレスに書かれたデータについての順序性を保証することができる。換言すれば、後に発行されたデータが先に発行されたデータよりも先にＬＭアドレスの領域に書かれてしまうことを防ぐことができる。
【００７６】
以下、図６Ａを参照して、ＬＭアドレスの排他処理の一例を説明する。
【００７７】
ＭＰ５Ａは、自分のＬＭ７Ａの或る読出し領域６２Ｂからデータを読み出す場合（具体的には、例えば、その読出し領域６２Ｂにデータが書き込まれたことを検出したとき）、スイッチＬＳＩ３７に、その読出し領域６２ＢのＬＭアドレスについてロックオンを要求することができる。
【００７８】
スイッチＬＳＩ３７の制御部５３は、その要求に応答して、アドレス状態記憶域５７を参照し、そのＬＭアドレスをロックオンできるか否かを判断し、ロックオンできたか否かの通知を、ロックオンの要求元であるＭＰ５Ａに通知することができる。
【００７９】
ＭＰ５Ａは、ロックオンしたことの通知を受けた場合、読出し領域６２Ｂからデータを読み出すことができる（ロックオンできなかったことの通知を受けた場合、ＭＰ５Ａは、データの読み出しを行わず、再び、ロックオンすることの要求を出すことができる）。また、その後、ＭＰ５Ａは、自分のＬＭ７Ａの書込み領域６２Ａにデータを書き込み、且つ、その書込み領域６２Ａのアドレスとそのデータとを含んだマルチＬＭ書込みメッセージをスイッチＬＳＩ３７に送信することができる。スイッチＬＳＩ３７の制御部５３は、マルチＬＭ書込みメッセージを受信した場合、図５を参照して説明したＳ２０以降の処理を実行することができる。なお、その際、制御部５３は、例えば、（１）送り先ＭＰに書込みメッセージを送信したとき、（２）送り元ＭＰからロックオフの要求を受信したとき、（３）送信した書込みメッセージに対する応答を送り先ＭＰから受信したとき、の（１）〜（３）のいずれかのタイミングで、ＬＭアドレスのロックオフを行うことができる。
【００８０】
このように、各ＬＭアドレスからデータを読み出す場合に、そのＬＭアドレスがロックオン状態にされるので、そのデータを読出す前に、他のデータによって上書きされてしまうことを防止することができる。
【００８１】
マルチＬＭ書込みメッセージが送信され、そのメッセージに従って、複数の送り先に書込みメッセージが送信された場合、スイッチＬＳＩ３７や送り先ＭＰは、以下に例示するようにして応答を返すことができる。以下、送り元ＭＰをＭＰ５Ａとし、送り先ＭＰをＭＰ５Ｂ、ＭＰ１５Ａとして、図６Ｂを参照して説明する。
【００８２】
スイッチＬＳＩ３７が、マルチＬＭ書込みメッセージをＭＰ５Ａから受信し、送り先ＭＰ５Ｂ、１５Ａにそれぞれ書込みメッセージを送信した場合に、応答を、ＭＰ５Ａに送信する。送り先ＭＰ５Ｂ、１５Ａは、スイッチＬＳＩ３７からの書込みメッセージに対する応答をスイッチＬＳＩ３７に返さない。
【００８３】
このようにすることで、ＭＰ５ＡがマルチＬＭ書込みメッセージを送信してから応答を受信するまでの時間をなるべく短くすることができる。これは、コネクション型のやり取り（換言すれば、送信してから応答を受けるまでパスが占有される方式での通信）で有効であると考えられる。
【００８４】
以上が、本発明の一実施形態の第一実施例についての説明である。なお、この第一実施例では、例えば以下のことも行える。
【００８５】
すなわち、図７Ａに例示するように、マルチＬＭ書込みメッセージ中のデータの送り先を、グループ単位に区別することができる。
【００８６】
具体的には、例えば、図４に例示したアドレスマップ５５のＬＭアドレスのＮｏ．「１３」〜「１６」のように、全てのＤＫＡ１２に存在する全てのＭＰ１５を送り先としてアドレスマップ５５に設定しておくことにより（換言すれば、送り先をＤＫＡグループとしたＬＭアドレスを用意することにより）、Ｎｏ．「１３」〜「１６」のいずれかのＬＭアドレスにデータが書込まれた場合、そのデータを、図７Ａに例示するように、全てのＤＫＡ１３の全てのＭＰ１５のＬＭ１７に書込むことができる。ここで、Ｎｏ．「１３」〜「１６」の各ＬＭアドレスを、ＤＫＡ１５上のＭＰ１５に割当てておくことにより、ＤＡＫ１５間でデータを送受信することができる。
【００８７】
同様に、例えば、図４に例示したアドレスマップ５５のＬＭアドレスのＮｏ．「９」〜「１２」のように、全てのＣＨＡ３に存在する全てのＭＰ５を送り先としてアドレスマップ５５に設定しておくことにより、Ｎｏ．「９」〜「１２」のいずれかのＬＭアドレスにデータが書込まれた場合、そのデータを、全てのＣＨＡ３の全てのＭＰ５のＬＭ７に書込むことができる。
【００８８】
このように、アドレスマップ５５上での送り先の設定の仕方で、マルチＬＭ書込みメッセージ中のデータの送り先をグループ単位とすることができる。グループとしては、複数のＣＨＡ３の複数のＭＰ５、複数のＤＫＡ１３の複数のＭＰ１５に限らず、例えば、クラスタを構成する複数のＭＰ、オープンシステムである複数のＭＰ、メインフレームである複数のＭＰ、所定のコピー処理（例えば、他のストレージシステムへのリモートコピーを行う処理）を行う複数のＭＰ、ホスト装置３１に接続されていない比較的暇な複数のＭＰ（ＣＨＡ３上のＭＰ）、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）レベルに基づくパリティデータの生成を行う複数のＭＰ（ＤＫＡ１３上のＭＰ）等とすることができる。
【００８９】
図７Ｂに例示するように、スイッチＬＳＩ３７が、マルチＬＭ書込みメッセージ（或いは通常書込みメッセージ）に含まれるデータをＳＭ３９にも書込むことができる（つまりバックアップをとることができる）。具体的には、例えば、スイッチＬＳＩ３７は、マルチＬＭ書込みメッセージ（或いは通常書込みメッセージ）にバックアップ命令が含まれている場合、そのマルチＬＭ書込みメッセージ（或いは通常書込みメッセージ）に含まれるデータをＳＭ３９に書込むことができる。また、例えば、スイッチＬＳＩ３７は、バックアップをとることが予め設定されている場合に、全てのマルチＬＭ書込みメッセージ（或いは全ての通常書込みメッセージ）に含まれるデータをＳＭ３９に書込むことができる。
【００９０】
また、スイッチＬＳＩ３７は、ＳＭ３９に書込まれているデータのうち、マルチＬＭ書込みメッセージ（或いは通常書込みメッセージ）に含まれるデータを、所定のタイミングで削除することができる。具体的には、例えば、スイッチＬＳＩ３７は、データのバックアップを残すためのＳＭ３９上の領域が満杯になったときに、最も古いデータを削除することができる。また、例えば、スイッチＬＳＩ３７は、送り先ＭＰに送った書込みメッセージに対する応答を受けたとき、或いは、マルチＬＭ書込みメッセージ（或いは通常書込みメッセージ）に対する応答を返したときに、その応答に関わる書込みメッセージ中のデータをＳＭ３９から削除することができる。また、例えば、スイッチＬＳＩ３７は、或るＬＭアドレスについて、次にそのＬＭアドレスに書込むべきデータを新たに受けた場合には、直前回に書かれたデータをＳＭ３９から削除し、その新たに受けたデータを書込むことができる。
【００９１】
このように、ＳＭ３９（特にそれの所定領域）にバックアップを取ることで、例えば、送り先のＭＰ５，１５のＬＭ７，１７にデータが書かれる前に障害が発生した等の場合には、各ＭＰ５，１５は、ＳＭ３９に蓄積されているバックアップデータを取得することで、障害復旧を行うことができる。
【００９２】
図７Ｃに例示するように、アドレスマップ記憶域５２には、書込みメッセージの送り元（例えばＭＰ）毎のアドレスマップ５５Ａ、５５Ｂ、…を記憶させておくことができる。これにより、送り先を送り元が誰であるかに応じて違えることができる。具体的には、例えば、書込みメッセージの送り元が誰かに応じて、同じＬＭアドレスにデータが書かれた場合であっても、そのデータの送り先を違えることができる。
【００９３】
以上、上述した第一実施例によれば、或るＭＰ５，１５が自分のＬＭ７，１７の書込み領域にデータを書込んだ場合に、その書込み領域のＬＭアドレスとそのデータとを含んだマルチＬＭ書込みメッセージがスイッチＬＳＩ３７に送信され、スイッチＬＳＩ３７が、そのＬＭアドレスに対応付けられた複数の送り先に、そのデータを含んだ書込みメッセージを送信し、それにより、複数の送り先での複数のＬＭ７，１７の同じＬＭアドレスの領域に、同じデータを書込むことができる。各送り先でのＭＰ５，１５は、自分のＬＭ７，１７の読出し領域を参照することで、送り元から送信されたデータを取得することができる。これにより、複数のＭＰ５，１５は、送り元からのデータを取得するためにＳＭ３９までアクセスする必要がなくなるので、複数のＭＰ５、１５による処理性能が低下してしまうことを抑えることができる。
【実施例２】
【００９４】
以下、本発明の一実施形態の第二実施例について説明する。なお、以下、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略或いは簡略する。
【００９５】
上述した第一実施例は、各ＭＰ５，１５とスイッチＬＳＩとの間の通信がコネクション型の通信であったのに対し、この第二実施例は、コネクションレス型の通信である。コネクションレス型の通信は、例えば、送信用のパスと受信用のパスとを分けた二重化転送を行うことにより、実現することができる。
【００９６】
図８は、本発明の一実施形態の第二実施例におけるＣＨＡ１０３（又はＤＫＡ１１３）と接続部１３３との間のパス構成を示す。
【００９７】
各ＣＨＡ１０３（又はＤＫＡ１１３）と接続部１３３とは、一以上の第一パス６０４と、一以上の第二パス６０６とによって接続される。
【００９８】
ＣＨＡ１０３（又はＤＫＡ１１３）のＭＰＡ１８６には、第一のパス６０４に接続される送信部（以下、ＴＸ部）１８５と、第二パス６０６に接続される受信部（以下、ＲＸ部）１８７と、ＴＸ部１８５及び受信部１８７とＭＰ側（例えば、ＭＰ１０５（又は１１５）や転送制御回路を含んだ部分）との間に介在するデータ制御部１８４とが備えられる。ＴＸ部１８５は、データ制御部１８４を介してＭＰ１０５（又は１１５）側からのデータを受信し、受信したデータを第一のパス６０４を通じて送信することができる。ＲＸ部１８７は、接続部１３３から第二パス６０６を通じて受信したデータをデータ制御部１８４を介してＭＰ側に送信することができる。ＴＸ部１８５及びＲＸ部１８７は、例えば、各ＭＰの各ＬＭ毎に備えることができる。
【００９９】
接続部１３４は、各ＣＨＡ１０３やＤＫＡ１１３毎に、第一パス６０４に接続されるＲＸ部１８１と、第二パス６０６に接続されるＴＸ部１８３とを備えることができる。また、接続部１３４は、各ＲＸ部１８１や各ＴＸ部１８３に接続されたスイッチ部１３４を備えることもできる。スイッチ部１３４は、ＲＸ部１８１からデータを受けたり、ＲＸ部１８１から受けたデータを、そのデータの宛先にそのデータを送信することができるＴＸ部１８３にそのデータを渡したりすることができる。
【０１００】
図９は、接続部１３３のＲＸ部１８１及びＴＸ部１８３の構成例を示す。なお、ＲＸ部１８１の構成例は、ＣＨＡ１０３（又はＤＫＡ１１３）のＲＸ部１８７に適用することができ、ＴＸ部１８３の構成例は、ＣＨＡ１０３（又はＤＫＡ１１３）のＴＸ部１８５に適用することができる。
【０１０１】
ＲＸ部１８１は、シリアルデータを受信して下流側に出力するシリアルインターフェース受信回路２０１と、出力されたシリアルデータを受けてパラレルデータに変換し出力するＳＰ変換回路２０３と、出力されたパラレルデータ（データパケット）を受けるパケット制御回路２０５と、受信バッファ２０７とを備えることができる。パケット制御回路２０５は、受信したパラレルデータを受信バッファ２０７に蓄積したり、受信バッファ２０７が満杯であれば、その旨を表す満杯通知（例えば、受信したパラレルデータそれ自体）を、ＴＸ部１８３のパケット制御回路２１５に渡したりすることができる。
【０１０２】
ＴＸ部１８３は、スイッチ部１３４からのパラレルデータを蓄積する送信バッファ２１７と、送信バッファ２１７に蓄積されているパラレルデータ（又はＲＸ部１８１から渡された満杯通知）を受けて出力するパケット制御回路２１５と、パケット制御回路２１５から出力されたパラレルデータをシリアルデータに変換して出力するＰＳ変換回路２１３と、ＰＳ変換回路２１３から出力されたシリアルデータを受けてＣＨＡ１０３（又はＤＫＡ１１３）に送信するシリアルインターフェース送信回路２１１とを備えることができる。
【０１０３】
図１０は、本発明の一実施形態の第二実施例におけるスイッチＬＳＩ１３７の構成例を示す。
【０１０４】
この第二実施例では、制御回路１５３と接続部１３３との間には、複数のＲＸ部１５１Ａ、１５１Ｂ…と、複数のＴＸ部１５８Ａ、１５８Ｂ、…とが備えられる。各ＲＸ部１５１の構成には、ＲＸ部１８１の構成例を適用することができる。各ＴＸ部１５８の構成には、ＴＸ部１８３の構成例を適用することができる。
【０１０５】
ＲＸ部１５１及びＴＸ部１５８は、各ＭＰの各ＬＭ毎に備えることができる。また、例えば、各ＲＸ部１５１のＩＤ（例えば番号）と、各ＴＸ部１５８のＩＤと、各ＭＰとの対応関係を表す送受信マップ６０８をアドレスマップ記憶域５２等の記憶資源に記憶させておくことができる。これにより、例えば、制御部１５３は、どのＲＸ部１５１を介して書込みメッセージを受信したかにより、その書込みメッセージがどのＭＰからの書込みメッセージであるかを特定したり、どのＭＰに書込みメッセージを送信する場合にはどのＴＸ部１５８を介して書込みメッセージを送信すれば良いか等を特定することができる。具体的には、例えば、制御部１５３は、マルチＬＭ書込みメッセージを受信し、そのマルチＬＭ書込みメッセージに含まれているＬＭアドレスに対応する複数の送り先ＭＰをアドレスマップ５５から特定した場合、上記送受信マップ６０８を参照して、複数の送り先ＭＰに対応した複数のＴＸ部１５８を特定し、特定された複数のＴＸ部１５８から、マルチＬＭ書込みメッセージ中のデータを含んだ書込みメッセージを送信することができる。
【０１０６】
この第二実施例では、スイッチＬＳＩ１３７は、以下の応答方式で、マルチＬＭ書込みメッセージの送り元ＭＰに応答を返すことができる。なお、以下の説明では、送り元ＭＰをＭＰ１０５Ａとし、送り先ＭＰをＭＰ１０５Ｂ及びＭＰ１１５Ａとする。
【０１０７】
図１１Ａは、第一の応答方式の説明図である。
【０１０８】
スイッチＬＳＩ１３７が、ＭＰ１０５ＡからのマルチＬＭ書込みメッセージに従ってＭＰ１０５Ｂ及びＭＰ１１５Ａに書込みメッセージを送信した場合、ＭＰ１０５Ｂ及びＭＰ１１５Ａから応答を受信する。この応答は、例えば、送り先ＭＰ１０５Ｂ、１１５ＡのＭＰＡが書込みメッセージを受信したときのものとすることができる。
【０１０９】
この第一の応答方式では、スイッチＬＳＩ１３７は、送り先ＭＰ１０５Ｂ及び１１５Ａからそれぞれ応答を受信する都度に、ＭＰ１０５Ａに応答を返すことができる。これにより、送り元ＭＰ１０５Ａに対して、送り先にデータが届いたことを保証することができる。
【０１１０】
図１１Ｂは、第二の応答方式の説明図である。
【０１１１】
この第二の応答方式では、スイッチＬＳＩ１３７は、全ての送り先ＭＰ１０５Ｂ及び１１５Ａにそれぞれ対応した全ての応答を受信したときに（例えば全ての応答が所定のバッファに蓄積されたことを認識したときに）、送り元ＭＰ１０５Ａに応答を返すことができる。これにより、送り元ＭＰ１０５Ａに対して、送り先にデータが届いたことを保証することができる。また、全ての送り先からの全ての応答に対して送り元ＭＰ１０５Ａに返す応答は一回なので、送り元ＭＰ１０５ＡとスイッチＬＳＩ１３７との間のパスの占有率を抑えることもできる。
【０１１２】
図１１Ｃは、第三の応答方式の説明図である。
【０１１３】
この第三の応答方式によれば、各送り先ＭＰ１０５Ｂ、１１５ＡからスイッチＬＳＩ１３７に対する応答は、それのＬＭ１０７Ｂ、１１７Ａにデータが書かれた確認できた場合に返される。スイッチＬＳＩ１３７は、送り先ＭＰ１０５Ｂ及び１１５Ａからそれぞれ応答を受信する都度に、ＭＰ１０５Ａに応答を返すことができる。これらのことにより、送り元ＭＰ１０５Ａに対して、送り先のＬＭにデータが書かれたことを保証することができる。
【０１１４】
図１１Ｄは、第四の応答方式の説明図である。
【０１１５】
この第四の応答方式では、上記第三の応答方式において、スイッチＬＳＩ１３７は、全ての送り先ＭＰ１０５Ｂ及び１１５Ａにそれぞれ対応した全ての応答を受信したときに、送り元ＭＰ１０５Ａに応答を返すことができる。これにより、送り元ＭＰ１０５Ａに対して、送り先のＬＭにデータが書かれたことを保証することができ、且つ、全ての送り先からの全ての応答に対して送り元ＭＰ１０５Ａに返す応答は一回なので、送り元ＭＰ１０５ＡとスイッチＬＳＩ１３７との間のパスの占有率を抑えることもできる。
【０１１６】
以上の第一〜第四の応答方式のうち、この第二の実施例では、第二の応答方式或いは第四の応答方式がより好ましいと考えられる。また、第一〜第四の応答方式の少なくとも一つは、第一の実施例に適用されても良い。また、この第二実施例では、スイッチＬＳＩ１３７は、第一〜第四の応答方式と第一実施例で説明した応答方式とのうちどの応答方式を採用するかを、動的に変更することができる。例えば、スイッチＬＳＩ１３７は、図１２に例示するように、或る種の情報が入力された場合、その情報に基づいて、複数の応答方式のいずれかを選択することができる。入力される情報としては、例えば、データの重要度、パスの占有率及びレスポンス時間長といった複数の要素うちの少なくとも一つや、複数の要素の優先度等とすることができる。或いは、その入力される情報中の少なくとも一つの情報要素は、マルチＬＭ書込みメッセージに含めることもできる。スイッチＬＳＩ１３７は、入力された情報により、例えば、データの信頼性はどうでも良く、パケット占有率及びレスポンス時間長を第三のレベル（第一、第二のレベルの方が高い）で優先すると判断された場合には、第一実施例の応答方式を選択することができる。また、例えば、スイッチＬＳＩ１３７は、入力された情報により、データの信頼性を第二のレベルで優先し、パケット占有率はどうでも良く、レスポンス時間長を第三のレベルで優先すると判断された場合には、第一の応答方式を選択することができる。また、スイッチＬＳＩ１３７は、入力された情報により、データの信頼性を第二のレベルで優先し、パケット占有率及びレスポンス時間長を第三のレベルで優先すると判断された場合には、第二の応答方式を選択することができる。また、スイッチＬＳＩ１３７は、入力された情報により、データの信頼性を第一のレベルで優先し、パケット占有率及びレスポンス時間長はどうでも良いと判断された場合には、第三の応答方式を選択することができる。また、スイッチＬＳＩ１３７は、入力された情報により、データの信頼性を第一のレベルで優先し、パケット占有率を第二のレベルで優先し、レスポンス時間長はどうでも良いと判断した場合には、第四の応答方式を選択することができる。以上のような選択を行うことにより、データの信頼性とスループットの高さとの両方をバランス良く満たすことが図れる。
【０１１７】
この第二の実施例によれば、送信と受信とにパスが分けられているので、マルチＬＭ書込みのスループットを高めることができる。
【実施例３】
【０１１８】
図１３Ａは、本発明の一実施形態に係る第三の実施例におけるＣＨＡ４０３（又はＤＫＡ４１３）の構成例を示す。
【０１１９】
上記第一実施例及び第二実施例では、各ＭＰが自分のＬＭの書込み領域にデータを書くことで、そのデータを含んだマルチＬＭ書込みメッセージが作成されて送信されるが、この第三実施例では、自分のＬＭだけにデータを書く、自分のＬＭと複数の他のＬＭにデータを書く、自分のＬＭにはデータを書かずに複数の他のＬＭにデータを書く、等の複数の書込み方式を選択的に行うことができる。
【０１２０】
ＣＨＡ４０３（又はＤＫＡ４１３）は、プロセッサ４０５と、パス制御部４１２とを備えることができる。
【０１２１】
プロセッサ４０５には、ＭＰコア４０６、内蔵ＬＭ４０７、アドレスデコード回路４０８及び外付けＬＭ４０９などを備えることができる。パス制御部４１２は、メモリ４１３等を備えることができる。
【０１２２】
ここで、アドレスデコード回路４０８には、図１３Ｂに例示するように、複数の指定値にそれぞれ対応した複数のアクセス先データを含む指定値アクセス先マップ４１５が設定されている。ここで、「指定値」とは、例えば、ＭＰコア４０６によって指定されたデータの書込み先アドレスとすることができる。また、「アクセス先データ」とは、一又は複数のアクセス先の記憶域を特定するためのデータとすることができる。一又は複数のアクセス先としては、例えば、内蔵ＬＭ４０７、外付けＬＭ４０９、メモリ４１３、ＳＭ３９及び他のＣＨＡ４０３又はＤＫＡ４１３上のＬＭ４０７のうちの少なくとも一つとすることができる。
【０１２３】
アドレスデコード回路４０８は、ＭＰコア４０６から指定値を含んだ命令を受け、その命令に含まれる指定値に対応したアクセス先データを指定値アクセス先マップ４１５から特定し、特定されたアクセス先データが表す一又は複数のアクセス先に、データを書くことができる。具体的には、例えば、ＭＰコア４０６からの一度の命令により、内蔵ＬＭ４０７、外付けＬＭ４０９、メモリ４１３、ＳＭ３９及び他のＣＨＡ４０３又はＤＫＡ４１３上のＬＭ４０７のうちの少なくとも一つにデータを書くことができる。
【実施例４】
【０１２４】
第一〜第三実施例では、マルチＬＭ書込みについて説明したが、この第四実施例では、マルチＬＭ読出しを実行することができる。マルチＬＭ読出しは、例えば、マルチＬＭ書込みの「書込み」を「読出し」と読み替えることで実現することもできるであろうが、別法として以下のような方法で実現することも可能である。
【０１２５】
図１４Ａは、本発明の一実施形態の第四実施例で行われるマルチＬＭ読出しの説明図である。
【０１２６】
ＣＨＡ５０３（又はＤＫＡ）のＭＰＡ５８３に、ダイレクトメモリアクセスを行うＤＭＡ処理部５８１を備えることができる。また、各ＭＰ５０５Ａ〜５０５Ｄ（５０５Ｂ〜５０５Ｄは便宜上図示せず）のＬＭ５０７Ａ〜５０７Ｄには、他のＭＰ毎に、その他のＭＰから発行されたデータを記録するための領域を設けておくことができる。また、各ＭＰ５０５Ａ〜５０５ＤのＬＭ５０７Ａ〜５０７Ｄには、各送り先ＭＰ毎に、その送り先ＭＰに対するデータを記録するための領域を設けておくことができる。
【０１２７】
スイッチＬＳＩ５３７は、制御部５５３がアクセス可能な記憶域であって、図１４Ｂに例示する読出しマップ５９２を記憶することができる読出しマップ記憶域５９１を備えることができる。読出しマップ５９２は、例えば、各ＭＰ毎に用意されている。例えば、ＭＰ５０５Ａ用の読出しマップ５９２には、どの領域ＩＤ（例えばＬＭアドレス）が指定された場合に、どの他のＭＰ５０５Ｂ〜５０５ＤのＬＭからデータを読出すかが記録されている。また、ＭＰ５０５Ａ用の読出しマップ５９２には、各他のＭＰ５０５Ｂ〜５０５Ｄ毎に、ＭＰ５０５ＡのＬＭ５０７Ａのどこに他のＭＰからのデータを書けば良いかの情報（例えばＬＭアドレス等の領域ＩＤ）も記録することができる。
【０１２８】
この構成の下で、以下のようにしてマルチＬＭ読み出しを実行することができる。
【０１２９】
具体的には、例えば、ＭＰ５０５Ａは、他のＭＰ５０５Ｂ〜５０５ＤのＬＭからデータを読出す場合には、領域ＩＤ「Ａ」をＤＭＡ処理部５８１に対して指定することができる。ＤＭＡ処理部５８１は、指定された領域ＩＤ「Ａ」（アドレス）と、マルチＬＭ読出しであることを意味するコマンドとを含んだマルチＬＭ読出しメッセージをスイッチＬＳＩ５３７に送信することができる。
【０１３０】
スイッチＬＳＩ５３７は、マルチＬＭ読出しメッセージに含まれているアドレス（領域ＩＤ）に対応したアクセス先ＭＰ５０５Ｂ〜５０５Ｄを、ＭＰ５０５Ａに対応した読出しマップを参照することにより特定し、特定されたアクセス先ＭＰ５０５Ｂ〜５０５ＤのＬＭ５０７Ｂ〜５０５ＤにおけるＭＰ５０５Ａ用の領域から、データを読出すことができる。スイッチＬＳＩ５３７は、読出された各データ毎に、そのデータの記録先の領域ＩＤとそのデータとを含んだ応答メッセージ２８４を生成し、各応答メッセージをＣＨＡ５０３に送信することができる。
【０１３１】
ＣＨＡ５０３のＤＭＡ処理部５８１は、各応答メッセージを受信する都度に、その応答メッセージに含まれている領域ＩＤに対応するＬＭ５０７Ａ上の領域に、その応答メッセージに含まれているデータを書込むことができる。
【０１３２】
その後、ＭＰ５０５Ａは、他のＭＰ用の領域にアクセスすることで、その領域に記録されているデータを取得することができる。
【０１３３】
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１３４】
例えば、各ＭＰが自分のＬＭの読出し領域をポーリングすることでデータを読出すことに代えて、そのＬＭの或るＬＭアドレスに対応した読出し領域にデータが書かれたときに、そのＬＭに対応するＭＰに、そのＬＭアドレスに対応した割り込みが発行されても良い。ＭＰは、割り込みに応答して、その割り込みに対応するＬＭアドレスの読出し領域からデータを読出しても良い。
【０１３５】
また、例えば、図１５に例示するように、データの送り先のＭＰ５Ｂは、データの送り先ＭＰ５Ａに、データを複数回数（例えば四回）受け取った段階で応答（例えば何回受け取ったか）を返すようにすることもできる。具体的には、例えば、送り先のＭＰ５Ｂは、マイクロ制御の区切りを検出したとき（例えば所定の段階まで処理を終えたとき）、ＭＰ５Ａからデータを所定回数受け取ったことを検出したとき、又は所定のＬＭアドレスを検出したとき（例えば所定のＬＭアドレスまで読み出しが完了したとき）、応答を返すことができる。また、スイッチＬＳＩは、この応答方式と、図６Ｂを参照して説明した応答方式と、図１１Ａ〜図１１Ｄを参照して説明した応答方式とのうちのどの応答方式を採用するかを、図１２を参照して説明した方法と同様の方法で選択することもできる。
【０１３６】
また、例えば、ＳＭ３９、ＣＭ４１及びスイッチＬＳＩ３７のうちの少なくともスイッチＬＳＩ３７を、接続部３３に搭載することができる。別の言い方をすれば、例えば、スイッチＬＳＩ３７に、接続部３３の動作を行わせることができる。また別の言い方をすれば、接続部３３に、スイッチＬＳＩ３７が行う処理を行わせることができる。その場合のストレージシステム２００の構成例を図１６に示す。
【図面の簡単な説明】
【０１３７】
【図１】図１は、本発明の第一実施例に係るシステムのハードウェア構成の一例の概要を示す。
【図２】図２Ａは、本発明の第一実施例で行われる一つの処理の概要を示す。図２Ｂは、ＬＭ７、１７のＬＭマップの構成例を示す。
【図３】図３Ａは、各ＣＨＡ３Ａ及び各ＤＫＡ１３とスイッチＬＳＩ３７と間でやり取りされるメッセージの構成例を示す。図３Ｂは、スイッチＬＳＩ３７のハードウェア構成の一例の概要を示す。
【図４】図４は、アドレスマップ５５の構成例を示す。
【図５】図５は、受信した書込みメッセージがマルチＬＭ書込みメッセージであると判断した場合に制御部５３が行う処理の流れの一例を示す。
【図６】図６Ａは、ＬＭアドレスの排他処理の一例の説明をするための図である。図６Ｂは、スイッチＬＳＩ３７が送り先ＭＰに対して行う応答方式の一例の説明図である。
【図７】図７Ａは、マルチＬＭ書込み処理での書込み先をグループ単位とすることができることを説明するための図である。図７Ｂは、マルチＬＭ書込みの対象となるデータをＳＭ３９にも書き込めることを説明するための図である。図７Ｃは、送信元毎に用意されたアドレスマップの一例を示す。
【図８】図８は、本発明の一実施形態の第二実施例におけるＣＨＡ１０３（又はＤＫＡ１１３）と接続部１３３との間のパス構成を示す。
【図９】図９は、接続部１３３のＲＸ部１８１及びＴＸ部１８３の構成例を示す。
【図１０】図１０は、本発明の一実施形態の第二実施例におけるスイッチＬＳＩ１３７の構成例を示す。
【図１１】図１１Ａは、第一の応答方式の説明図である。図１１Ｂは、第二の応答方式の説明図である。図１１Ｃは、第三の応答方式の説明図である。図１１Ｄは、第四の応答方式の説明図である。
【図１２】図１２は、複数の応答方式を選択することができることを説明するための図である。
【図１３】図１３Ａは、本発明の一実施形態に係る第三の実施例におけるＣＨＡ４０３（又はＤＫＡ４１３）の構成例を示す。図１３Ｂは、指定値アクセス先マップ４１５の構成例を示す。
【図１４】図１４Ａは、本発明の一実施形態の第四実施例で行われるマルチＬＭ読出しの説明図である。図１４Ｄは、読出しマップ５９２の構成例を示す。
【図１５】図１５は、送り先ＭＰが採用することのできる応答方式の一例を示す。
【図１６】図１６は、別のストレージシステム２００の構成例を示す。
【符号の説明】
【０１３８】
２、１２…ポート  ３…チャネルアダプタ（ＣＨＡ）  ４、１４…マイクロプロセッサアダプタ（ＭＰＡ）  ５、１５…マイクロプロセッサ（ＭＰ）  ６、１６…転送制御回路  ７、１７…ローカルメモリ（ＬＭ）  １３…ディスクアダプタ（ＤＫＡ）  ２０…ストレージシステム２０…ストレージ  ３１…ホスト装置  ３２…通信ネットワーク  ３３…接続部  ３５…共有メモリパッケージ  ３７…スイッチＬＳＩ  ３９…共有メモリ（ＳＭ）  ４１…キャッシュメモリ（ＣＭ）  ７１、７３…ローカルメモリマップ（ＬＭマップ）
【図１】
2006285778.tif 000003
【図２】
2006285778.tif 000004
【図３】
2006285778.tif 000005
【図４】
2006285778.tif 000006
【図５】
2006285778.tif 000007
【図６】
2006285778.tif 000008
【図７】
2006285778.tif 000009
【図８】
2006285778.tif 000010
【図９】
2006285778.tif 000011
【図１０】
2006285778.tif 000012
【図１１】
2006285778.tif 000013
【図１２】
2006285778.tif 000014
【図１３】
2006285778.tif 000015
【図１４】
2006285778.tif 000016
【図１５】
2006285778.tif 000017
【図１６】
2006285778.tif 000018