(57)【要約】改善されたデータストレージシステムが、ストレージデバイスのセットと、第１のストレージプロセッサと、第２のストレージプロセッサとを有し、よってストレージデバイスのセットにデータを保存しストレージデバイスのセットからデータを検索する。第１のストレージプロセッサには、処理回路と、ポートの第１のセットとポートの第２のセットとを有するパッケージ型ＩＣデバイスとがある。処理回路は、パッケージ型ＩＣデバイスを、（i）ポートの第１のセットを介したストレージデバイスのセットとの通信と、（ii）ポートの第２のセットを介した第２のストレージプロセッサとのもう一方の通信を供給するべく構成するよう、改造されている。処理回路は更に、ポートの第１のセットを介して第１のストレージプロセッサとストレージデバイスのセットとの間の通信を行うよう、かつ、ポートの第２のセットを介して第１のストレージプロセッサと第２のストレージプロセッサとの間の通信を行うよう、改造されている。
2008545195.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージプロセッサと、第２のストレージプロセッサと、ストレージデバイスのセットと、を有するデータストレージシステム内で通信する方法であって、同方法が、前記第１のストレージプロセッサのパッケージ型集積回路デバイスを、（i）同パッケージ
型集積回路デバイスのポートの第１のセットを介したストレージデバイスのセットとの通信と、（ii）同パッケージ型集積回路デバイスのポートの第２のセットを介した前記第２のストレージプロセッサとのもう一方の通信と、を行うよう構成する工程と、
前記パッケージ型集積回路デバイスのポートの第１のセットを介して前記第１のストレージプロセッサとストレージデバイスのセットとの間で通信を行う工程と、
前記パッケージ型集積回路デバイスのポートの第２のセットを介して前記第１のストレージプロセッサと前記第２のストレージプロセッサとの間で通信を行う工程と、
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記第１のストレージプロセッサとストレージデバイスのセットとの間で通信を行う工程が、
外部ホストコンピュータのセットに代わって、前記パッケージ型集積回路デバイスのポートの第１のセットを介してストレージデバイスのセットにデータを保存し、ストレージデバイスのセットからデータを検索する工程を含む、方法。
【請求項３】
請求項２に記載の方法であって、前記第１のストレージプロセッサと前記第２のストレージプロセッサとの間で通信を行う工程が、
前記第１のプロセッサ及び前記第２のプロセッサのキャッシュをミラーリングする為に、前記パッケージ型集積回路デバイスのポートの第２のセットを介して前記第１のプロセッサと前記第２のプロセッサとの間でデータを交換する工程、を含む方法。
【請求項４】
請求項３に記載の方法であって、ストレージデバイスの前記セットがディスクドライブ群を備えており、前記パッケージ型集積回路デバイスのポートの第１のセットを介してストレージデバイスのセットにデータを保存しストレージデバイスのセットからデータを検索する工程が、
前記ディスクドライブ群をＳＡＴＡターゲットデバイス群として制御する為に、前記パッケージ型集積回路デバイスを前記ディスクドライブ群に対するシリアルＡＴＡ（ＳＡＴＡ）イニシエータデバイスとして動作させる工程、を含む方法。
【請求項５】
請求項４に記載の方法であって、前記第２のストレージプロセッサが別のパッケージ型集積回路デバイスを備えており、前記ディスクドライブ群をＳＡＴＡターゲットデバイス群として制御する為に、前記別のパッケージ型集積回路デバイスが前記ディスクドライブ群に対してＳＡＴＡイニシエータデバイスとして動作するよう構成されており、前記パッケージ型集積回路デバイスのポートの第２のセットを介して前記第１のストレージプロセッサと前記第２のストレージプロセッサとの間で通信を行う工程が、
ＳＡＴＡターゲットデバイスとみなして前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに命令する為に、前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスを前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに対してＳＡＴＡイニシエータデバイスとして動作させる工程、を含む方法。
【請求項６】
請求項５に記載の方法であって、前記パッケージ型集積回路デバイスのポートの第２のセットを介して前記第１のストレージプロセッサと前記第２のストレージプロセッサとの間で通信を行う工程が、更に、前記第１のストレージプロセッサと前記第２のストレージプロセッサとの間にピアツーピア通信を供給する為に、前記第２のストレージプロセッサの
前記他のパッケージ型集積回路デバイスがＳＡＴＡイニシエータデバイスとして動作している際に、前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに応答するよう前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスを前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに対してＳＡＴＡターゲットデバイスとして動作させる工程を含む、方法。
【請求項７】
請求項４に記載の方法であって、前記第２のストレージプロセッサが別のパッケージ型集積回路デバイスを備えており、前記ディスクドライブ群をＳＡＴＡターゲットデバイス群として制御する為に、前記別のパッケージ型集積回路デバイスが前記ディスクドライブ群に対してＳＡＴＡイニシエータデバイスとして動作するよう構成されており、前記パッケージ型集積回路デバイスのポートの第２のセットを介して前記第１のストレージプロセッサと前記第２のストレージプロセッサとの間で通信を行う工程が、
前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスがＳＡＴＡイニシエータデバイスとして動作している際に、前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに応答するよう前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスを前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに対してＳＡＴＡターゲットデバイスとして動作させる工程を含む、方法。
【請求項８】
請求項７に記載の方法であって、前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスを構成する工程が、
メカニズムを無効にし、無効にしない場合には、前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスを前記第２のストレージプロセッサの前記他のパッケージ型集積回路デバイスに対して前記ＳＡＴＡターゲットデバイスとして動作可能にする為に、前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスにＳＡＴＡイニシエータデバイスとして動作するよう強制する工程を含む、方法。
【請求項９】
請求項４に記載の方法であって、前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスを構成する工程が、更に、（i）前記ディスクドライブへの多数の通信パ
スを供給するよう前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスのポートの前記第１のセットをプログラミングし、（ii）前記第２のストレージプロセッサへの多数のキャッシュミラーリングインタフェース（ＣＭＩ）リンクを供給するよう前記第１のストレージプロセッサの前記パッケージ型集積回路デバイスのポートの前記第２のセットをプログラミングする工程を含む、
方法。
【請求項１０】
請求項９に記載の方法であって、更に、前記パッケージ型集積回路デバイスを同時に、一方のポートを通じてはＳＡＴＡイニシエータとして、他方のポートを通じてはＳＡＴＡターゲットとして動作させる工程を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的なデータストレージシステムには、ストレージ処理回路とディスクドライブのアレイとがある。ストレージ処理回路は、外部ホストコンピュータに代わって、ディスクドライブのアレイにデータを保存しディスクドライブのアレイからデータを検索する。従来のデータストレージシステムの中には、ストレージ処理回路が、ＳＡＴＡプロトコルを用いてディスクドライブのアレイと通信するシリアルＡＴＡインタフェース（ＳＡＴＡ）の集積回路（ＩＣ）を備えているものもある。ＳＡＴＡ  ＩＣは、ＳＡＴＡコマンドをディスクドライブのアレイに供給することによって、ストレージ処理回路をＳＡＴＡイニシエータとして動作可能にする。ディスクドライブのアレイは、ＳＡＴＡコマンドに応答する（例えば、ＳＡＴＡコマンドに応えてデータを読み書きする）ことによって、ＳＡＴＡターゲットのセットとして動作する。
【背景技術】
【０００２】
従来のあるデータストレージシステムには、可用性の高いストレージプロセッサが２つある。各ストレージプロセッサにはそれぞれ、ディスクドライブごとに送信ポートと受信ポートとを１つずつ有するＳＡＴＡ  ＩＣがある。従って、一方のストレージプロセッサが故障すると、他方のストレージプロセッサが各ディスクドライブにアクセスし、操作の続行を試みることができる。
【０００３】
上述した従来のデータストレージシステムでは、各ストレージプロセッサには更に、パラレルバスデバイスがあり、パラレルバスデバイスはそのストレージプロセッサのＳＡＴＡ  ＩＣからは分離している。次に、各ストレージプロセッサのダイレクトメモリアクセス（ＤＭＡ）エンジンが、パラレルバスデバイスを介してＤＭＡベースの保存及び検索操作をして、ストレージプロセッサ同士間のキャッシュミラーリングインタフェース（ＣＭＩ）パスを形成する。この結果、どちらのストレージプロセッサも、他方のストレージプロセッサのキャッシュのデータをミラーリングできる。キャッシュでミラーリングされたデータによって、ストレージプロセッサ群はライトバック方式で改善された応答時間の間に動作できる（即ち、たとえ一方のストレージプロセッサが故障してもデータは使用可能なままなので、ストレージプロセッサ群は、データが両方のキャッシュでミラーリングされたらすぐにデータストレージ操作をコミットできる）。
【０００４】
非特許文献１の種々のＳＡＴＡの仕様の詳細が使用可能であり、非特許文献１の教示の全体は参照により本願に組み込まれる。
【非特許文献１】“Ｓｅｒｉａｌ  ＡＴＡ  II  Ｅｌｅｃｔｒｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”Ｒｅｖｉｓｉｏｎ  １．０、２００４年５月２６日
【発明の開示】
【発明が解決しようとする課題】
【０００５】
残念なことに、ディスクドライブのアレイと通信する際にはＳＡＴＡ  ＩＣ群を用い、互いに通信し合う際にはパラレルバスデバイス群を用いる、という前述のストレージプロセッサにはいくつか欠陥がある。例えば、ディスクドライブの通信にＳＡＴＡ  ＩＣ群を使用し、ＣＭＩパス通信にそれぞれ別個のパラレルバスデバイス群を使用するのは、プリント回路基板（ＰＣＢ）のリソースの効率の悪い使い方である。具体的には、このそれぞれ別個の回路基板の要素には、各自の取り付け場所と、隣り合う支持回路群と、これら取り付け場所及び支持回路と連絡し合う信号トレース用の空間とが必要である。更に、ストレージプロセッサ群はパラレルバスデバイス群を介してＤＭＡ操作を（即ち、キャッシュ
ミラーリングの為に）行うので、１つのストレージプロセッサの故障が残りのストレージプロセッサのパラレルバスデバイスをロックし、ひいては残りのストレージプロセッサを停止させてしまわないよう、設計上の付加的な予防措置を取らなくてはならない。
【課題を解決するための手段】
【０００６】
ＳＡＴＡディスクドライブの通信用にそれぞれ別個のＳＡＴＡ  ＩＣを備え、ＤＭＡベースのＣＭＩパス通信用にパラレルバスデバイスを備えたストレージプロセッサ群を有する上述した従来のデータストレージシステムとは対照的に、改善された技術が利用するのは、ストレージデバイス通信用のポートの第１のセットとピアツーピアストレージプロセッサ通信用のポートの第２のセットとを有するパッケージ型ＩＣデバイスである。つまり、この単一のＩＣをストレージプロセッサ上に正しく構成すれば、この単一のＩＣは、（i）ストレージデバイス群とのインタフェース（例えば、キャッシュメモリとディスクド
ライブメモリとを同期させる為のもの）としても（ii）別のストレージプロセッサとのインタフェース（例えば、ストレージプロセッサ同士間でキャッシュミラーリングを行うためのもの）としても動作できる。このような技術によって、ＰＣＢ上の面積が節約されるのみならず、ストレージプロセッサ同士間にパラレルバスのＤＭＡベースの通信を供給する必要が低減する。
【０００７】
ある実施形態が対象としているデータストレージシステムは、外部ホストコンピュータのセットに代わって、ストレージデバイスのセットにデータを保存しストレージデバイスのセットからデータを検索する為に、ストレージデバイスのセットと、第１のストレージプロセッサと、第２のストレージプロセッサとを有する。第１のストレージプロセッサには処理回路とパッケージ型ＩＣデバイスとがあり、パッケージ型ＩＣデバイスにはポートの第１のセットとポートの第２のセットとがある。処理回路は、パッケージ型ＩＣデバイスを（i）ポートの第１のセットを介したストレージデバイスのセットとの通信と（ii）
ポートの第２のセットを介した第２のストレージプロセッサとのもう一方の通信とを供給するべく構成するよう、改造されている。処理回路は更に、パッケージ型ＩＣデバイスのポートの第１のセットを介して第１のストレージプロセッサとストレージデバイスのセットとの間の通信を行うよう、かつ、パッケージ型ＩＣデバイスのポートの第２のセットを介して第１のストレージプロセッサと第２のストレージプロセッサとの間の通信を行うよう、改造されている。このような実施形態によって、回路基板のリソースの非常に効率的な使用法と、データストレージシステム内でのロバストな通信（例えば、ＳＡＴＡ、シリアルアタッチドＳＣＳＩ、ファイバチャネル等）とが提供される。
【発明を実施するための最良の形態】
【０００８】
本発明の、既述の目的や特質や利点、及び他の目的や特質や利点は、添付の図面に図示のように、本発明の特別な実施形態の以下の説明によって明らかになり、図面では、それぞれ異なる図の全体に亘って同じ参照文字が同一部品を指す。各図面は必ずしも同率で拡大縮小されておらず、むしろ本発明の原理を図示する為に強調がなされている。
【０００９】
改善された技術が利用するのは、ストレージデバイス通信用のポートの第１のセットとピアツーピアストレージプロセッサ通信用のポートの第２のセットとを有するパッケージ型集積回路（ＩＣ）デバイスである。つまり、この単一のＩＣをストレージプロセッサ上に正しく構成すれば、この単一のＩＣは、（i）ストレージデバイス群とのインタフェー
ス（例えば、キャッシュメモリとディスクドライブメモリとを同期させる為のもの）としても（ii）別のストレージプロセッサとのインタフェース（例えば、ストレージプロセッサ同士間でキャッシュミラーリングを行うためのもの）としても動作できる。このような技術によって、プリント回路基板（ＰＣＢ）上の面積が節約されるのみならず、ストレージプロセッサ同士間にパラレルバスダイレクトメモリアクセスベース（ＤＭＡベース）の通信を供給する必要が低減する。
【００１０】
図１はデータストレージシステム２０を示し、データストレージシステム２０は、２２（ｌ）、．．．、２２（ｍ）の外部ホストコンピュータのセット（集合的に、外部ホストコンピュータ群２２）に代わって、データを保存し検索するよう構成されている。データストレージシステム２０は外部ホストコンピュータ群２２に、ネットワーク２４を介して接続できる（例えば、ＳＡＮ構成で、ＮＡＳ構成で、ＬＡＮの一部として、インターネットを介して、等）。
【００１１】
図１に示すように、データストレージシステム２０には、２６（１）、．．．、２６（ｎ）のストレージデバイス群のセット（集合的に、ストレージデバイス群２６）と、ストレージプロセッサ２８（Ａ）と、別のストレージプロセッサ２８（Ｂ）（集合的に、ストレージプロセッサ群２８）とがある。各ストレージプロセッサ２８が備えているのは、中でも、処理回路３０とパッケージ型ＩＣデバイス３２である。例えば、ストレージプロセッサ２８（Ａ）には、処理回路３０（Ａ）とパッケージ型ＩＣデバイス３２（Ａ）とがある。同様に、ストレージプロセッサ２８（Ｂ）にも、処理回路３０（Ｂ）とパッケージ型ＩＣデバイス３２（Ｂ）とがある。当然のことながら、２つのストレージプロセッサ２８は単なる例として示されており、このデータストレージシステム２０による使用に適したストレージプロセッサ群２８の数は異なる（例えば、３つ又は４つ等）。なおまた、このようなストレージプロセッサ群２８を単一のＰＣＢ又は多数のＰＣＢに備えることができる。
【００１２】
各処理回路３０には、マイクロプロセッサのセット３４（即ち、１つ以上のマイクロプロセッサ）と、キャッシュメモリ３６とダイレクトメモリアクセス（ＤＭＡ）エンジン３８とがある。例えば、処理回路３０（Ａ）には、マイクロプロセッサのセット３４（Ａ）と、キャッシュ３６（Ａ）と、ＤＭＡエンジン３８（Ａ）とがある。同様に、処理回路３０（Ｂ）にも、マイクロプロセッサのセット３４（Ｂ）と、キャッシュ３６（Ｂ）と、ＤＭＡエンジン３８（Ｂ）とがある。配列によっては、各ストレージプロセッサ２８のＤＭＡエンジン３８の少なくとも一部がそのストレージプロセッサ２８の１つ以上のマイクロプロセッサ３４により形成されて、専用ソフトウェアを走らせる。配列によっては、ＤＭＡエンジン群３８又はその一部が、処理回路群３０ではなく、パッケージ型ＩＣデバイス群３２に備わっている。
【００１３】
各ストレージプロセッサ２８のパッケージ型ＩＣデバイス３２には、ポートの第１のセット４０とポートの第２のセット４２とがある。例えば、ストレージプロセッサ２８（Ａ）のパッケージ型ＩＣデバイス３２（Ａ）には、ポートの第１のセット４０（Ａ）とポートの第２のセット４２（Ａ）とがある。同様に、ストレージプロセッサ２８（Ｂ）のパッケージ型ＩＣデバイス３２（Ｂ）にも、ポートの第１のセット４０（Ｂ）とポートの第２のセット４２（Ｂ）とがある。ポートの第１のセットである４０（Ａ）及び４０（Ｂ）はストレージデバイス２６のセットに接続して、それぞれの処理回路である３０（Ａ）及び３０（Ｂ）が、ポートの第１のセット４０（Ａ）とポートの第１のセット４０（Ｂ）を介してデータ４４を保存し検索できるようにする。配列によっては、ストレージデバイス群２６はデュアルポート型ディスクドライブであり、よって各ストレージプロセッサ２８のパッケージ型ＩＣデバイス３２は（例えば、第１のポート群４０と関連のケーブルとを介して）各ディスクドライブに直接アクセス可能となる。ポートの第２のセットである４２（Ａ）と４２（Ｂ）とは互いに（例えば、回路基板トレースを介して、また、それぞれ別個のＰＣＢにストレージプロセッサが備わっている場合にはおそらくコネクタを介して）接続して、ピアツーピアストレージプロセッサ通信をもたらす。具体的には、ポートの第２のセット群４２は互いに接続して、キャッシュ群３６内のデータ４８を同期させる為の冗長なキャッシュミラーリングインタフェース（ＣＭＩ）パス群４６を形成する。配列によっては、ポートの第２のセットである４２（Ａ）及び４２（Ｂ）のそれぞれのポートは
正確に４つであり、フォールトトレランスの為にＣＭＩリンクが２つ形成される。
【００１４】
動作中、処理回路群３０はホストコンピュータ２２に代わってデータストレージ操作を行う。具体的には、処理回路３０（Ａ）は、ストレージデバイス群２６にデータを揮発しないように保存しストレージデバイス群２６からデータを検索し（例えば、矢印４４参照）、場合によりそのデータをキャッシュ３６（Ａ）に一時的にキャッシュする。加えて、処理回路３０（Ａ）（即ち、マイクロプロセッサ群３４（Ａ）とＤＭＡエンジン３８（Ａ）とのセット）が、そのデータを他方のストレージプロセッサ２８（Ｂ）のキャッシュ３６（Ｂ）にコピーすることによって、キャッシュ３６（Ａ）内のキャッシュされたデータをミラーリングする（例えば、矢印４８参照）。
【００１５】
同様に、処理回路３０（Ｂ）も、ストレージデバイス群２６にデータを揮発しないように保存しストレージデバイス群２６からデータを検索し、場合によりそのデータをキャッシュ３６（Ｂ）に一時的にキャッシュする。更に、処理回路３０（Ｂ）（即ち、マイクロプロセッサ群３４（Ｂ）とＤＭＡエンジン３８（Ｂ）とのセット）が、そのデータを他方のストレージプロセッサ２８（Ａ）のキャッシュ３６（Ａ）にコピーすることによって、キャッシュ３６（Ｂ）内のキャッシュされたデータをミラーリングする。
【００１６】
更にこの場合には、処理回路群３０はパッケージ型ＩＣデバイス群３２の動作を制御する。具体的には、処理回路３０（Ａ）は、パッケージ型ＩＣデバイス３２（Ａ）を（i）
ポート群４０（Ａ）を介したストレージデバイス群２６との通信と（ii）ポート群４２（Ａ）を介した他方のストレージプロセッサ２８（Ｂ）とのもう一方の通信とをもたらすよう、構成する。この構成によって、処理回路３０（Ａ）は、パッケージ型ＩＣデバイス３２（Ａ）のポート群４０（Ａ）を介してストレージデバイス群２６と（即ち、データ４４の）通信を行い（即ち、ディスクドライブ群にアクセスし）、パッケージ型ＩＣデバイス３２（Ａ）のポート群４２（Ａ）を介して他方のストレージプロセッサ２８（Ｂ）と（即ち、データ４８の）通信を行う（即ち、ＣＭＩ経路群４６を介してキャッシュミラーリングを行う）。従って、ストレージプロセッサ２８（Ａ）には、ディスクドライブ群及び別のストレージプロセッサ２８とそれぞれ個別にインタフェースする別個の回路基板の要素が不要なので、ＰＣＢリソースが節約される。
【００１７】
同様な動作が反対方向にも生起する。つまり、処理回路３０（Ｂ）は、パッケージ型ＩＣデバイス３２（Ｂ）を（i）ポート群４０（Ｂ）を介したストレージデバイス群２６と
の通信と（ii）ポート群４２（Ｂ）を介した他方のストレージプロセッサ２８（Ａ）とのもう一方の通信とをもたらすよう、構成する。この構成によって、処理回路３０（Ｂ）は、パッケージ型ＩＣデバイス３２（Ｂ）のポート群４０（Ｂ）を介してストレージデバイス群２６と通信を行い（即ち、ディスクドライブ群にアクセスし）、パッケージ型ＩＣデバイス３２（Ｂ）のポート群４２（Ｂ）を介して他方のストレージプロセッサ２８（Ａ）と通信を行う（即ち、ＣＭＩ経路を介してキャッシュミラーリングを行う）。従って、データストレージシステム２０は、各ストレージプロセッサ２８上の単一のパッケージ型ＩＣデバイス３２を、そのストレージプロセッサ２８とストレージデバイス群２６との間のインタフェースとして、並びにストレージプロセッサ２８同士間のインタフェースとして用い、ＰＣＢリソース（例えば、ＰＣＢ上の面積）を効率的に利用する。更に詳しくは図２及び図３に関して説明する。
【００１８】
図２及び図３は、パッケージ型ＩＣデバイス群３２を、ＳＡＴＡプロトコル（例えば、ＳＡＴＡやＳＡＴＡ  II等）に従って動作する単一のマルチポートシリアルＡＴＡインタフェースモジュールとして実施したときの、ストレージプロセッサ群２８のパッケージＩＣデバイス群３２の能力を図示する。具体的には、図２は、パッケージ型ＩＣデバイス３２（Ａ）が、ストレージデバイス群２６の各々に対し、並びにパッケージ型ＩＣデバイス
３２（Ｂ）に対し、ＳＡＴＡイニシエータとして動作している状態を示す。ここで、パッケージ型ＩＣデバイス３２（Ａ）は、ポート群４０（Ａ）を介してＳＡＴＡコマンド群５０をストレージデバイス群２６に供給することによって、ストレージデバイス群２６に読み書き動作を指令することができる（再度、図１のデータ４４参照）。ＳＡＴＡコマンド群５０に対しストレージデバイス群２６は、ＳＡＴＡターゲットとして、ＳＡＴＡ応答群５２をパッケージ型ＩＣデバイス３２（Ａ）のポート群４０（Ａ）に送り返すことにより返答する。
【００１９】
同様に、図３は、パッケージ型ＩＣデバイス３２（Ｂ）が、ストレージデバイス群２６に対し、並びにパッケージ型ＩＣデバイス３２（Ａ）に対し、ＳＡＴＡイニシエータとして動作している状態を示す。ここで、パッケージ型ＩＣデバイス３２（Ｂ）は、ポート群４０（Ｂ）を介してＳＡＴＡコマンド群６０をストレージデバイス群２６に供給することによって、ストレージデバイス群２６に読み書き動作を指令することができる。ＳＡＴＡコマンド群６０に対しストレージデバイス群２６は、ＳＡＴＡターゲットとして、ＳＡＴＡ応答群６２をパッケージ型ＩＣデバイス３２（Ｂ）のポート群４０（Ｂ）に送り返すことにより返答する。
【００２０】
更に、パッケージ型ＩＣデバイスである３２（Ａ）及び３２（Ｂ）は、有効なＣＭＩ経路を形成する為に、互いに対してＳＡＴＡイニシエータとＳＡＴＡターゲットのどちらとしても動作できる。具体的には、図２は、パッケージ型ＩＣデバイス３２（Ａ）が、他方のストレージプロセッサ２８（Ｂ）にＳＡＴＡコマンド群５４を指令している状態を示している。この場合には、パッケージ型ＩＣデバイス３２（Ａ）はＳＡＴＡコマンド群５４を、パッケージ型ＩＣデバイス３２（Ａ）のポート群４２（Ａ）を介してかつパッケージ型ＩＣデバイス３２（Ｂ）のポート群４２（Ｂ）を介して、パッケージ型ＩＣデバイス３２（Ｂ）に供給する（再度、図１のデータ４８参照）。パッケージ型ＩＣデバイス３２（Ｂ）は、ＳＡＴＡコマンド５４に対して、ポート群である４２（Ｂ）及び４２（Ａ）を介してＳＡＴＡ応答群５６をパッケージ型ＩＣデバイス３２（Ａ）に送り返すことにより返答する（即ち、パッケージ型ＩＣデバイス３２（Ｂ）はＳＡＴＡターゲットとしての役割を果たす）。加えて、図３に示されているように、パッケージ型ＩＣデバイス３２（Ｂ）も同様に、他方のストレージプロセッサ２８（Ａ）にＳＡＴＡコマンド群６４を指令することができる。この場合には、パッケージ型ＩＣデバイス３２（Ｂ）はＳＡＴＡコマンド群６４を、パッケージ型ＩＣデバイス３２（Ｂ）のポート群４２（Ｂ）を介してかつパッケージ型ＩＣデバイス３２（Ａ）のポート群４２（Ａ）を介して、パッケージ型ＩＣデバイス３２（Ａ）に供給する。パッケージ型ＩＣデバイス３２（Ａ）は、ＳＡＴＡコマンド６４に対して、ポート群である４２（Ａ）及び４２（Ｂ）を介してＳＡＴＡ応答群６６をパッケージ型ＩＣデバイス３２（Ｂ）に送り返すことにより返答する（即ち、今度はパッケージ型ＩＣデバイス３２（Ａ）がＳＡＴＡターゲットとしての役割を果たす）。このようなピアツーピア通信（即ち、デバイス３２（Ｂ）がＳＡＴＡターゲットとして動作しているときにはデバイス３２（Ａ）はＳＡＴＡイニシエータとして動作し、デバイス３２（Ａ）がＳＡＴＡターゲットとして動作しているときにはデバイス３２（Ｂ）はＳＡＴＡイニシエータとして動作する）によって、ストレージプロセッサ２８同士間に、ロバストなＣＭＩ経路４６が形成され、従来のシステムに見られるようなＣＭＩ経路を介したパラレルバスのＤＭＡベースの通信は不要である。
【００２１】
以上の説明に基づき、当然のことながら、パッケージ型ＩＣデバイス群３２を各ストレージプロセッサ２８で単一のＳＡＴＡパッケージ型インタフェース群として実施しているとき、各パッケージ型ＩＣデバイス３２を、ＳＡＴＡイニシエータとしてもＳＡＴＡターゲットとしても動作できる。ＳＡＴＡイニシエータとしての動作を支持する為に、従来の意味で、各パッケージ型ＩＣデバイス３２を、ＳＡＴＡコマンド群をストレージデバイス群２６に供給しストレージデバイス群２６からＳＡＴＡ応答群を受信するよう装備する必
要がある。同時にＳＡＴＡターゲットとしての動作も支持する為に、各パッケージ型ＩＣデバイス３２を、他のパッケージ型ＩＣデバイス３２からＳＡＴＡコマンド群を受信しＳＡＴＡ応答群を他のパッケージ型ＩＣデバイス３２に返すよう装備する必要がある。
【００２２】
上述した同時発生のＳＡＴＡイニシエータ及びＳＡＴＡターゲットの機能性の実現は、特定のポート群が、エラーなしに、ＳＡＴＡ応答のみの範囲よりも広い範囲のＳＡＴＡ信号を受信できるよう、マルチポートのＳＡＴＡイニシエータデバイスを改造することにより可能である。単一のデバイスをＳＡＴＡイニシエータとしてもＳＡＴＡターゲットとしても動作するよう構成する他の技術は、既製のＳＡＴＡデバイスが一般的にＳＡＴＡイニシエータとして排他的に動作する又はＳＡＴＡターゲットとして排他的に動作する、という事実を克服するにも好適である。ストレージプロセッサ群２８（図１参照）との関連で、処理回路群３０がポート群４２を厳密にＳＡＴＡ応答のみ予想できなくする（例えば、パッケージ型ＩＣデバイス群３２の制御レジスタをプログラミングすることで）ことによって、ポート群４２がＳＡＴＡコマンド群を受信できるようになる。こうなると、ストレージプロセッサ２８（Ａ）のパッケージ型ＩＣデバイス３２（Ａ）のあるポート４２（Ａ）が他方のストレージプロセッサ２８（Ｂ）のパッケージ型ＩＣデバイス３２（Ｂ）からあるＳＡＴＡコマンドを受信すると推測される。このＳＡＴＡコマンドに応対する為に、このポート４２（Ａ）は単純にＳＡＴＡコマンドを処理回路３０（Ａ）まで運ぶ。すると処理回路３０（Ａ）は、ＳＡＴＡコマンドを扱う（例えば、キャッシュミラーリング動作を行う）ことができ、そしてパッケージ型ＩＣデバイス３２（Ａ）を、ストレージプロセッサ２８（Ｂ）にＳＡＴＡ応答を返すよう誘導することができる。
【００２３】
これも当然のことながら、各パッケージ型ＩＣデバイス３２は要するに、ＳＡＴＡイニシエータとしてもＳＡＴＡターゲットとしても、実質上同時に動作できる。つまり、パッケージ型ＩＣデバイス群３２は、図２及び図３に図示の動作を同時に継続的に行うよう構成されている。具体的には、接続されているポート４２の対ごとに、一方のデバイス３２のポート４２はＳＡＴＡイニシエータとして動作し、逆に、他方のデバイス３２のポート４２はＳＡＴＡターゲットとして動作する。このような動作によって、データストレージシステム２０の各ストレージプロセッサ２８は、ストレージデバイス群２６とのインタフェース（データストレージ及び検索の為のもの）としても、他方のストレージプロセッサ２８とのインタフェース（キャッシュミラーリングの為のもの）としても、単一の回路基板の要素を使うことが可能になる。なおまた、ＤＭＡエンジン群３８はパッケージ型ＩＣデバイス群３２の外部にあるので、ＣＭＩパス４６はパラレルバスのＤＭＡベースの通信を行う必要はない。更に詳しくは、以下、図４に関して説明する。
【００２４】
図４は、データストレージシステム２０の各ストレージプロセッサ２８の処理回路３０により行われるプロシージャ７０の概要を示すフローチャートである。工程７２では、処理回路３０（例えば、図１の処理回路３０（Ａ））は、パッケージ型集積回路デバイス３２（例えば、デバイス３２（Ａ））を（i）パッケージ型集積回路デバイス３２のポート
群４０（例えば、ポート群４０（Ａ））を介したストレージデバイス群２６との通信と（ii）パッケージ型集積回路デバイス３２のポート群４２（例えば、ポート群４２（Ａ））を介した他方のストレージプロセッサ２８（例えば、ストレージプロセッサ２８（Ｂ））とのもう一方の通信とを供給するよう構成する。
【００２５】
工程７４では、処理回路３０はこの時点で、そのストレージプロセッサ２８とストレージデバイス群２６との間でポート群４０を介して５０、５２、６０、６２の通信を行うことができる。つまり、処理回路３０はこの時点で、ストレージデバイス群２６にデータを保存しストレージデバイス群２６からデータを検索することができる。
【００２６】
工程７６では、処理回路３０はこの時点で、そのストレージプロセッサ２８と他方のス
トレージプロセッサ２８との間でポート群４２を介して５４、５６、６４、６６の通信を行うことができる。つまり、処理回路３０はこの時点で、キャッシュされているデータを２つのストレージプロセッサ２８の間でＣＭＩパス４６を介してミラーリングすることができる。当然のことながら、工程７４及び工程７６は、データストレージシステム動作をロバストなものにする為に、実質的には同時に継続的に生起可能である。
【００２７】
前述の通り、改善された技術が利用するのは、ストレージデバイス通信用のポート群４０とピアツーピアストレージプロセッサ通信用のポート群４２とを有するパッケージ型ＩＣデバイス３２である。つまり、この単一のＩＣ３２をストレージプロセッサ２８に正しく構成すれば、この単一のＩＣ３２は、（i）ストレージデバイス群２６とのインタフェ
ース（例えば、キャッシュメモリとディスクドライブメモリとを同期させる為のもの）としても、（ii）別のストレージプロセッサ２８とのインタフェース（例えば、ストレージプロセッサ同士間でキャッシュミラーリングを行うためのもの）としても動作できる。このような技術によって、プリント回路基板（ＰＣＢ）上の面積が節約されるのみならず、ストレージプロセッサ２８同士間にパラレルバスのＤＭＡベースの通信を供給する必要が低減する。
【００２８】
本発明の好適な実施形態を参照して本発明を詳細に図示し記載したが、当業者には分かるように、添付の請求項により規定された本発明の精神及び範囲から逸脱することなく形式及び詳細の種々の変更がなされる場合がある。
【００２９】
例えば、当然のことながら、パッケージ型ＩＣデバイス群３２はＳＡＴＡプロトコル（例えば、ＳＡＴＡ  I又はＳＡＴＡ  II）を使うよう以上に述べたが、他のプロトコルも
同様に使用に適している。他の配列では、パッケージ型ＩＣデバイス群３２が使用するのは、ＳＡＴＡ以外のプロトコル、例えばシリアルアタッチドＳＣＳＩ（ＳＡＳ）やファイバチャネル（ＦＣ）などである。
【００３０】
加えて、当然のことながら、以上に述べた各ストレージプロセッサ２８が備えているパッケージ型ＩＣデバイス３２は、単に例として１つだけであった。他の配列では、各ストレージプロセッサ２８はパッケージ型ＩＣデバイス群３２を多数有している。配列によっては、更にフォールトトレランスを高める為に、第１のＣＭＩパス４６がパッケージ型ＩＣデバイス３２の第１の対をつなぎ、第２のＣＭＩパス４６がパッケージ型ＩＣデバイス３２の第２の対をつなぐ。
【図面の簡単な説明】
【００３１】
【図１】ストレージデバイス通信及びピアツーピアストレージプロセッサ通信の両方の為のパッケージ型ＩＣデバイス群を有するデータストレージシステムのブロック図。
【図２】図１のデータストレージシステムのストレージプロセッサ群の動作を図示するブロック図。
【図３】図１のデータストレージシステムのストレージプロセッサ群の更なる動作を図示するブロック図。
【図４】図１のデータストレージシステムのストレージプロセッサ群のうちの１つの処理回路により行われるプロシージャを図示するフローチャート。
【図１】
2008545195.tif 000003
【図２】
2008545195.tif 000004
【図３】
2008545195.tif 000005
【図４】
2008545195.tif 000006
【国際調査報告】
2008545195.tif 000007
2008545195.tif 000008