(57)【要約】ＳＡＳドメイン内で第１ＳＡＳデバイスと複数の他のＳＡＳデバイスとの間の複数の単一方向仮想接続を可能にする装置および方法。機能強化された第１ＳＡＳデバイスを、１つまたは複数の適当に機能強化されたＳＡＳエキスパンダを介して２つの他のＳＡＳデバイスのそれぞれに実質的に同時に結合して、第１ＳＡＳデバイスから第２と第３とのＳＡＳデバイスの両方への実質的に同時の単一方向仮想接続を可能にすることができる。各仮想接続は、本質的に、第１デバイスが、第３ＳＡＳデバイスから情報を受け取るのと実質的に同時に第２ＳＡＳデバイスに情報を送るように、半二重接続である。機能強化は、本願の特徴および態様に従って適切に機能強化されてはいないデバイス（たとえば、レガシ・デバイスと）の間の接続性に関して現在のＳＡＳ仕様との後方互換性を可能にする形で提供される。
2010515156.tif 000002
【特許請求の範囲】
【請求項１】
第１ＳＡＳデバイス、第２ＳＡＳデバイス、および第３ＳＡＳデバイスを含む３つのＳＡＳデバイスと、
前記第１ＳＡＳデバイスを前記第２ＳＡＳデバイスおよび前記第３ＳＡＳデバイスのそれぞれに結合するように構成されたＳＡＳエキスパンダ・コンポーネントと
を含み、前記第１ＳＡＳデバイスおよび前記ＳＡＳエキスパンダが、前記第１ＳＡＳデバイスと前記第２ＳＡＳデバイスとの間の第１オープン接続ならびに前記第１ＳＡＳデバイスと前記第３ＳＡＳデバイスとの間の第２オープン接続を同時に許容するように適合され、
前記第１オープン接続および前記第２オープン接続が、前記第１ＳＡＳデバイスを前記ＳＡＳエキスパンダに結合する単一のリンクを利用する
システム。
【請求項２】
前記第１オープン接続が、前記第１ＳＡＳデバイスから前記第２ＳＡＳデバイスにフレームを送出するのに使用され、
前記第２オープン接続が、前記第３ＳＡＳデバイスから前記第１ＳＡＳデバイスにフレームを送出するのに使用される
請求項１に記載のシステム。
【請求項３】
前記システムが、前記第１ＳＡＳデバイスから前記第２ＳＡＳデバイスにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを送ることによって前記第１オープン接続内で前記第１ＳＡＳデバイスに関連する受取クレジットをブロックするように適合される
請求項２に記載のシステム。
【請求項４】
前記システムが、前記第３ＳＡＳデバイスによって前記第１ＳＡＳデバイスに通常送られる前記第２オープン接続内のＲＲＤＹプリミティブを破棄するように適合される
請求項２に記載のシステム。
【請求項５】
前記ＳＡＳエキスパンダが、前記第２オープン接続がオープンされたままである間に第４ＳＡＳデバイスから前記第１ＳＡＳデバイスに向けられたアドレス・フレーム・オープンを拒絶するように適合される
請求項１に記載のシステム。
【請求項６】
前記ＳＡＳエキスパンダが、前記第２オープン接続がオープンされたままである間の第４ＳＡＳデバイスから前記第１ＳＡＳデバイスに向けられたアドレス・フレーム・オープンを遅延するように適合される
請求項１に記載のシステム。
【請求項７】
第１ＳＡＳデバイスを第２および第３のＳＡＳデバイスのそれぞれに結合するＳＡＳエキスパンダを有するＳＡＳドメイン内で動作可能な方法であって、
前記第１ＳＡＳデバイスと前記第２ＳＡＳデバイスとの間の前記ＳＡＳエキスパンダを介する第１仮想接続を確立することであって、前記第１仮想接続が、前記第１ＳＡＳデバイスによって確立され、前記第１ＳＡＳデバイスから前記第２ＳＡＳデバイスへフレームを送るのに使用される、確立することと、
前記第１ＳＡＳデバイスと前記第３ＳＡＳデバイスとの間の前記ＳＡＳエキスパンダを介する第２仮想接続を確立することであって、前記第２仮想接続が、前記第３ＳＡＳデバイスによって確立され、前記第３ＳＡＳデバイスから前記第１ＳＡＳデバイスへフレームを送るのに使用される、確立することと
を含み、前記第１仮想接続および前記第２仮想接続が、動作をオーバーラップさせることができ、
前記第１仮想接続および前記第２仮想接続が、前記第１ＳＡＳデバイスを前記ＳＡＳエキスパンダに結合する同一のリンクを利用する
方法。
【請求項８】
前記第２仮想接続がオープンされたままである間の前記第１ＳＡＳデバイスに向けられる第４ＳＡＳデバイスからのアドレス・フレーム・オープンを拒絶すること
をさらに含む、請求項７に記載の方法。
【請求項９】
前記第３ＳＡＳデバイスによって前記第１ＳＡＳデバイスに送られるＲＲＤＹプリミティブを破棄すること
をさらに含む、請求項７に記載の方法。
【請求項１０】
前記第１ＳＡＳデバイスから前記第２ＳＡＳデバイスにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを送ること
をさらに含む、請求項７に記載の方法。
【請求項１１】
第１、第２、および第３のＳＡＳデバイスを結合するように適合されたＳＡＳエキスパンダであって、
前記第１ＳＡＳデバイスから前記第２ＳＡＳデバイスにフレームを送るために、前記第１ＳＡＳデバイスと前記第２ＳＡＳデバイスとの間の第１仮想接続を確立し、動作させるように適合された第１仮想接続論理と、
前記第３ＳＡＳデバイスから前記第１ＳＡＳデバイスにフレームを送るために、前記第１ＳＡＳデバイスと前記第３ＳＡＳデバイスとの間の第２仮想接続を確立し、動作させるように適合された第２仮想接続論理と
をさらに含み、
前記第１仮想接続論理および前記第２仮想接続論理のそれぞれが、前記第１仮想接続および前記第２仮想接続が動作をオーバーラップすることを可能にするように適合される
ＳＡＳエキスパンダ。
【請求項１２】
前記第２仮想接続がオープンされたままである間に前記第１ＳＡＳデバイスに向けられた第４ＳＡＳデバイスからのフレーム・オープン要求を拒絶するように適合された接続オープン拒絶論理
をさらに含む、請求項１１に記載のエキスパンダ。
【請求項１３】
前記第２仮想接続論理が、
前記第３ＳＡＳデバイスから前記第１ＳＡＳデバイスへ向けられるＲＲＤＹプリミティブを破棄するように適合された二重論理
をさらに含む
請求項１１に記載のエキスパンダ。
【請求項１４】
前記第１仮想接続論理が、
前記第１ＳＡＳデバイスから前記第２ＳＡＳデバイスにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを送ることによって、第１オープン接続内で前記第１ＳＡＳデバイスに関連する受取クレジットをブロックするように適合された二重論理
をさらに含む
請求項１１に記載のエキスパンダ。
【請求項１５】
前記第２仮想接続論理が、第２オープン接続がオープンされたままである間に前記第１ＳＡＳデバイスに向けられた第４ＳＡＳデバイスからのアドレス・フレーム・オープンを拒絶するように適合される
請求項１１に記載のエキスパンダ。
【請求項１６】
前記第２仮想接続論理が、第２オープン接続がオープンされたままである間に前記第１ＳＡＳデバイスに向けられた第４ＳＡＳデバイスからのアドレス・フレーム・オープンを遅延させるように適合される
請求項１１に記載のエキスパンダ。
【請求項１７】
ＳＡＳエンド・デバイスであって、
前記ＳＡＳエンド・デバイスから第１ＳＡＳデバイスにフレームを送るために、ＳＡＳエキスパンダを介する前記ＳＡＳエンド・デバイスと前記第１ＳＡＳデバイスとの間の第１仮想接続を確立し、動作させるように適合された第１仮想接続論理と、
第２ＳＡＳデバイスから前記ＳＡＳエンド・デバイスにフレームを送るために、ＳＡＳエキスパンダを介する前記ＳＡＳエンド・デバイスと前記第２ＳＡＳデバイスとの間の第２仮想接続を確立し、動作させるように適合された第２仮想接続論理と
を含み、前記第１仮想接続論理および前記第２仮想接続論理が、それぞれ、前記第１仮想接続および前記第２仮想接続が動作をオーバーラップさせることを可能にするように適合され、
前記エンド・デバイスが、前記ＳＡＳエンド・デバイスを前記ＳＡＳエキスパンダに結合する同一のリンク上で前記第１および第２の仮想接続を確立するように適合される
ＳＡＳエンド・デバイス。
【請求項１８】
前記第２仮想接続論理が、
前記第２ＳＡＳデバイスから前記ＳＡＳエンド・デバイスに向けられるＲＲＤＹプリミティブを破棄するように適合された二重論理
をさらに含む
請求項１７に記載のエンド・デバイス。
【請求項１９】
前記第１仮想接続論理が、
前記ＳＡＳエンド・デバイスから前記第１ＳＡＳデバイスにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを送ることによって、第１オープン接続内で前記第１ＳＡＳデバイスに関連する受取クレジットをブロックするように適合された二重論理
をさらに含む
請求項１７に記載のエンド・デバイス。
【請求項２０】
前記第２仮想接続に関連する前記受取クレジットと独立に前記第１仮想接続に関連する送出クレジットを管理するように適合された二重論理
をさらに含む、請求項１７に記載のエンド・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２００６年１２月２９日に出願した米国仮出願第６０／８８２，８４７号、名称Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｍｕｌｔｉｐｌｅ  Ｕｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｖｉｒｔｕａｌ  Ｃｏｎｎｅｃｔｉｏｎｓ  Ａｍｏｎｇ  ＳＡＳ  Ｄｅｖｉｃｅｓに関連し、その優先権を主張するものである。
本発明は、全般的にはＳＡＳドメインに関し、より具体的には、ＳＡＳドメイン内のＳＡＳデバイス間の複数の単一方向仮想接続の装置、システム、および方法に関する。
【背景技術】
【０００２】
Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（「ＳＡＳ」）は、ネットワーク化されたストレージ／コンピューティング・アーキテクチャのコンポーネントを接続する、人気のあるプロトコルおよび媒体である。一般に、ＳＡＳ標準規格は、１つまたは複数のＳＡＳターゲット・デバイス０個以上のＳＡＳエキスパンダ・デバイスに結合された１つまたは複数のＳＡＳイニシエータを含むものとしてＳＡＳドメインを定義する。
【０００３】
一般に、ＳＡＳイニシエータ・デバイスは、ポイント・ツー・ポイント接続としてＳＡＳターゲット・デバイスに結合される。ＳＡＳイニシエータ・デバイスを他のＳＡＳターゲット・デバイスに接続する際の柔軟性を高めるために、ＳＡＳドメインは、本質的に、ＳＡＳドメインのＳＡＳターゲット・デバイスのいずれかへのポイント・ツー・ポイント接続でＳＡＳイニシエータのいずれかを結合するためのスイッチド・ファブリック（ｓｗｉｔｃｈｅｄ  ｆａｂｒｉｃ）を提供するために、１つまたは複数のＳＡＳエキスパンダを含むことができる。
【０００４】
より一般的に、ＳＡＳイニシエータおよびＳＡＳターゲット・デバイスは、それぞれ、多数のデバイスが時々イニシエータの役割で働き、時々ターゲットの役割で働くことができるという点で、ＳＡＳエンド・デバイス（ｅｎｄ  ｄｅｖｉｃｅ）（またはエンドポイント・デバイス）と呼ばれる場合がある。ＳＡＳイニシエータまたはＳＡＳターゲットとしてのデバイスの役割にかかわりなく、すべてのＳＡＳ準拠デバイスは、別のデバイスとの接続をオープンすることを試みることができる。たとえば、ホスト・バス・アダプタＳＡＳイニシエータ・デバイスが、ＳＡＳストレージ・ターゲット・デバイスへの接続をオープンすることが一般的である。しかし、ストレージ・デバイスは、その後、要求された読み取りデータを返すために、要求元ホスト・アダプタに戻る接続をオープンすることができる。したがって、用語「イニシエータ」および「ターゲット」は、一般に、この議論では避けられる。１つの接続内のイニシエータ・デバイスとターゲット・デバイスとの両方を、本明細書では、単純に「エンド・デバイス」または「エンドポイント・デバイス」あるいはさらに単純に「デバイス」と呼ぶ場合がある。別のエンド・デバイスへの接続をオープンすることを試みるエンド・デバイスを、本明細書では、「オープナ」または「オープンするデバイス」と呼び、オープン要求を受け入れるデバイスを、「オープンされるデバイス」と呼ぶ場合がある。
【０００５】
ＳＡＳ標準規格は、２つの接続されたＳＡＳデバイスの間の全二重接続を提供する。原理的に、そのような全二重接続は、オープンされたデバイスがオープナに情報を送り返すのと実質的に並行して、オープンするデバイスが、オープンされたデバイスに情報のフレーム（たとえば、「データ・フレーム」）を送ることを可能にする。これらのＳＡＳ仕様によれば、そのような全二重接続は、２つのエンド・デバイスの間のポイント・ツー・ポイント接続のほぼ完全な利用を可能にする（使用可能な帯域幅の一部が、プロトコルに関連するオーバヘッド交換によって必ず消費される）。これおよび他の関連するＳＡＳ仕様は、当業者に周知であり、たとえばｗｗｗ．ｔ１０．ｏｒｇで簡単に入手可能でもある。
【０００６】
実際には、接続されたＳＡＳデバイス（Ｉ／Ｏ要求コントローラに結合された単一のディスク・ドライブ・デバイスなど）の両方が、オープン接続の他方のデバイスに送られる準備ができたデータを有することは、まれである。ＲＡＩＤストレージ・サブシステムＳＡＳデバイスに結合されたＳＡＳホスト・アダプタ・デバイスのコンテキストであっても（ＲＡＩＤストレージ・コントローラのアーキテクチャに依存する）、ホストおよびストレージ・システムが、真の全二重接続の使用可能帯域幅を完全に利用することは、まれである可能性がある。したがって、真の全二重通信を介するＳＡＳ接続の完全な（またはほぼ完全な）利用は、実際にはめったに存在しない。そうではなく、経験的テスト・データは、２つのデバイスの間のＳＡＳ接続の利用度が、使用可能な通信帯域幅の５０％未満である傾向があることを示した。そのような低すぎる利用度の１つの態様は、ＳＡＳプロトコルに関連する固有のオーバーヘッドおよび遅延から生じる。しかし、そのような低すぎる利用度への最も重要な貢献物は、ホスト・システム（たとえば、ＳＡＳイニシエータ）が、ストレージ・デバイス（たとえば、単一のディスク・ドライブまたはより複雑なＲＡＩＤもしくは他のアレイ化されたストレージ・デバイス）によって完了されるべき要求を表す１つまたは複数のフレームを送るように、基礎となる通信が実行されることである。ストレージ・デバイスは、通常、ホスト・システムから受け取られた要求を完了するのに、ある実質的な処理時間を必要とする。したがって、ＳＡＳターゲット・デバイス（たとえば、ストレージ・デバイス）は、ＳＡＳイニシエータが要求の送出のために接続をオープンしたのと同時に、ＳＡＳイニシエータへの送出のために準備ができているデータを有することが、めったにない。したがって、オープン接続は、通常、イニシエータからターゲットへの送出の完了時にクローズされ、ターゲット・デバイスが要求されたデータをイニシエータに送り返す準備ができた時に再接続されるに過ぎない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国仮出願第６０／８８２，８４７号
【非特許文献】
【０００８】
【非特許文献１】ｗｗｗ．ｔ１０．ｏｒｇ
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上の議論から、ＳＡＳドメイン内のＳＡＳイニシエータ・デバイスとＳＡＳターゲット・デバイスとの間の帯域幅利用度を改善する、継続する必要が存在することは明白である。
【課題を解決するための手段】
【００１０】
本発明は、第１ＳＡＳデバイスと２つの他のＳＡＳデバイスとの間で実質的に同時に動作可能な複数の単一方向の仮想接続の装置、システム、および関連する方法を提供することによって、上記および他の問題を解決し、これによって有用な技術的現状を機能強化する。単一方向仮想接続のそれぞれは、本質的に、第１デバイスが第３ＳＡＳデバイスから受け取れる間に第２ＳＡＳデバイスに送出していることができる、半二重接続である。この動作の機能強化されたモードは、既存のＳＡＳプロトコルと後方互換でありながら、適当にイネーブルされた第１ＳＡＳデバイスが適当にイネーブルされたＳＡＳエキスパンダを介して複数の他のＳＡＳデバイスのそれぞれに結合された状態での機能強化された動作を可能にする。
【００１１】
本願の一態様は、第１ＳＡＳデバイスを第２ＳＡＳデバイスおよび第３ＳＡＳデバイスのそれぞれに結合するように構成されたＳＡＳエキスパンダ・コンポーネントにそれぞれが結合された第１ＳＡＳデバイス、第２ＳＡＳデバイス、および第３ＳＡＳデバイスを含む３つのＳＡＳデバイスを含むシステムを提供する。第１ＳＡＳデバイスおよびＳＡＳエキスパンダは、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間の第１オープン接続ならびに第１ＳＡＳデバイスと第３ＳＡＳデバイスとの間の第２オープン接続を同時に許容するように適合される。第１オープン接続および第２オープン接続は、第１ＳＡＳデバイスをＳＡＳエキスパンダに結合する単一のリンクを利用する。
【００１２】
本願のもう１つの態様は、第１ＳＡＳデバイスを第２および第３のＳＡＳデバイスのそれぞれに結合するＳＡＳエキスパンダを有するＳＡＳドメイン内で動作可能な方法を提供する。この方法は、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間のＳＡＳエキスパンダを介する第１仮想接続を確立することを含む。第１仮想接続は、第１ＳＡＳデバイスによって確立され、第１ＳＡＳデバイスから第２ＳＡＳデバイスへフレームを送るのに使用される。この方法は、第１ＳＡＳデバイスと第３ＳＡＳデバイスとの間のＳＡＳエキスパンダを介する第２仮想接続を確立することをも含む。第２仮想接続は、第３ＳＡＳデバイスによって確立され、第３ＳＡＳデバイスから第１ＳＡＳデバイスへフレームを送るのに使用される。第１仮想接続および第２仮想接続は、動作をオーバーラップさせることができる。第１仮想接続および第２仮想接続は、第１ＳＡＳデバイスをＳＡＳエキスパンダに結合する同一のリンクを利用する。
【００１３】
本願のもう１つの態様は、少なくとも第１、第２、および第３のＳＡＳデバイスを結合するように適合されたＳＡＳエキスパンダを提供する。ＳＡＳエキスパンダは、第１ＳＡＳデバイスから第２ＳＡＳデバイスにフレームを送るために、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間の第１仮想接続を確立し、動作させるように適合された第１仮想接続論理を含む。このエキスパンダは、第３ＳＡＳデバイスから第１ＳＡＳデバイスにフレームを送るために、第１ＳＡＳデバイスと第３ＳＡＳデバイスとの間の第２仮想接続を確立し、動作させるように適合された第２仮想接続論理をも含む。第１仮想接続論理および第２仮想接続論理のそれぞれは、第１仮想接続および第２仮想接続が動作をオーバーラップすることを可能にするように適合される。
【００１４】
本願のもう１つの態様は、ＳＡＳエンド・デバイスから第１ＳＡＳデバイスにフレームを送るために、ＳＡＳエキスパンダを介するＳＡＳエンド・デバイスと第１ＳＡＳデバイスとの間の第１仮想接続を確立し、動作させるように適合された第１仮想接続論理を含むＳＡＳエンド・デバイスを提供する。このＳＡＳエンド・デバイスは、第２ＳＡＳデバイスからＳＡＳエンド・デバイスにフレームを送るために、ＳＡＳエキスパンダを介するＳＡＳエンド・デバイスと第２ＳＡＳデバイスとの間の第２仮想接続を確立し、動作させるように適合された第２仮想接続論理をも含む。第１仮想接続論理および第２仮想接続論理は、それぞれ、第１仮想接続および第２仮想接続が動作をオーバーラップさせることを可能にするように適合される。エンド・デバイスは、ＳＡＳエンド・デバイスをＳＡＳエキスパンダに結合する同一のリンク上で第１および第２の仮想接続を確立するように適合される。
【図面の簡単な説明】
【００１５】
【図１】ＳＡＳドメイン内の帯域幅利用を改善するための、本願の特徴および態様による例示的システムを示すブロック図である。
【図２】第１デバイスと２つの他のＳＡＳデバイスのそれぞれとの間の複数の単一方向仮想接続を可能にするために本願の特徴および態様に従って両方が機能強化される例示的な第１ＳＡＳデバイスおよびＳＡＳエキスパンダを示すブロック図である。
【図３】本願の特徴および態様に従って機能強化されるＳＡＳドメイン・システム内で動作可能な本願の特徴および態様による例示的方法を示す流れ図である。
【図４】３つのＳＡＳデバイスの間の複数の単一方向仮想接続を確立する本願の特徴および態様による例示的方法を示す流れ図である。
【図５】本願の特徴および態様による複数のＳＡＳデバイスとＳＡＳエキスパンダとの間のＳＡＳトランザクションの例示的交換を示す図である。
【図６】本願の特徴および態様による機能強化されたエキスパンダの例示的実施形態を示すブロック図である。
【発明を実施するための形態】
【００１６】
図１は、ＳＡＳドメイン内の帯域幅利用を改善するための、本願の特徴および態様による例示的システム１００を示すブロック図である。図１に示されているように、ＳＡＳドメイン（たとえば、システム１００）は、３つのＳＡＳデバイスすなわち、第１ＳＡＳデバイス１０１、第２ＳＡＳデバイス１０２、および第３ＳＡＳデバイス１０３を含む。ＳＡＳドメイン内で周知のとおり、第１ＳＡＳデバイス１０１は、複数の他のデバイス（たとえば、第２ＳＡＳデバイス１０２および第３ＳＡＳデバイス１０３）に接続することができる。そのような接続性を提供する際のスイッチ可能柔軟性を提供するために、１つまたは複数のＳＡＳエキスパンダ１０４を含めることが一般的である。当業者は、任意の個数のＳＡＳデバイスを、ＳＡＳ仕様およびＳＡＳプロトコルの制限に従って任意の個数の関連するＳＡＳエキスパンダを介して相互接続できることを認めるであろう。通常のＳＡＳドメインは、図１に示されたものより実質的に多いデバイスおよびエキスパンダを含む。したがって、図１は、単にこの議論を簡潔にするために簡略化されている。
【００１７】
システム１００として表される本願の特徴および態様によれば、第１ＳＡＳデバイス１０１およびＳＡＳエキスパンダ１０４を、第１ＳＡＳデバイスと第２ＳＡＳデバイス１０２および第３ＳＡＳデバイス１０３のそれぞれとの間の複数の仮想接続を可能にするように機能強化することができる。具体的に言うと、第１仮想接続を、本願の特徴および態様に従って、第１ＳＡＳデバイス１０１と第２ＳＡＳデバイス１０２との間で確立することができる。第１仮想接続の確立の前に、その後に、または実質的にそれと同時に、第２仮想接続を、第１ＳＡＳデバイス１０１と第３ＳＡＳデバイス１０３との間で確立し、利用することができる。上で注記したように、以前のＳＡＳアーキテクチャおよび方法論は、任意の２つのＳＡＳデバイスの間のポイント・ツー・ポイントの全二重接続を許容する。しかし、以前のＳＡＳアーキテクチャおよび技法は、単一のデバイスが、ＳＡＳエキスパンダへの単一のリンク接続を介して、ＳＡＳドメイン内の２つの他のデバイスの両方と実質的に同時に通信することを許容しない。
【００１８】
本明細書で使用される時に、接続の同時性は、２つの仮想接続の確立および利用のすべての態様を指す。言い換えると、第１仮想接続および第２仮想接続の確立を、実質的にオーバーラップさせ、したがって実質的に同時に実行することができる。あるいは、たとえば、前に確立された第１仮想接続の利用および第２仮想接続の確立を、実質的にオーバーラップさせ、したがって実質的に同時に実行することができる。あるいは、たとえば、以前に確立された仮想接続の両方を、この２つの仮想接続を介するデータ送出を実質的にオーバーラップさせることによって同時に利用することができる。
【００１９】
上でさらに注記したように、以前のＳＡＳアーキテクチャおよびＳＡＳ技法は、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間の全二重接続を許容するが、実践的な問題として、そのようなＳＡＳ接続でのそのような両方向同時通信は、特にホスト・システムと単一のディスク・ドライブ・デバイスとの間での接続のコンテキストで、顕著に低く利用される。すなわち、ＳＡＳアーキテクチャのディスク・ストレージ応用例の比較的まれな状況でのみ、確立されたＳＡＳ接続内の第１ＳＡＳデバイスと第２ＳＡＳデバイスとの両方が、単一のポイント・ツー・ポイント全二重接続で両方向でかなりの量の情報を送ることが望ましい。
【００２０】
したがって、本願の特徴および態様によれば、第１ＳＡＳデバイス１０１と第２ＳＡＳデバイス１０２との間の第１仮想接続が、第１ＳＡＳデバイスから第２ＳＡＳデバイスへのデータ・フレームの送出のために確立される場合に。第２仮想接続が、第３ＳＡＳデバイス１０３から第１ＳＡＳデバイス１０１へデータ・フレームを送出するために第１ＳＡＳデバイス１０１と第３ＳＡＳデバイス１０３との間で、言い換えると、第１仮想接続に関してフレーム通信の反対の方向で、確立される。したがって、本願の特徴および態様によれば、第１仮想接続と第２仮想接続との両方が、効果的に単一方向半二重接続である。しかし、上で述べたように、第１ＳＡＳデバイス１０１を、それぞれが他の仮想接続からの反対方向の情報の一方向交換に適合される他の２つのＳＡＳデバイスに結合する能力は、ＳＡＳドメイン（たとえば、システム１００）の処理帯域幅および通信帯域幅をよりよく利用する。
【００２１】
通信経路１５１は、第１ＳＡＳデバイス１０１をＳＡＳエキスパンダ１０４の特定のポートに接続する単一の論理リンクを表す。類似する形で、ＳＡＳエキスパンダ１０４は、単一の論理リンク１５２を介して第２ＳＡＳデバイス１０２に結合され、もう１つの論理リンク１５３を介して第３ＳＡＳデバイス１０３に結合される。第１ＳＡＳデバイス１０１とＳＡＳエキスパンダ１０４との間の論理接続１５１は、リンク１５１の送出の各方向が異なるＳＡＳデバイスに結合されるので、以前のＳＡＳ標準全二重リンク層プロトコルと比較して、よりよく利用される。以前のＳＡＳ標準全二重リンク層プロトコルとは異なって、２つの仮想論理接続が、第１ＳＡＳデバイス１０１とＳＡＳエキスパンダ１０４との間で確立される。
【００２２】
「ポート」、「リンク」、およびＰＨＹは、ＳＡＳ仕様によって明確に定義されるが、本明細書で使用される時に、これらは、この議論において同義と考えることができる。一般に、リンクまたはＰＨＹは、２つのデバイスを結合する単一の物理リンク媒体に対応し、ポートは、ＳＡＳ内の論理構成を指す。単一のポートを、たとえば、複数の物理リンクまたはＰＨＹの処理を集約するワイド・ポートとすることができる。したがって、複数のリンクを利用する１つのポートが、本願の特徴および態様に従うエンハンスト・モードの複数のリンクのいくつかおよび標準非エンハンスト・モードの他のリンクを動作させることができる。しかし、本特許のより広い範囲について、これらの用語を、本質的に同義と考えることができる。
【００２３】
本願の特徴および態様の１つの例示的な実施形態では、第１ＳＡＳデバイス１０１を、適切に機能強化されたＳＡＳホスト・アダプタを備えたホスト・システムまたはサーバ・コンピューティング・ノードなどの機能強化されたＳＡＳエンド・デバイスとすることができる。さらに、ＳＡＳエキスパンダ１０４を、機能強化されたＳＡＳデバイス１０１との単一の論理接続がそれぞれ第２ＳＡＳデバイス１０２および第３ＳＡＳデバイス１０３への２つの単一方向仮想接続を確立するために単一の論理リンクを利用することを可能にする、本願の特徴および態様に従って機能強化されたＳＡＳエキスパンダとすることができる。第２ＳＡＳデバイス１０２および第３ＳＡＳデバイス１０３は、たとえば、ストレージ・デバイスまたは他の周辺Ｉ／Ｏデバイスなどの標準ＳＡＳデバイスとすることができる。第１仮想接続は、機能強化されたＳＡＳデバイス（第１ＳＡＳデバイス１０１）を、論理リンク１５１を介し、エキスパンダ１０４および論理リンク１５２を介して第２ＳＡＳデバイス１０２に結合する。この第１仮想接続は、第２ＳＡＳデバイス１０２によって表されるストレージ・デバイスにデータ・フレームを送る機能強化されたＳＡＳデバイス１０１のために利用される。第２仮想接続は、第１ＳＡＳデバイス１０１と第３ＳＡＳデバイス１０３、たとえば機能強化されたＳＡＳデバイス１０１に情報を送り返すことが望まれる第２ストレージ・デバイスとの間で確立される。この第２仮想接続は、機能強化されたＳＡＳデバイス１０１と第３ＳＡＳデバイス１０３とを、リンク１５１、ＳＡＳエキスパンダ１０４、およびリンク１５３を介して結合する。第３ＳＡＳデバイス１０３内で生成されたデータ・フレームは、機能強化されたＳＡＳデバイス１０１に送り返され、たとえば、読み取りデータが、ストレージ・デバイスから要求元ホスト・システムＳＡＳデバイスに送り返される。したがって、機能強化されたＳＡＳデバイスを機能強化されたＳＡＳエキスパンダに結合する単一の論理リンク１５１は、実質的に同時の、第１デバイス１０１から第２ＳＡＳデバイス１０２への送出（たとえば、ストレージ・デバイスへの書き込み動作）および第３ＳＡＳデバイス１０３から機能強化されたＳＡＳデバイスへの送出（たとえば、別のホスト要求に応答する読み取りデータの返し）によってより十分に利用される。
【００２４】
当業者は、十分に機能するＳＡＳデバイスまたはＳＡＳエキスパンダ内の多数の追加の特徴および要素をたやすく認めるであろう。そのような周知の要素は、単にこの議論を簡潔にするために、図１から省略されている。
【００２５】
図２は、第１ＳＡＳデバイス１０１と２つの他のＳＡＳデバイス１０２および１０３のそれぞれとの間の複数の単一方向仮想接続を可能にするために本願の特徴および態様に従って機能強化された例示的な機能強化されたＳＡＳエキスパンダ１０４のブロック図である。
【００２６】
本願の特徴および態様に従って機能強化されたＳＡＳエキスパンダ１０４は、機能強化された第１デバイス１０１とのエンハンスト・モード通信のための、別々のアウトバウンド仮想接続論理要素２０１および別々のインバウンド仮想接続論理要素２０２を含む。アウトバウンド仮想接続論理２０１は、ＳＡＳエキスパンダ１０４に結合された（直接にまたはＳＡＳドメイン内の１つもしくは複数の介在する他のＳＡＳエキスパンダ２５２を介して）第２ＳＡＳデバイス１０２へのアウトバウンド・データ・フレームの送出に関連するトランスポート層処理およびリンク層処理を管理する。インバウンド仮想接続論理要素２０２は、ＳＡＳエキスパンダ１０４に結合された（直接にまたはＳＡＳドメイン内の１つもしくは複数の他のエキスパンダ２５３を介して）第３ＳＡＳデバイス１０３からのインバウンド・データ・フレームの受取に関連するトランスポート層処理およびリンク層処理を管理する。低水準論理ＰＨＹ制御論理２１４は、機能強化されたＳＡＳエキスパンダ１０４をＳＡＳエキスパンダの対応する単一リンクに物理的に結合し、このリンクを介して、第１ＳＡＳデバイス１０１が、第２ＳＡＳデバイスと第３ＳＡＳデバイスとの両方と通信する。
【００２７】
アウトバウンド仮想接続論理２０１は、ＳＡＳクレジット・プロトコルおよびハンドシェークに従う第１ＳＡＳデバイス１０１から第２ＳＡＳデバイス１０２へのデータ・フレーム送出のために標準ＳＡＳプロトコルのトランスポート層状態機械およびリンク層状態機械を管理する責任を負うアウトバウンド送出およびクレジット論理要素２０６を含む。類似する形で、インバウンド仮想接続論理要素２０２は、接続された第３ＳＡＳデバイス１０３から第１ＳＡＳデバイス１０１宛のインバウンド・データ・フレームを受け取る時の標準ＳＡＳ状態機械モデルに従うリンク層およびトランスポート層の管理の責任を全般的に負うインバウンド受取およびクレジット論理２１２を含むことができる。
【００２８】
二重化論理要素２０３は、第２ＳＡＳデバイス１０２から第１ＳＡＳデバイス１０１へのインバウンド・データ・フレーム送出を防ぎ、第１ＳＡＳデバイス１０１から第３ＳＡＳデバイス１０３へのアウトバウンド・データ・フレーム送出を避ける（たとえば、通常は第３ＳＡＳデバイスからの受取クレジット表示を単純に無視するか破棄することによる）ために本願の特徴および態様による特殊化された状態機械処理を実行する組合せ論理および／または順序論理を表す。具体的に言うと、二重化論理要素２０３は、第２ＳＡＳデバイス１０２への送出のためにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを生成するインバウンド・クレジット・ブロッキング論理２０８を含むことができる。好ましくは、第２ＳＡＳデバイス１０２との第１仮想接続の確立時に、インバウンド・クレジット・ブロッキング論理要素２０８は、即座にＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを送って、機能強化された第１ＳＡＳデバイス１０１が第２ＳＡＳデバイスからのデータ・フレーム送出を一切受け取らないことを第２ＳＡＳデバイス１０２に知らせる。類似する形で、二重化論理要素２０３は、機能強化された第１ＳＡＳデバイス１０１から第３ＳＡＳデバイス１０３へのアウトバウンド送出を避けるように全般的に動作可能なアウトバウンド・クレジット破棄論理２１０を含むことができる。そのようなアウトバウンド送出の回避は、単に、たとえば第１ＳＡＳデバイス１０１からの送出の受取用の受取バッファ空間を示すのに使用される第３ＳＡＳデバイス１０３から受け取られたすべてのＲＲＤＹプリミティブを無視する処理を表すことができる。機能強化された第１ＳＡＳデバイス１０１内の他の論理は、単純に、複数の単一方向仮想接続を確立する動作のエンハンスト・モードの使用に基づいて、第３ＳＡＳデバイス１０３へのデータ・フレームの送出を絶対に試みないものとすることができる。
【００２９】
ＳＡＳエキスパンダ１０４内で実施される時に、アウトバウンド仮想接続論理２０１およびインバウンド仮想接続論理２０２は、３つのＰＨＹ制御論理要素に関連する。ＰＨＹ制御論理要素２１４は、単一のリンクを介してＳＡＳエキスパンダ１０４を機能強化された第１ＳＡＳデバイス１０１に結合するＰＨＹ制御を実施する。ＰＨＹ制御論理要素２２１は、単一のリンクを介してアウトバウンド仮想接続論理２０１を第２ＳＡＳデバイス１０２（たとえば、ストレージ・デバイスまたは他の周辺デバイス）に結合する。ＰＨＹ制御論理要素２２２は、インバウンド仮想接続論理２０２を第３ＳＡＳデバイス１０３（たとえば、第１ＳＡＳデバイスにデータ・フレームを送るための第１ＳＡＳデバイスへの接続に適合され、現在その接続を必要とするもう１つのストレージ・デバイス）に結合する。
【００３０】
したがって、機能強化されたＳＡＳエクスパンド・エキスパンダ１０４は、機能強化された第１ＳＡＳデバイス１０１を第２ＳＡＳデバイス１０２に結合する第１仮想接続を確立するように適合される。この第１仮想接続は、たとえばＳＡＳホスト・デバイスからの書き込み要求の処理の際のホスト・システムＳＡＳアダプタ・デバイスからＳＡＳストレージ・デバイスに送られるデータ・フレームなど、第１ＳＡＳデバイス１０１から第２ＳＡＳデバイス１０２へデータ・フレームを送るように構成される。第１仮想接続の動作時に、機能強化されたＳＡＳエキスパンダ１０４は、制御論理２１４を介してデータ・フレームを受け取る。機能強化されたＳＡＳデバイスから受け取られたデータ・フレームは、アウトバウンド仮想制御論理２０１を介して、機能強化されたＳＡＳエキスパンダ１０４内の標準ルーティング論理に関連して、第２ＳＡＳデバイス１０２への論理リンクを介する転送のためにＰＨＹ制御論理２２１に転送される。
【００３１】
機能強化されたＳＡＳエキスパンダ１０４は、第１ＳＡＳデバイス１０１を第３ＳＡＳデバイス１０３に結合する第２仮想接続を確立するようにも適合される。この第２仮想接続は、たとえば読み取り要求の処理時などにＳＡＳストレージ・デバイスからホスト・システムＳＡＳデバイスに送り返されるデータ・フレームなど、第１ＳＡＳデバイス内での処理のために第３ＳＡＳデバイスからデータ・フレームを受け取るために構成される。この第２仮想接続の動作時に、機能強化されたＳＡＳエキスパンダ１０４は、ＰＨＹ制御論理２２２を介して第３ＳＡＳデバイス１０３からデータ・フレームを受け取る。これらの受け取られたデータ・フレームは、インバウンド仮想接続論理要素２０２を介して、機能強化された第１ＳＡＳデバイス１０１への転送のためにＰＨＹ制御論理要素２１４に転送される。
【００３２】
したがって、機能強化されたＳＡＳエキスパンダ１０４は、２つの単一方向仮想接続すなわち、第１ＳＡＳデバイス１０１と第２ＳＡＳデバイス１０２との間の第１仮想接続ならびに第１ＳＡＳデバイス１０１と第３ＳＡＳデバイス１０３との間の第２仮想接続を確立するように適合される。第１仮想接続は、第１ＳＡＳデバイスから第２ＳＡＳデバイスへデータ・フレームを送るのに利用され、第２仮想接続は、第３ＳＡＳデバイスから第１ＳＡＳデバイスへデータ・フレームを送るのに利用される。
【００３３】
当業者は、十分に動作する機能強化されたＳＡＳエキスパンダ１０４内で有用であり得るさまざまな異なるおよび追加の要素をたやすく認めるであろう。そのような追加の要素は、この議論を単純簡潔にするために図２では省略されている。
【００３４】
例示的な好ましい実施形態では、本願の機能強化された特徴および態様を、機能強化されたＳＡＳエキスパンダと機能強化されたＳＡＳデバイスとの両方に追加される組合せ論理および／または順序論理内で分散することができる。機能強化されたＳＡＳデバイスを、ＳＡＳエキスパンダへの接続を動作のエンハンスト・モードについて使用可能にすることを要求するように適切に構成することができる。本願の特徴および態様による機能強化されたＳＡＳエキスパンダは、エンハンスト・モード動作を許可することによって、機能強化されたＳＡＳデバイスのこの要求に応答する。本願の機能強化された特徴および態様を有しないレガシＳＡＳエキスパンダは、機能強化されたＳＡＳデバイスからの新しい要求を拒絶し、単純に、標準ＳＡＳ動作モードで動作し続けるはずである。したがって、機能強化されたＳＡＳデバイスは、後方互換であって、適切な機能強化されたＳＡＳエキスパンダに接続されていない時にはＳＡＳ標準規格に従って動作し続ける。
【００３５】
図３は、本願の特徴および態様に従って機能強化されるＳＡＳドメイン・システム内で動作可能な本願の特徴および態様による例示的方法をおおまかに示す流れ図である。上で述べたように、本願の特徴および態様は、ＳＡＳドメインが第１ＳＡＳデバイスと第２および第３の両方のＳＡＳデバイスとの間で二重の単一方向仮想接続を確立することを可能にする。したがって、図３の要素３００は、まず、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間の第１仮想接続を確立するように動作可能である。たとえば、第１ＳＡＳデバイスは、適当なホスト・バス・アダプタを有するホスト・システムまたはサーバとすることができ、第２ＳＡＳデバイスは、ディスク・ドライブまたは他の類似するストレージ・デバイスなどのストレージ・デバイスとすることができる。この第１仮想接続は、第１ＳＡＳデバイスから第２ＳＡＳデバイスにＳＡＳデータ・フレームを送るのに使用される。そのようなデータ送出は、たとえば、情報をストレージ・デバイスに格納するためのホスト・システムまたはサーバの書き込み要求の処理に応答するものとすることができる。この第１仮想接続は、好ましくは、逆方向すなわち第２ＳＡＳデバイスから第１ＳＡＳデバイスへ送られるデータ・フレームを排除する形で確立される。したがって、追加の帯域幅が、現在準備ができており、第１ＳＡＳデバイスへデータ・フレームを送るのを待っている他のストレージ・デバイスのために使用可能なままになる。次に、要素３０２は、第１ＳＡＳデバイスと第３ＳＡＳデバイスとの間で第２仮想接続を確立するように動作可能である。この第２仮想接続は、一般に、第３ＳＡＳデバイスから第１ＳＡＳデバイスにデータ・フレームを送り返すのに使用される。そのような送出は、たとえば、第３デバイス（たとえば、ストレージ・デバイス）が第１ＳＡＳデバイス（たとえば、適当なＳＡＳホスト・バス・アダプタを有するホスト・システムまたはサーバ・ノード）に要求されたデータを返す準備が最終的にできた時のホスト読み取り要求の処理に応答するものとすることができる。第１ＳＡＳデバイスとのこの第２仮想接続は、第１ＳＡＳデバイスにデータを返すのに使用されるので、この第２仮想接続を介する第１デバイスから第３デバイスへのデータ・フレームの送出は、好ましくは排除される。両方の単一方向仮想接続が確立された状態で、要素３０４は、第１仮想接続と第２仮想接続との両方での送出の実質的なオーバーラップを達成する形で両方の仮想接続を動作させるように動作可能である。言い換えると、第１仮想接続を、第１ＳＡＳデバイスから第２ＳＡＳデバイスへの情報の送出により十分に利用できると同時に、第２仮想接続は、準備ができ、第１ＳＡＳデバイスへ情報を送り返すことができるすべての第３ＳＡＳデバイスのために使用可能なままになる。
【００３６】
当業者は、単に両方の仮想接続の確立に続くデータ送出だけではなく、要素３００から３０４までの詳細な実施態様のさまざまなステップのすべてをオーバーラップさせることができることをたやすく認めるであろう。言い換えると、第２仮想接続を確立する必要（たとえば、第３ＳＡＳデバイスの準備ができ、第１ＳＡＳデバイスに情報を送り返すことができることに起因して生じる必要）が生じる前に、第１仮想接続を確立し、送出を開始することができる。したがって、第２ＳＡＳ仮想接続の確立が、既に確立された第１仮想接続のデータ・フレーム送出とオーバーラップしてもよく、かつ／または、第１仮想接続の確立のための低水準動作とオーバーラップしてもよい。類似する形で、第１仮想接続は、第２仮想接続が動作中のままである間に、まだ確立されていなくてもよく、あるいは、完了されクローズされてもよい。したがって、第１仮想接続を、前に確立された第２仮想接続の進行中の動作と実質的にオーバーラップして確立することができる。言い換えると、第１接続および第２接続の確立に特定の順序またはシーケンスを含める必要はない。これらを、適用可能なＳＡＳドメイン内のデータ送出の特定の必要に応じて、本質的にすべての有用なシーケンスで確立し、利用することができる。
【００３７】
当業者は、本願の特徴および態様による十分に機能する方法に含めることができる多数の同等のおよび追加の方法ステップを認めるであろう。そのような追加の詳細なステップは、この議論を単純簡潔にするために図３では省略されている。さらに、当業者は、図３の方法が、本願の特徴および態様によるシステムの動作の幅広い態様を表すことを意図されていることを認めるであろう。図３のステップのある種の詳細な処理を、機能強化されたＳＡＳデバイス内で排他的に実行し、機能強化されたＳＡＳエキスパンダ内で排他的に実行し、あるいは、あるＳＡＳドメインの機能強化されたＳＡＳエキスパンダと機能強化されたＳＡＳデバイスとの両方を介して分散させることができる。
【００３８】
さらに、当業者は、ＳＡＳデバイス、ＳＡＳエキスパンダ、ＳＡＳドメイン全体のある種の条件、または動作のエンハンスト・モードで結合された１つもしくは複数のデバイスによって要求されるある種のプロトコル交換が、デバイスの間で調整される完了要求または完了表示の前の機能強化された接続の終了を必要とする場合があることを認めるであろう。たとえば、そのような機能強化された接続に現在用いられているデバイスが、ＳＴＰ  ＳＡＳプロトコル交換のオープンを必要とする場合に、この機能強化された接続が、その動作に干渉する場合がある。したがって、機能強化された接続を、機能強化された接続に用いられるデバイスまたはエキスパンダのうちのいずれかでのそのような条件の検出によってクローズし、または終了することができる。
【００３９】
したがって、図３は、そのようなどこで処理が実行されるかにかかわりなく、本願の特徴および態様による例示的な幅広い方法を表すことを意図されている。上で注記したように、例示的実施形態では、図３の方法の処理が、好ましくは、機能強化されたＳＡＳエキスパンダのポートへのリンク上での動作のエンハンスト・モードを要求する機能強化されたＳＡＳデバイスの間で分散される。機能強化されたＳＡＳエキスパンダおよび機能強化されたＳＡＳデバイスは、協力して、確立された接続の使用可能帯域幅をよりよく利用するために図３の方法を実行する。
【００４０】
図４は、３つのＳＡＳデバイスの間の複数の単一方向仮想接続を確立する本願の特徴および態様による例示的方法を示す流れ図である。要素４００は、まず、第１ＳＡＳデバイスとＳＡＳエキスパンダとの間の動作のエンハンスト・モードを確立するように動作可能である。上で注記したように、本願の特徴および態様の例示的な好ましい実施形態では、図４の方法を処理するのに用いられるステップを、機能強化された第１ＳＡＳデバイスとこの第１デバイスが結合される機能強化されたＳＡＳエキスパンダとの間で協調的に分散させることができる。本願の機能強化された特徴および態様が、既存の標準ＳＡＳデバイス（たとえば、「レガシ」デバイス）と後方互換のままになる形で実施されることが望ましい。したがって、本願の機能強化された特徴および態様を、好ましくは、機能強化されたＳＡＳデバイスが、それが結合される機能強化されたＳＡＳエキスパンダがこの機能強化されたＳＡＳデバイスに関してエンハンスト動作モードに入ることを要求することによって使用可能にされるものとすることができる。
【００４１】
新しいトランザクション・メッセージおよび応答を、第１デバイスとエキスパンダとの間で交換して、エンハンスト・モードを使用可能にすることができる。エキスパンダが肯定的に応答する場合に、下のエンハンスト・モード処理を開始することができる。エキスパンダが、エンハンスト・モード処理を処理するように適合されていない（たとえば、レガシ・エキスパンダ）場合には、そのエキスパンダは、新しいコマンドまたはメッセージを拒絶し、図３および４の機能強化された方法ではなく、標準的な後方互換ＳＡＳプロトコルが使用される。代替案では、エンハンスト・モードを、既存ＳＡＳトランザクションの特殊なベンダ・ユニーク・パラメータによって要求することができる。類似する形で、エキスパンダが、そのようなエンハンスト・モードを処理するように適合されている場合に、そのエキスパンダは、ある形でその要求に肯定的に肯定応答して、エンハンスト・モード動作を開始する。ＳＡＳデバイスとＳＡＳエキスパンダとの間のそのような新しいメッセージまたはトランザクションの詳細な構造およびフィールドは、設計選択の問題として、当業者にたやすく明白になるであろう。
【００４２】
そのようなエンハンスト・モードがそのように使用可能にされた状態で、要素４０２から４１０までの処理を、要素４２０から４３４までの反復処理と実質的にオーバーラップして反復的に進めることができる。一般に、要素４０２から４１０までは、機能強化された第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間の第１仮想接続を確立し、利用するように動作可能である。第１ＳＡＳデバイスは、好ましくは、要素４００の動作によって使用可能にされたエンハンスト動作のために使用可能にされたＳＡＳエキスパンダのポートに結合される。第２ＳＡＳデバイスを、ＳＡＳエキスパンダの任意の他のポートまたは、第１デバイスが結合されるＳＡＳエキスパンダを介して到達可能なＳＡＳドメイン内の他の場所に結合することができる。
【００４３】
要素４０２は、第１仮想接続を確立する要求を待つ。そのような要求は、本願の特徴および態様に従って機能強化された第１ＳＡＳデバイスが、第２ＳＡＳデバイスへの情報の送出を必要とする時に生じる。具体的に言うと、第１ＳＡＳデバイスが、第２ＳＡＳデバイスにデータ・フレームを送出することを必要とするが、第２デバイスは、第１ＳＡＳデバイスに情報を送り返す準備ができていない可能性が高い。そのような必要が生じる時に、要素４０４は、第１デバイスから第２デバイスへのデータ・フレームの送出を可能にするために、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間で第１仮想接続を確立するように動作可能である。上で注記したように、そのような送出の例は、ＳＡＳホスト・バス・アダプタ・デバイスを組み込まれたホスト・システムまたはサーバ・ノードでのＩ／Ｏ書き込み要求の処理に応答するものとすることができ、あるいは、たとえば、Ｉ／Ｏ読み取り要求に応答してＳＡＳストレージ・デバイスから要求元ホスト・システムへの要求されたデータを返すこととすることができる。そのような接続の確立は、たとえばフレーム・アドレス・オープン・プリミティブおよびそれに応答する関連するオープン受入プリミティブおよび／またはオープン拒絶プリミティブを含む、周知のＳＡＳプリミティブを利用する。しかし、上で注記したように、この単一方向第１仮想接続は、第１デバイスから第２デバイスへのデータ送出専用と意図されている。したがって、次に、要素４０６は、第１ＳＡＳデバイスが第２ＳＡＳデバイスから返されるすべてのデータ・フレーム送出を受け入れないことを示すためにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを第２ＳＡＳデバイスに即座に送るように動作可能である。そのようなＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブおよび関連するプロトコルの使用は、ＳＡＳ仕様書で文書化されたものとして当業者に周知である。次に、要素４０８は、第１仮想接続上で第１ＳＡＳデバイスから第２ＳＡＳデバイスにデータ・フレームを送るために確立された第１仮想接続を利用するように動作可能である。そのようなデータ・フレーム送出は、第２ＳＡＳデバイスによって与えられる受取クレジット・ハンドシェーク情報を利用して、通常のＳＡＳ仕様およびプロトコルに従って実行される。要素４０８が、第２デバイスに送るべきすべてのデータ・フレームの送出を完了する時に、第１仮想接続は、標準ＳＡＳプロトコルに従って要素４１０の動作によってクローズされる。その後、処理は、同一の第１ＳＡＳデバイスからのもう１つの第１仮想接続を確立する要求を待つために要素４０２にループ・バックすることによって継続される。
【００４４】
上で注記したように、要素４２０から４３４までは、要素４０２から４１０までの動作と実質的に同時に動作可能である。要素４２０から４３４までは、一般に、第３ＳＡＳデバイスから第１仮想接続の同一の第１ＳＡＳデバイスに情報を送り返すのに使用される第２の単一方向仮想接続を確立し、利用するように動作可能である。そのような動作は、たとえば、アドレッシングされるストレージ・デバイス（たとえば、第３ＳＡＳデバイス）が、要求されたデータを返す準備をする際に遅延される、ホスト読み取り要求に応答して実行することができる。そのような待ち時間は、たとえば、回転式ディスク・ドライブ・ストレージ・デバイスで一般的である。したがって、要素４２０は、まず、そのような第２仮想接続を確立する必要を待つように動作可能である。そのような第２仮想接続は、ある第３ＳＡＳデバイスが第１ＳＡＳデバイスとの接続の確立を要求する（たとえば、要求された読み取りデータを返すために）時に、要求されると考えることができる。そのような要求の検出時に、次に、要素４２２は、第３デバイスから第１ＳＡＳデバイスにデータ・フレームを送り返すことを可能にするために、第３ＳＡＳデバイス内の第１デバイスの間で第２仮想接続を確立するように動作可能である。上の要素４０４と同様に、この単一方向第２仮想接続は、第３デバイスから第１デバイスへデータ・フレームを送り返すことのみを意図されている。したがって、第１デバイスは、第３ＳＡＳデバイスから受け取られる受取クレジット情報を破棄するように動作可能であり、かつ／または単純に第１デバイスから第３デバイスに（たとえば、この第２仮想接続の単一方向の性質と反対の方向で）送ることを試みない。要素４２４から４３２までは、第３デバイスから第１デバイスに送り返される準備ができたすべてのフレームを受け取るために反復的に動作可能である。具体的に言うと、要素４２４は、第２仮想接続を介して、第３ＳＡＳデバイスから第１ＳＡＳデバイスに送り返される１つまたは複数のフレームを受け取る。要素４２６は、受取クレジットおよび対応するＲＲＤＹプリミティブを介して送出フローを管理するための標準ＳＡＳ仕様およびプロトコル処理を表す。要素４２８は、第３ＳＡＳデバイスでのフレームの受取に関連するすべての受け取られたクレジット情報を破棄するための上で注記した第１ＳＡＳデバイス内の処理を表す。第３ＳＡＳでのそのような受取は、第１ＳＡＳデバイスから第３ＳＡＳデバイスへの単一方向動作を意図されたこの第２仮想接続に関連しない。他のＳＡＳデバイスが、第１ＳＡＳデバイスへのそれ自体の接続を確立することを非同期に試みる場合がある（たとえば、他のＳＡＳデバイスも、要求する第１ＳＡＳデバイスにデータを返す準備ができた時に）。そのようなさらなる接続要求は、この第２仮想接続がクローズされるまで拒絶されるものとすることができる。したがって、要素４３０は、現在第１ＳＡＳデバイスとの通信を必要としている他のＳＡＳデバイスからのすべての後続の接続要求を破棄しまたは拒絶する処理を表す。次に、要素４３２は、第３ＳＡＳデバイスからの追加の受取フレームが期待されるかどうかを判定する。そうである場合には、処理は、要素４２４にループ・バックすることによって継続される。そうでない場合には、次に、要素４３４が、第２仮想接続をクローズし、同一のまたは別のＳＡＳデバイスと第１ＳＡＳデバイスとのもう１つの第２仮想接続を再確立する必要を待つ要素４２２にループ・バックすることによって処理を継続するように動作可能である。具体的に言うと、そのオープン要求が要素４３０の動作によって拒絶されまたは破棄されたデバイスは、もう一度そのような接続の確立を試み、もう一度新しい第２仮想接続を確立するために要素４２０から４３４までの処理を再開することができる。
【００４５】
当業者は、図４の方法に従って動作する十分に機能するシステムで有用である可能性があるさまざまな同等のおよび追加の方法ステップを認めるであろう。具体的に言うと、要素４００は、上では、本願の特徴および態様による機能強化された第１ＳＡＳデバイスと機能強化されたＳＡＳエキスパンダとの間の機能強化された接続モードを確立する処理を表すものとして説明された。エンハンスト動作モードは、機能強化された第１デバイスがエンハンスト動作モードを打ち切る適当なディレクティブを送る場合に、いつでも打ち切ることもできる。そのようなエンハンスト動作モードの確立および打切りに関連する特定のコマンドまたはプリミティブは、設計選択の問題として、当業者にたやすく明白になるであろう。
【００４６】
さらに、上で注記したように、図４の方法を、機能強化されたＳＡＳデバイス内で排他的に実行され、機能強化されたＳＡＳエキスパンダ内で排他的に実行され、あるいはより好ましくは、機能強化されたＳＡＳデバイスとそのデバイスが結合される機能強化されたＳＡＳエキスパンダとの間で協調的に分散されるものとして実施できることを、当業者は認めるであろう。さらに、図４の方法を実施する特定の組合せ論理および／または順序論理ならびに状態機械変形形態は、ＳＡＳ仕様およびその中で定義される状態機械に精通した当業者にはたやすく明白になるであろう。
【００４７】
図５は、本願の特徴および態様による複数のＳＡＳデバイスとＳＡＳエキスパンダとの間のＳＡＳトランザクションの例示的交換を示す図である。図５では、時間が図の下に向かって進行する。一連の方向付きの水平の矢印は、それぞれ、第１ＳＡＳコンポーネントから受け取るＳＡＳコンポーネントに転送されるＳＡＳメッセージ／プリミティブ交換を表す。矢印の始めは、対応するメッセージを送るＳＡＳコンポーネントを表す垂直線に関連し、方向付きの矢印の矢の付いた終りは、転送されるメッセージを受け取るコンポーネントに対応する垂直線で終わる。図５に例示されたメッセージ交換は、図の左側の最初の垂直線によって表される第１ＳＡＳデバイス（たとえば、ＳＡＳイニシエータまたはターゲット・デバイス）、左から２番目の垂直線によって表されるＳＡＳエキスパンダ、ならびに、すべてが同一のＳＡＳエキスパンダの対応するポートに結合され、それぞれがたとえば１つのＳＡＳデバイス（たとえば、ストレージ・サブシステム内のストレージ・デバイスなどのターゲット・デバイスまたは他のイニシエータ／ホスト・デバイス）を表す第２、第３、および第４のＳＡＳデバイスを有するＳＡＳドメイン内の交換を表す。
【００４８】
矢印５１０は、第１ＳＡＳデバイスおよびＳＡＳエキスパンダが本願の特徴および態様による機能強化された動作を可能にすることにおいて協力することを要求する、第１ＳＡＳデバイス（ＤＥＶ１）からＳＡＳエキスパンダ（ＥＸＰ）への送出を表す。特定のＳＡＳトランザクション（すなわち、第１ＳＡＳデバイスからＳＡＳエキスパンダに転送されるメッセージ）は、設計選択の問題として、任意の有用なメッセージまたはトランザクションとすることができる。矢印５０１に対応するメッセージに応答して、矢印５０２は、エンハンスト動作モード要求の受入を示す、ＳＡＳエキスパンダから第１ＳＡＳデバイスへの応答を表す。ＳＡＳエキスパンダが、エンハンスト動作モードをサポートしないレガシ・デバイスである場合には、適切な拒絶メッセージを第１ＳＡＳデバイスに返して、これによって、そのようなエンハンスト動作がこの特定のＳＡＳドメイン内で（この特定のＳＡＳエキスパンダを介して）許容されないことを第１ＳＡＳデバイスに知らせることができる。
【００４９】
第１ＳＡＳデバイスとＳＡＳエキスパンダとの間のエンハンスト動作モードをそのように確立した後に、矢印５０３は、第１ＳＡＳデバイスから第２ＳＡＳデバイス（ＤＥＶ２、中間ＳＡＳエキスパンダを介する）へ向けられた標準的な接続オープン要求を表す。この接続オープン要求は、特定の接続のアドレス・フレーム・オープン要求を利用する標準ＳＡＳ要求であり、その接続のある種のパラメータを確立する。第１の単一方向仮想接続の受入に応答して、第２ＳＡＳデバイスは、第１デバイスから送られるデータ・フレームの受入に使用可能なクレジットを示す標準ＲＲＤＹプリミティブを第１ＳＡＳデバイスに返すことができる。実際には、受け取られたフレームを格納するのに使用可能なバッファの個数のカウントを示す、複数のそのようなＲＲＤＹプリミティブが、第２ＳＡＳデバイスから第１ＳＡＳデバイスに転送される。第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間のメッセージのフローを制御するのに利用されるクレジット・プロトコルは、当業者に周知である。
【００５０】
本願の特徴および態様によれば、第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間でそのように確立された接続は、第１ＳＡＳデバイスから第２ＳＡＳデバイスへのフレームの送出すなわち第１の単一方向仮想接続だけのためにこのエンハンスト・モードで使用されることを意図されている。第２ＳＡＳデバイスが第１ＳＡＳデバイスにデータ・フレーム送出を介して情報を返すことを試みないことを保証するのを助けるために、第１ＳＡＳデバイスは、好ましくは、矢印５０５によって示されるように第２ＳＡＳデバイスにＣＲＥＤＩＴ  ＢＬＯＣＫＥＤプリミティブを送出することができる。ｃｒｅｄｉｔ  ｂｌｏｃｋｅｄプリミティブは、第１デバイスが第２ＳＡＳからのデータ送出を受け取る準備ができていないかそれを期待していないことを示すのに使用される標準ＳＡＳプリミティブである。
【００５１】
第３ＳＡＳデバイス（ＤＥＶ３）は、第１ＳＡＳデバイスに情報を返す準備が非同期にできる可能性があり、したがって、第１ＳＡＳデバイスへのオープン接続を要求する場合がある。矢印５０６は、この第３ＳＡＳデバイスから中間ＳＡＳエキスパンダを介して第１ＳＡＳデバイスに向けられたそのような標準ＳＡＳ接続オープン要求を表す。エンハンスト動作モードに従って、ＳＡＳエキスパンダは、そのオープン要求を第１ＳＡＳデバイスに渡すことを許可して、反対方向すなわち第３ＳＡＳデバイスから第１ＳＡＳデバイスへのデータの送出用の第２の単一方向仮想接続の確立を可能にする。矢印５０７は、第１ＳＡＳデバイスから中間ＳＡＳエキスパンダを介して第３ＳＡＳデバイスに返される標準オープン受入プリミティブを表す。したがって、第２の単一方向接続は、第３ＳＡＳデバイス内で第１ＳＡＳデバイスの間で確立される。第２の単一方向仮想接続は、第１ＳＡＳデバイスに戻るデータ・フレーム送出に使用され、上で確立された第１仮想接続は、第１ＳＡＳデバイスから第２ＳＡＳデバイスへのデータ・フレーム送出に使用される。
【００５２】
第１デバイスとの二重の単一方向仮想接続を確立することによって、第１ＳＡＳデバイスをＳＡＳエキスパンダに結合するＳＡＳポート／リンクの利用度を、従来の技法を超えて改善することができる。従来の技法は、単一の論理リンクを介する２つのデバイスの間の全二重通信を可能にするが、単一のディスク・ドライブ・ストレージ・デバイスまたは一部のＲＡＩＤストレージ・システムへのＳＡＳ接続において、オープン接続内で結合されたイニシエータおよびターゲットが、両方の方向でデータ・フレームの同時送出の必要を有することは、まれな事象であった。本願の特徴および態様によれば、矢印５０１から５０７までとして表されたメッセージによって確立される２つの単一方向仮想接続は、第１デバイスが第２ＳＡＳデバイスにフレームを送出すると同時に第３ＳＡＳデバイスからデータ・フレームを受け取ることを可能にする。
【００５３】
第２の単一方向仮想接続の確立に応答して、第１ＳＡＳデバイスは、第３デバイスから送出されるデータ・フレームの受取に使用可能なクレジットを示す標準ＲＲＤＹプリミティブを第３ＳＡＳデバイスに返すことができる。実際には、受け取られたフレームを格納するのに使用可能なバッファの個数のカウントを示す、複数のそのようなＲＲＤＹプリミティブが、第１ＳＡＳデバイスから第３ＳＡＳデバイスに転送される。第１ＳＡＳデバイスと第３ＳＡＳデバイスとの間のメッセージのフローを制御するのに利用されるクレジット・プロトコルは、当業者に周知である。本願の機能強化された特徴および態様は、単に２つの単一方向仮想接続のそれぞれについてクレジット管理論理を分離するが、それ以外の点では、当業者に周知のＳＡＳ仕様に記載のクレジット管理プロトコル用と本質的に同一の状態機械論理を利用する。
【００５４】
第２の単一方向仮想接続が確立されている間のどの時にも、もう１つのデバイスが、第１ＳＡＳデバイスにデータを送り返す準備ができる可能性がある。矢印５０９は、第１ＳＡＳデバイスに向かって向けられた第４ＳＡＳデバイス（ＤＥＶ４）からのそのような接続オープン要求を表す。ＳＡＳエキスパンダの機能強化された特徴は、このオープン要求をインターセプトし、第２仮想接続が現在確立されていることを知って、オープン拒絶ＳＡＳプリミティブを返す。通常のＳＡＳプロトコル処理に従って、第４ＳＡＳデバイスは、要求が受け入れられるかタイムアウトまたは再試行カウントを超える時まで、オープン要求を繰り返すことができる。したがって、矢印５１１および５１２は、第１ＳＡＳデバイス内で第４ＳＡＳデバイスの間のオープン接続を確立する試みと、現在確立されている第２仮想接続を考慮したその第２の拒絶との繰り返しを表す。当業者は、第４ＳＡＳデバイスによって試みられる再試行の特定の回数またはそのような新しい接続を確立する試みに関連するタイムアウト値の持続時間が、特定のＳＡＳドメインおよび応用例に関する設計選択の問題であることを、たやすく認めるであろう。代替実施形態では、接続オープン要求を拒絶するのではなく、機能強化されたＳＡＳエキスパンダは、現在の仮想接続が終了されるまで効果的にオープン要求を「ストール」させるために、第４デバイスにＡＩＰプリミティブを返すことができる。そのようなＡＩＰプリミティブは、要求された接続が現在ビジーであることを示すために、ＳＡＳプロトコルで既知である。したがって、既知のＳＡＳプロトコルに従って、第４デバイスは、現在の仮想接続が終了されるまでストールすることができる。その後、第４デバイスの「ストールされた」オープン要求を第１ＳＡＳデバイスに転送して、もう１つの第２仮想接続を確立することができる。
【００５５】
集合的に５１４として識別される関連する矢印のグループ（５１４．１から５１４．６まで）は、第１仮想接続および第２仮想接続を介する交換の実質的オーバーラップを表すことを意図されている。上で注記したように、第１仮想接続は、第１ＳＡＳデバイスから第２ＳＡＳデバイスにデータ・フレームを送るのに使用され、第２仮想接続は、第３ＳＡＳデバイスから同一の第１ＳＡＳデバイスにデータ・フレームを送り返すのに利用される。矢印５１４．１は、第１ＳＡＳデバイスから第２ＳＡＳデバイスへの第１仮想接続を利用する１つまたは複数のデータ・フレーム送出を表す。これに応答して、矢印５１４．２は、送出されたフレームがバッファリングされ、最終的に第２ＳＡＳデバイス内で消費される時に、第１仮想接続を使用して第２ＳＡＳデバイスから第１ＳＡＳデバイスに返される１つまたは複数のＲＲＤＹプリミティブを表す。矢印５１４．３は、第２仮想接続を使用する、第３ＳＡＳデバイスから第１ＳＡＳデバイスに戻る１つまたは複数のデータ・フレームの送出を表す。矢印５１４．４は、第１仮想接続を使用する第２デバイスから第１ＳＡＳデバイスへのＡＣＫプリミティブの最終的なリターンを表す。矢印５１４．５および５１４．６は、第２仮想接続を使用する第１ＳＡＳデバイスから第３ＳＡＳデバイスへのＲＲＤＹプリミティブおよびＡＣＫプリミティブの最終的なリターンを表す。したがって、図５は、２つの同時オープン仮想接続を利用する３つのＳＡＳデバイス（ＳＡＳデバイス１、ＳＡＳデバイス２、およびＳＡＳデバイス３）の間で交換されるメッセージの実質的なオーバーラップを例示するものである。
【００５６】
５１４として表されたメッセージのグループ化は、両方の方向でのデータ・フレームの送出（たとえば、５１４．１および５１４．３）と、送出されたフレームの受取に応答するＲＲＤＹプリミティブおよびＡＣＫプリミティブの送出（たとえば、５１４．２、５１４．４、５１４．５、および５１４．６）などの実質的なオーバーラップを表す。当業者は、２つの仮想接続を介して交換されるさまざまなメッセージが、完全ではないとしても実質的に互いにオーバーラップし得ることをたやすく認めるであろう。仮想接続のうちの任意の単一の１つを介して交換されるメッセージは、ＳＡＳプロトコルに従って適当な順序およびシーケンスで交換される。言い換えると、第１仮想接続を介するフレームの送出（５１４．１）は、第１仮想接続を使用して第２ＳＡＳデバイスから第１ＳＡＳデバイスに返される対応するＲＲＤＹプリミティブおよびＡＣＫプリミティブ（５１４．２および５１４．４）に必ず先行しなければならない。同様の形で、第３ＳＡＳデバイスから第１ＳＡＳデバイスへの第２仮想接続上で送出されるデータフレーム（５１４．３）は、第２仮想接続を使用して第１ＳＡＳデバイスから第３ＳＡＳデバイスに返される対応するＲＲＤＹプリミティブおよびＡＣＫプリミティブ（５１４．５および５１４．６）に必ず先行しなければならない。しかし、第１仮想接続上のさまざまなトランザクション（５１４．１、５１４．２、および５１４．４）は、第２仮想接続上のトランザクション（５１４．３、５１４．５、および５１４．６）と実質的にオーバーラップすることができる。
【００５７】
当業者は、さまざまなデバイスの間で交換できる多数の追加のまたは代替のＳＡＳメッセージおよびトランザクションをたやすく認めるであろう。そのような追加のメッセージは、この議論を単純簡潔にするために図５から除去されている。したがって、図５は、単に本願の特徴および態様に従ってさまざまなＳＡＳデバイスの間でオーバーラップできるある単純化されたメッセージ交換の例示として意図されている。具体的に言うと、オープンな確立された仮想接続を、確立された接続に関連するいずれかのデバイスの動作によってクローズすることができる。たとえば、第２仮想接続が、第１ＳＡＳデバイスまたは第３ＳＡＳデバイスのいずれかの動作によってクローズされる時に、もう１つのＳＡＳデバイス（たとえば、第４ＳＡＳデバイス）が、第４デバイスから第１デバイスにデータ・フレームを送出するために第４ＳＡＳデバイスを第１ＳＡＳデバイスに結合する第２仮想接続を再確立することができる。さらに、追加の機能強化されたメッセージを、第１ＳＡＳデバイスとＳＡＳエキスパンダとの間で交換して、エンハンスト動作モードを終了することができる。エンハンスト動作モードを、それぞれ本願の特徴および態様によって機能強化された第１ＳＡＳデバイスおよび／またはＳＡＳエキスパンダによって判定される任意の複数の理由について終了することができる。エンハンスト動作モードがそのように終了される時に、図５によって暗示されるすべてのデバイスの間のすべてのトランザクションが、標準的な既存のＳＡＳプロトコルおよび仕様に従って動作する。
【００５８】
さらに、当業者は、第１仮想接続および第２仮想接続の確立に関して特定の順序が要求されないことをたやすく認めるであろう。言い換えると、第１仮想接続を、第１ＳＡＳデバイスにデータ・フレームを返すことを望む第３ＳＡＳデバイスによって確立することができる。その接続の確立の後に、第２仮想接続を、第１ＳＡＳデバイスから第２ＳＡＳデバイスにデータ・フレームを送出するために第１ＳＡＳデバイスと第２ＳＡＳデバイスとの間で確立することができる。
【００５９】
図６は、機能強化された第１ＳＡＳデバイスと２つの他のＳＡＳデバイスのそれぞれとの間で実質的にオーバーラップする通信を可能にするために第１デバイスと他のＳＡＳデバイスのそれぞれとの間で接続性を提供するための、本願の特徴および態様に従って機能強化された機能強化されたＳＡＳエキスパンダの例示的実施形態のブロック図である。
【００６０】
図６は、２つの標準ＰＨＹ層６０２および６０４を有する単純化された例示的な機能強化されたＳＡＳエキスパンダ１０４の機能要素を示す。各標準ＰＨＹ層６０２および６０４は、対応する接続されたＳＡＳデバイスとの間でＳＡＳ情報を受け取り、送るために、それぞれ受取論理６２１および６２３を含み、それぞれ送出論理６２２および６２４を含む。
【００６１】
機能強化されたＳＡＳエキスパンダ１０４は、機能強化されたＳＡＳデバイス（すなわち、第１デバイス（図示せず））に結合するための機能強化されたポート／リンク６００をも含む。機能強化されたポート／リンク６００は、接続された機能強化された第１ＳＡＳデバイスからＳＡＳ情報を受け取り、送るために、そのめいめいの受取論理６１６および送出論理６１８と共に標準ＰＨＹ層６１２を含む。機能強化されたポート／リンク６００は、機能強化されたポート／リンク６００に結合された第１デバイスと標準ＰＨＹ層６０２に結合された第２デバイスとの間ならびに第１ＳＡＳデバイスと標準ＰＨＹ層６０４に結合された第３ＳＡＳデバイスとの間の同時接続を調整するためのインターリーバ６１０およびデマルチプレクサ６１４をも含む。機能強化されたＳＡＳエキスパンダは、同時仮想接続の調整のための、ＲＸモニタおよび接続制御論理６４０ならびにクロスバ・スイッチ６５０をも含む。
【００６２】
制御論理６４０が、動作のエンハンスト・モードが使用中ではない（すなわち、エンハンスト・モード・コマンド要求および／または仮想接続要求が行われていない）場合には、制御バス６３０に印加される信号が、インターリーバ６１０およびデマルチプレクサ６１４によるエンハンスト処理をディスエーブルし、単純に、通常動作すなわち２つのデバイスの間の全二重ポイント・ツー・ポイント接続の通常動作のためにクロスバ・スイッチ６５０を構成する。言い換えると、機能強化されたＳＡＳエキスパンダ１０４は、任意の標準ＳＡＳポートとしての使用のために機能強化されたポート／リンク６００を構成するように動作可能である。
【００６３】
エンハンスト・モード動作では（すなわち、エンハンスト・モード動作を要求するコマンドまたは順序付きセットの検出時に）、制御論理６４０は、３つすべてのポートの受取論理（６１６、６２１、および６２３）で交換されるＳＡＳ順序付きセットを監視し、制御バス６３０に制御信号（ラベル「Ａ」）を印加して、インターリーバ６１０、デマルチプレクサ６１４、およびクロスバ・スイッチ６５０を制御する。制御論理６４０は、同時の第１および第２の仮想接続、たとえば第１デバイスと第２デバイスとの間の第１仮想接続ならびに第１デバイスと第３デバイスとの間の第２仮想接続の確立および終了のためにクロスバ・スイッチ６５０を構成するために、３つのポートのいずれかから受け取られる順序付きセットを監視する。デバイスのいずれもが、他のデバイスとの仮想接続をクローズしまたは終了することができる。
【００６４】
第１および第２の仮想接続の動作中（すなわち、少なくとも１つの仮想接続を確立されたエンハンス・モードで）、制御論理６４０は、対応する仮想接続の一方のデバイスから適当な他方のデバイスに順序付きセットを向けることによって、両方の仮想接続の同時使用を調整するために機能強化されたポート６００のデマルチプレクサ６１４およびインターリーバ６１０の動作を制御する。この調整は、順序付きセットが仮想接続内で失われないことを保証し、クリティカルな順序付きセットが適当なデバイスに必要な場合には正しい順序で送達されることを保証するために、順序付きセットのバッファリングおよび／またはキューイングをも伴う場合がある。
【００６５】
たとえば、第１仮想接続が、第１デバイス（機能強化されたポート６００に結合される）から第２デバイス（標準ＰＨＹ論理６０２に結合される）へのデータ送出のために第１デバイスと第２デバイスとの間で確立されると仮定する。さらに、たとえば、第３デバイス（標準ＰＨＹ論理６０４に結合される）から第１デバイスへのデータの送出のための第１デバイスと第３デバイスとの間の第２仮想接続を仮定する。
【００６６】
この例示的な第１仮想接続では、データ順序付きセット送出が、一般に、第１デバイス（機能強化されたポート６００上）から第２デバイス（標準ＰＨＹ  ６０２上）への交換を支配する。そのようなデータ順序付きセットは、一般に、機能強化されたポート６００の受取論理６１６からデマルチプレクサ６１４およびスイッチ６５０を介し、経路６６８および６６２を介して標準ＰＨＹ  ６０２の送出論理６２２に流れる。類似する形で、データ順序付きセット送出は、一般に、第３デバイス（標準ＰＨＹ  ６０４上）から第１デバイス（機能強化されたポート６００上）への交換を支配する。そのようなデータ順序付きセットは、一般に、標準ＰＨＹ層６０４の受取論理６２３からスイッチ６５０およびインターリーバ６１０を介し、経路６６６および６６４を介して機能強化されたポート６００の送出論理６１８に流れる。
【００６７】
データ順序付きセットは、受取論理６２３から送出論理６１８への適用に関してインターリーバ６１０に入る送出を支配する可能性があるが、受取論理６２１からの順序付きセットも、プロトコル・ハンドシェーク、接続のオープン、接続のクローズ、フロー制御などのために受け取られる場合がある。類似する形で、受取論理６１６から送出論理６２２へのデータ順序付きセットは、デマルチプレクサ６１４を介する送出を支配するが、時々、受取論理６１６からの順序付きセットは、プロトコル・ハンドシェーク、接続のオープン、接続のクローズ、フロー制御などのためにデマルチプレクサ６１４を介して送出論理６２４に向けられる。したがって、デマルチプレクサ６１４は、機能強化されたポート６００の受取論理６１６から順序付きセットを受け取り、受け取られた順序付きセットをスイッチ６５０を介し経路６６６を介して標準ＰＨＹ層６０２にまたは経路６６８を介して標準ＰＨＹ層６０４に適用するように適合される。制御論理６４０は、経路の選択を調整し、スイッチ６５０をそれ相応に構成する。さらに、インターリーバ６１０は、経路６６２および６６６を介して受取論理６２１からまたは経路６６４および６６８を介して受取論理６２３からのいずれかで順序付きセットを受け取り、受け取られた順序付きセットを送出論理６１８に適用するように適合される。インターリーバ６１０は、スイッチ６５０を構成するために制御論理６４０によって生成される制御信号６３０とあいまってこの通信を調整する。
【００６８】
デマルチプレクサ６１４は、一般に、たとえば送出論理６２２または送出論理６２４へのデータ・セットの送出を受取論理６１６を用いて調整する（スイッチ６５０を構成する制御論理６４０とのさらなる調整を伴って）状態機械を実施することのできる組合せ論理および／または順序論理を含む。
【００６９】
インターリーバ６１０は、一般に、送出論理６１８への適用のために受取論理６２１または受取論理６２３のいずれかから受け取られた順序付きセットをインターリーブするように動作可能な組合せ論理および／または順序論理を含む。インターリービング（制御論理６４０の監視特徴と協力する）は、受取論理６２３からのデータ・フレームの支配的な送出においてアイドル期間が使用可能である時を検出することができる。そのようなアイドル期間が検出されるまで、送出論理６１８への適用のために受取論理６２１から受け取られる順序付きフレームを、後の適用のためにバファリング／キューイングすることができる。制御論理６４０およびインターリーバ６１０が、最終的にアイドル期間を識別する時に、バッファリング／キューイングされた順序付きセット（ある場合に）を、キューから送出論理６１８を介して第１デバイスに転送することができる。
【００７０】
図６に示された機能強化されたＳＡＳエキスパンダ１０４の機能要素は、その中で実行される機能の１つの例示的な可能な分解を表す。当業者は、機能強化されたＳＡＳエキスパンダ内での本願の特徴および態様の多数の類似するおよび同等の機能的分解をたやすく認めるであろう。具体的に言うと、上で述べた論理特徴の詳細な設計および実施態様は、設計選択の問題として当業者にたやすく明白になるであろう。さらに、当業者は、複数のそのような機能強化されたポート６００を提供し、すべてのそのようなポートを互いに結合してそれらの間の複数の仮想接続を確立するために機能強化されたエキスパンダ１０４をスケーリングするための、上で図６で説明した機能要素に対する拡張をたやすく認めるであろう。したがって、図６は、単に、本願の特徴および態様の１つの可能な実施形態の例示であることを意図されている。
【００７１】
上で注記したように、機能強化されたエキスパンダのインターリーバは、第２デバイスから第１デバイスに送られた１つまたは複数の順序付きセットを第３デバイスから第１デバイスへの他の順序付きセット送出とインターリーブできる時までそのような順序付きセットを一時的に保存するためのバッファリング論理および／またはキューイング論理を含むことができる。任意の周知のバッファリング／キューイング構造を、機能強化されたＳＡＳエキスパンダ内でこの機能のために使用することができる。
【００７２】
下は、ＳＡＳプロトコルの例示的な一般的な順序付きセットの議論と、第２または第３デバイスのいずれかが現在第１デバイスに順序付きフレームを送出している間の第１デバイスへの機能強化されたポートを介する適用のために第２または第３デバイスの他方から受け取られる順序付きフレームのインターリービングを調整するためのインターリーバの例示的処理の短い説明である。当業者は、特定の例示的処理が、特定の順序付きセットに関する必要な処理を表すことを意図されていないことをたやすく認めるであろう。そうではなく、この例示的処理は、単に、２つの仮想接続のそれぞれでの通信を維持するために機能強化されたデバイスへの適用のために２つの他のデバイスから受け取られる順序付きセットをインターリーブするのに有用であってもそうでなくてもよい通常の処理として意図されている。本願の特徴および態様の特定の適用に有用な特定の処理は、当業者によってたやすく突き止められるであろう。たとえば、順序付きセットの中には、インターリーバによるキューイングを必要とするものと、仮想接続のまたは仮想接続を介して転送されるデータの完全性の消失なしで単純に破棄され得るものとがある。さらに、一部のキューイングされる順序付きセットは、順序付きセットが対応する仮想接続上で受け取られる順序を維持しながら、機能強化されたデバイスに最もよく転送される可能性がある。そのような設計詳細は、設計選択の問題としてたやすく明白になるであろう。
【００７３】
ＡＣＫ順序付きセット、ＮＡＫ順序付きセット、ＣＲＥＤＩＴ＿ＢＬＯＣＫＥＤ順序付きセット、およびＲＲＤＹ順序付きセットは、標準ＳＡＳハンドシェーク・プロトコルの一部として第１仮想接続内の第１デバイスから第２デバイスへの送出に応答して期待され、他方の（第２）仮想接続がアイドルになる時に第１デバイスに転送されなければならない。複数のそのような順序付きセット（ＣＲＥＤＩＴ＿ＢＬＯＣＫＥＤ以外）が、第２仮想接続のアイドル期間とアイドル期間との間に比較的すばやく連続して受け取られる場合があるので、同一の個数を、キューイングし、第２仮想接続のアイドル期間にインターリーブして第１デバイスに転送しなければならない。キューイングされたＣＲＥＤＩＴ＿ＢＬＯＣＫＥＤは、すべてのキューイングされたＣＬＯＳＥの前に転送されなければならないが、キューイングされたＡＣＫ順序付きセット、ＮＡＫ順序付きセット、またはＲＲＤＹ順序付きセットは、他のキューイングされた順序付きセット（ある場合に）に対して相対的に任意の順序で送ることができる。キューイングされたＡＣＫ、ＮＡＫ、ＲＲＤＹ、またはＣＲＥＤＩＴ＿ＢＬＯＣＫＥＤのいずれをも、接続が任意の機構によってクローズされる場合にキューからフラッシュすることができる。
【００７４】
データ・フレーム送出、アドレス・フレーム送出、およびリモート・ポートからのリセット要求を示すＤＡＴＡ順序付きセット、ＳＯＦ順序付きセット、ＥＯＦ順序付きセット、ＳＯＡＦ順序付きセット、ＥＯＡＦ順序付きセット、およびＨＡＲＤ＿ＲＥＳＥＴ順序付きセットを受け取る場合がある。これらの順序付きセットは、そのままでキューイングされる必要はなく、高められた優先順位で第１デバイスに戻って転送されるためにインターリーブされる。
【００７５】
ＡＩＰ関連順序付きセット、ＥＲＲＯＲ関連順序付きセット、およびＳＡＴＡ関連順序付きセットは、一般に、第１デバイスへの転送のために第２デバイスまたは第３デバイスからインターリーバによって受け取られるとは期待されない。したがって、そのような順序付きセットのバッファリングまたはキューイングは、インターリーバに要求されない。これらの順序付きセットは、他の仮想接続が現在第１デバイスへの送出についてアイドルである場合に第１デバイスに転送することができ、あるいは、単純に破棄することができる。ＥＲＲＯＲ順序付きセットは、任意選択で、より以前の送出でのエラーに関して第１デバイスに戻ってより詳細な情報を提供するためにキューイングすることができる。ＳＡＴＡ関連順序付きセットは、期待されないはずであり、実際に、ＳＡＴＡ接続は、動作のエンハンスト・モードがイネーブルされている間に排除される可能性が高い。
【００７６】
ＯＰＥＮ＿ＡＣＣＥＰＴ順序付きセット、ＯＰＥＮ＿ＲＥＪＥＣＴ順序付きセット、ＤＯＮＥ順序付きセット、ＣＬＯＳＥ順序付きセットおよびＢＲＥＡＫ順序付きセットは、一般に、オープンされた接続を確立／拒絶し、制御するのに使用され、第２仮想接続がアイドルになる時にキューイングされ、第１デバイスに転送されなければならない。一般に、これらの順序付きセットのうちの１つだけが、一時に受け取られ、したがって、通常は、転送のためにそのような順序付きセットを複数キューイングする必要はない。キューイングされたＢＲＥＡＫは、一般に、キューイングされたＤＯＮＥ順序付きセットまたはキューイングされたＣＬＯＳＥ順序付きセットの前に転送されなければならない。キューイングされたＣＬＯＳＥは、通常、キューイングされたＤＯＮＥ順序付きセットまたはキューイングされたＢＲＥＡＫ順序付きセットの後に転送されなければならない。キューイングされたＯＰＥＮ＿ＡＣＣＥＰＴは、すべての関連するキューイングされたＲＲＤＹ順序付きセットの前に転送されなければならないが、キューイングされたＯＰＥＮ＿ＲＥＪＥＣＴは、他のキューイングされた順序付きセット（存在する場合に）に関してどの特定の順序で転送される必要もない。キューイングされたＤＯＮは、すべてのキューイングされたＣＬＯＳＥ順序付きセットの前であるが、すべてのキューイングされたＢＲＥＡＫ順序付きセットの後に転送されなければならない。すべてのキューイングされたＢＲＥＡＫ、ＯＰＥＮ＿ＡＣＣＥＰＴ、ＯＰＥＮ＿ＲＥＪＥＣＴ、またはＣＬＯＳＥを、接続が任意の機構によってクローズされる場合に、キューからフラッシュすることができる。
【００７７】
ＡＬＩＧＮ順序付きセットは、受け取られる可能性があるが、キューイングまたはバッファリングされる必要はない。上のＡＩＰに関して、ＡＬＩＧＮ順序付きセットは、他の仮想接続が第１デバイスへの送出について現在アイドルである場合に、第１デバイスに転送することができる。
【００７８】
ＢＲＯＡＤＣＡＳＴ順序付きセットは、仮想接続を介して任意の時に受け取られる可能性があり、第１デバイスに転送されなければならず、したがって、他の仮想接続がアイドルになった時の後の送出のためにキューイングされなければならない。ＳＡＳエキスパンダ内の通常処理は、ＢＲＯＡＤＣＡＳＴ順序付きセットのそのようなキューングを既に提供し、したがって、類似するキューイングを、ＢＲＯＡＤＣＡＳＴをキューイングし、キューイングされた順序付きセットを第１デバイスにその後に転送するために利用することができる。キューイングされたＢＲＯＡＤＣＡＳＴは、通常、他のキューイングされた順序付きセットに対する任意の特定の順序での転送を必要としない。
【００７９】
ＮＯＴＩＦＹ順序付きセットは、しばしば、さらなる処理の準備ができている（たとえば、ディスク・ドライブのスピン・アップなど）ことを示すためにデバイスによって送られる。ＳＡＳプロトコルに従って、これらを、４個のグループで周期的に送ることができ、ＡＬＩＧＮ順序付きセットによって置換することもできる。この順序付きセットが、接続をクローズしなければならない時にキューイングされる場合に、キューイングされたＮＯＴＩＦＹ（またはＡＬＩＧＮ）は、接続がクローズされる前に送られなければならない。すべてのキューイングされたＮＯＴＩＦＹを、接続が任意の機構によってクローズされる場合にキューからフラッシュすることができる。
当業者は、そのようなキュー構造に使用できるさまざまキューイング構造および方法のいずれをも認めるであろう。たとえば、単純なビット・アレイを設けることができ、ここで、各ビットは、対応するビットがセットまたはリセットされている場合にキュー内に存在しまたは存在しないものとすることができる順序付きセットの１タイプを表す。複数のキューイングされたエントリを有する可能性がある順序付きセットについて、対応するカウンタを設けることができる。代替案では、各エントリが転送されるべき１つの順序付きセットに対応する、プッシュ・ダウン・リスト構造またはリンク・リスト構造内のエントリのリストを有するより通常のキュー構造を、設けることができる。そのような設計選択は、当業者にたやすく明白になるであろう。
さらに、当業者は、他の仮想接続がアイドルになる時を感知するために実施できる論理をたやすく認めるであろう。ＳＡＳ仕様は、特定の接続がアイドルであることがわかる、サンプル状態機械モデル内の複数の状態を提供する。そのようなアイドル期間を、キューイングされた順序付きセットを第１デバイスに戻って転送するために、他の仮想接続によって（機能強化されたポートのインターリーバを介して）使用することができる。したがって、機能強化されたポートの制御論理、インターリーバ、および／またはデマルチプレクサとして本願で説明された特徴および態様を実施する組合せ論理および／または順序論理の設計の特定の詳細は、設計選択の問題として当業者にたやすく明白になるであろう。
【００８０】
本発明を、図面および前述の説明で図示し、説明してきたが、そのような図示および説明は、例示的と考えられねばならず、特性において制限的ではない。本発明の一実施形態およびその些細な変形形態が、図示され、説明された。保護は、本発明の趣旨に含まれるすべての変更および修正について望まれる。当業者は、本発明の範囲に含まれる上で説明した実施形態の適当な変形形態を理解するであろう。具体的に言うと、当業者は、本発明の特徴および態様を、電子回路内でまたは汎用プロセッサもしくは特殊目的プロセッサの適切にプログラムされた命令として同等に実施できることをたやすく認めるであろう。そのような回路およびプログラミング設計の同等性は、設計選択の問題として当業者に周知である。その結果、本発明は、上で述べた特定の例および図示に限定されるのではなく、添付の特許請求の範囲およびその同等性の範囲によってのみ限定される。
【図１】
2010515156.tif 000003
【図２】
2010515156.tif 000004
【図３】
2010515156.tif 000005
【図４】
2010515156.tif 000006
【図５】
2010515156.tif 000007
【図６】
2010515156.tif 000008
【国際調査報告】
2010515156.tif 000009