(57)【要約】【課題】ＳＡＳドメインを通じてＰＣＩｅデータをトンネリングするシステムおよび方法を提供すること。【解決手段】データ・システム（１００）は、ＳＡＳエキスパンダ（１０１）、エキスパンダに結合されたＰＣＩｅターゲット・デバイス（１１１）、ならびにホストシステム（１０５）およびエキスパンダに通信するように結合されたＳＡＳコントローラ（１０４）を含む。コントローラは、ＳＡＳプロトコルを介してエキスパンダとの接続を開き、ＰＣＩｅプロトコルを介した接続を通じてターゲット・デバイスとホストシステムとの間でパケット・データを伝送するように動作可能である。たとえば、コントローラおよびエキスパンダは、接続においてデータのパケットをバッファリングするように動作可能でもよい。コントローラは、接続において転送される複数のデータパケットを発行することができる。次に、発行された複数のデータパケットは、ＰＣＩｅプロトコルを介した接続を通じてターゲット・デバイスとホストシステムとの間で伝送される。【選択図】図１
2015005282.tif 000002
【特許請求の範囲】
【請求項１】
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・アーキテクチャで動作可能な方法であって、
ペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスをシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・エキスパンダにリンクすること（２０１）と、
前記エキスパンダをシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・コントローラにリンクすること（２０２）と、
前記コントローラと前記エキスパンダとの間のシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース接続を開くこと（２０３）と、
前記接続のエンドポイントでデータのパケットをバッファリングすること（２０４）と、
前記接続において転送される複数の前記データパケットを発行する（２０５）ことと、
前記ペリフェラル・コンポーネント・インターコネクト・エクスプレス・プロトコルを介した前記接続を通じて、発行された複数のデータパケットを前記ターゲット・デバイスとホストシステムとの間で伝送すること（２０６）と
を含む方法。
【請求項２】
前記エキスパンダを複数のペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスに接続することと、
前記ホストシステムから前記ペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスにペリフェラル・コンポーネント・インターコネクト・エクスプレス・データをルーティングすることと
をさらに含む請求項１に記載の方法。
【請求項３】
単一のペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスとして、他のシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・エキスパンダに、前記ペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスを表すために、前記複数のペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスをアグリゲートすること
をさらに含む請求項２に記載の方法。
【請求項４】
前記エキスパンダと前記コントローラとの間でデータ・リンク・レイヤ・パケットを交換すること
をさらに含む請求項１に記載の方法。
【請求項５】
前記コントローラで前記データ・リンク・レイヤ・パケットを終了し処理することと
前記コントローラで前記データ・リンク・レイヤ・パケットを介してトランザクション・レイヤ・パケットのクレジット管理を実行することと
をさらに含む請求項４に記載の方法。
【請求項６】
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・エキスパンダ（１０１）と、
前記エキスパンダ（１１１）に結合されたペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスと、
ホストシステム（１０５）および前記エキスパンダに通信するように結合されたシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・コントローラ（１０４）であって、前記シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・プロトコルを介して前記エキスパンダとの接続を開き、前記ペリフェラル・コンポーネント・インターコネクト・エクスプレス・プロトコルを介した前記接続を通じて前記ターゲット・デバイスと前記ホストシステムとの間でパケット・データを伝送するように動作可能であるシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・コントローラ（１０４）と
を含むことを特徴とするデータ・システム（１００）。
【請求項７】
前記エキスパンダは、複数のペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスに接続し、前記ホストシステムから前記ペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスに、ペリフェラル・コンポーネント・インターコネクト・エクスプレス・データをルーティングするように動作可能なアグリゲータ（３５２）を含む
請求項６に記載のデータ・システム。
【請求項８】
前記アグリゲータは、単一のペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスとして、他のシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・エキスパンダに、前記ペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイスを表すようにさらに動作可能である
請求項７に記載のデータ・システム。
【請求項９】
前記エキスパンダは、他のシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・エキスパンダに、シリアル・アタッチド・スモール・コンピュータ・システム・インターフェースを提供するように動作可能なアグリゲータ（３５２）を含む
請求項６に記載のデータ・システム。
【請求項１０】
前記コントローラは、前記エキスパンダとデータ・リンク・レイヤ・パケットを交換するように動作可能なイニシエータ（４１５）を含む
請求項６に記載のデータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本文書は、参照により本明細書に組み込まれている、２０１３年６月１８日に出願した「ＰＣＩＥ  ＴＵＮＮＥＬＩＮＧ  ＴＨＲＯＵＧＨ  ＳＡＳ」という名称の米国仮出願第６１／８３６，２８２の優先権を主張するものである。
【０００２】
本発明は、一般的に、ＰＣＩエクスプレス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ））プロトコルを介して、シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース（シリアル・アタッチドＳＣＳＩ）（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）（ＳＡＳ）ドメインのＳＡＳ接続を通じて、ＰＣＩｅトラフィックをトンネリングすることに関する。
【背景技術】
【０００３】
ストレージデバイスについて多数のインターフェースが存在し、従来のＳＡＳドメインとの間で絶えず困難な問題を引き起こしている。たとえば、現在、ＰＣＩｅベースのストレージデバイスは従来のＳＡＳドメインと並行して構成されている。これらのＰＣＩｅストレージデバイスは上流のＳＡＳストレージデバイスコントローラとの間でデータを転送してやり取りする必要があり、データはその後、ネイティブのＰＣＩｅインターフェースに配置できる。しかし、ＰＣＩｅはパケット・ベースのコネクションレス型転送プロトコルであり、ＳＡＳはコネクションレス型転送を行わないエンドツーエンドのコネクション型プロトコルであるため、インターワーキングが特に困難になる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書に提示したシステムおよび方法は、１つまたは複数のＰＣＩｅ対応ＳＡＳエキスパンダ、１つまたは複数の従来のＳＡＳエキスパンダ、および１つまたは複数のＰＣＩｅ対応ＳＡＳコントローラのトポロジを含むＳＡＳドメインを通じてＰＣＩｅトラフィックをトンネリングすることを提供する。ＰＣＩｅトラフィックのトンネリングにより、ＳＡＳトポロジにおけるＰＣＩｅターゲット・デバイス（たとえばＳＣＳＩ−Ｏｖｅｒ−ＰＣＩｅ（ＳＯＰ）デバイス、不揮発性メモリ・エクスプレス（ＮＶＭｅ）デバイス、およびシリアルＡＴアタッチメント・エクスプレス（ＳＡＴＡエクスプレス）デバイス）をＳＡＳエキスパンダおよびＳＡＳコントローラを含むＳＡＳドメインを通じて、ＰＣＩｅベースのホストシステムに接続することができる。一実施形態では、データ・システムは、シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・エキスパンダ、エキスパンダに結合されたペリフェラル・コンポーネント・インターコネクト・エクスプレス・ターゲット・デバイス、ならびにホストシステムおよびエキスパンダに通信するように結合されたシリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・コントローラを含む。コントローラは、シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース・プロトコルを介してエキスパンダとのＳＡＳ接続を開き、ペリフェラル・コンポーネント・インターコネクト・エクスプレス・プロトコルを介した接続を通じてターゲット・デバイスとホストシステムとの間でパケット・データを伝送するように動作可能である。たとえば、コントローラおよびエキスパンダは、接続においてデータのパケットをバッファリングするように動作可能な場合がある。コントローラは、接続において転送される複数のデータパケットを発行することができる。次に、発行された複数のデータパケットは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス・プロトコルを介してＳＡＳ接続を通じてターゲット・デバイスとホストシステムとの間で伝えられる。
【０００５】
本明細書に開示する様々な実施形態は、設計の選択を目的として様々な方法で実装することができる。たとえば、実施形態は、コンピュータ・ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせの形式を取ることができる。他の一例としての実施形態について以下に記述する。
【０００６】
本発明の一部の実施形態について、例示のみを目的として、添付図面に関して本明細書に記述する。すべての図面において、同じ参照番号は同じ要素または同じ種類の要素を表している。
【図面の簡単な説明】
【０００７】
【図１】ＳＡＳドメインを通じてＰＣＩｅデータをトンネリングする一例としてのデータ・システムを示すブロック図である。
【図２】ＳＡＳドメインを通じてＰＣＩｅデータをトンネリングするための一例としてのプロセスを示すフローチャートである。
【図３】ＳＡＳドメインにおいてＳＡＳコンポーネント間のＳＡＳ接続を確立し、ＰＣＩｅデータパケットをトンネリングするように動作可能なＳＡＳリンクを示す一例としてのブロック図である。
【図４】ＳＡＳドメインを通じた一例としてのＰＣＩｅトンネリングを示すブロック図である。
【図５】ＳＡＳドメインを通じた一例としてのＰＣＩｅトンネリングを示す他のブロック図である。
【図６】一例としてのＰＣＩｅ対応ＳＡＳエキスパンダを示すブロック図である。
【図７】図６のＰＣＩｅ対応ＳＡＳエキスパンダの一例としてのＰＣＩｅターゲット・アグリゲータを示すブロック図である。
【図８】一例としてのＰＣＩｅ対応ＳＡＳコントローラを示すブロック図である。
【図９】図８のＰＣＩｅ対応ＳＡＳコントローラの一例としてのＰＣＩｅ／ＳＡＳインターワーキング・イニシエータを示すブロック図である。
【図１０】本明細書に記載の方法を実行するためにコンピュータ可読媒体が命令を提供する一例としてのコンピューティング・システムを示すブロック図である。
【発明を実施するための形態】
【０００８】
図および以下の記述は、本発明の特定の一例としての実施形態を示している。本明細書に明示的に記述または図示したりしていなくても、当業者は、本発明の原理を具体化し、本発明の範囲に含まれる様々な配置を考案できることは自明であろう。さらに、本明細書に記述した例はいずれも、本発明の原理を理解することを支援することを意図するものであり、そのような具体的に列挙された例および条件に限定されないものと解釈するべきである。その結果、本発明は、以下に記述する特定の実施形態または例に限定されるものではない。
【０００９】
図１は、ＳＡＳドメイン１００を通じてＰＣＩｅデータをトンネリングする一例としてのデータ・システムを示すブロック図である。この実施形態では、ＳＡＳドメイン１００は、ＰＣＩｅ対応ＳＡＳエキスパンダ（ＰＣＩｅ／ＳＡＳエキスパンダ１０１）、従来のＳＡＳエキスパンダ１０２、およびＰＣＩｅ対応ＳＡＳコントローラ（ＰＣＩｅ／ＳＡＳコントローラ１０４）を通じてＰＣＩｅホストシステム１０５に結合された他のＰＣＩｅ対応ＳＡＳエキスパンダ（ＰＣＩｅ／ＳＡＳエキスパンダ１０３）で構成されている。エキスパンダ１０２は、エキスパンダ１０１と１０３との間に結合され、ＳＡＳプロトコルを介して複数のＳＡＳターゲット・デバイス１１０に接続するように動作可能である。ＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３は両方、ＰＣＩｅプロトコルを介してＰＣＩｅターゲット・デバイス１１１と、およびＳＡＳプロトコルを介してＳＡＳターゲット・デバイス１１０（および他のＳＡＳエキスパンダ１０２）と接続し通信するように動作可能である。ＰＣＩｅ／ＳＡＳコントローラ１０４とＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３との組み合わせにより、データ・システム１００は、ＳＡＳプロトコルを通じてＰＣＩｅパケット・データをトンネリングすることによって、ＳＡＳドメイン１００を通じて、ＰＣＩｅホストシステム１０５とＰＣＩｅターゲット・デバイス１１１との間で、ＰＣＩｅパケット通信を転送することが可能になる。ＰＣＩｅ／ＳＡＳコントローラ１０４は、また、ＰＣＩｅホストシステム１０５から適切なＳＡＳターゲット・デバイス１１０にデータをルーティングするために、ＰＣＩｅデータをＳＡＳに変換する。一実施形態では、ポート・レイヤおよびＰＣＩｅ／ＳＡＳコントローラ１０４のＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ（より詳細には下に記述）を通じてＰＣＩｅパケットが流れることを可能にする方法で、複数のＰＣＩｅターゲット・デバイス１１１がＰＣＩｅ／ＳＡＳコントローラ１０４に直接的に接続されているため、ＰＣＩｅ／ＳＡＳコントローラ１０４内に単独でトンネリングを提供することができる。
【００１０】
ＰＣＩｅターゲット・デバイス１１１およびＳＡＳターゲット・デバイス１１０の例は、ディスク・ドライブおよびソリッド・ステート・ドライブ（ＳＳＤ）などのストレージデバイスを含む。この点で、ターゲット・デバイス１１０および１１１は、ＰＣＩｅホストシステム１０５に代わってデータの記憶を提供することができる。また、ＰＣＩｅホストシステム１０５は、エキスパンダ１０１、１０２、および１０３のＳＡＳドメイン１００を通じてターゲット・デバイス１１０および１１１のいずれかとの入力／出力（Ｉ／Ｏ）動作のためにＰＣＩｅプロトコルを介して読み取り／書き込み要求を構成することができる。ＰＣＩｅホストシステム１０５は、たとえば、サーバ、ワークステーション、パーソナル・コンピュータなどを含む、ＰＣＩｅプロトコルを介してＩ／Ｏ操作を実行するように動作可能な任意の適切なコンピューティング・デバイスまたはシステムでもよい。
【００１１】
ＰＣＩｅ／ＳＡＳコントローラ１０４は、デバイス検出を実行し、ターゲット・デバイス１１０および１１１のデータを管理し、そのデータに向けられたＩ／Ｏコマンドを処理するように動作可能な任意のデバイス、システム、ソフトウェア、またはそれらの組み合わせである。たとえば、ＰＣＩｅ／ＳＡＳコントローラ１０４は、カスタム構成の回路として、関連するプログラム・メモリに格納されているプログラムされた命令を実行する専用または汎用のプロセッサとして、またはそれらの何らかの組み合わせとして実装することができる。ＰＣＩｅ／ＳＡＳコントローラ１０４は、独立したＳＡＳデバイス、ホストのホスト・バス・アダプタ（ＨＢＡ）、またはＰＣＩｅホストシステム１０５の統合されたコンポーネントでもよい。
【００１２】
ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＰＣＩｅプロトコルを介してＰＣＩｅホストシステム１０５にパケット・データを結合し通信するように構成されたフロントエンド・インターフェース（以下により詳細に図示および記述）を含む。ＰＣＩｅ／ＳＡＳコントローラ１０４は、また、ＰＣＩｅデバイス（たとえばＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３、ならびにＰＣＩｅターゲット・デバイス１１１）およびＳＡＳデバイス（たとえばＳＡＳターゲット・デバイス１１０およびＳＡＳエキスパンダ１０２）の両方に結合しサポートするように構成されたバックエンド・インターフェース（以下により詳細に図示および記述）を含む。たとえば、ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＰＣＩｅ制御、ＳＡＳ接続のクレジット管理、ならびにエキスパンダ１０１および１０３など複数のリモート／ＳＡＳエキスパンダをサポートするためのバッファリングを提供する。ＰＣＩｅ／ＳＡＳコントローラ１０４は、また、ＳＡＳドメイン１００を介してアクセス可能なＰＣＩｅターゲット・デバイス１１１のルート・コンプレックスとして機能する。ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＳＡＳドメイン管理において下流に接続されたターゲット・デバイス１１０および１１１支援のＰＣＩｅシステム・エニュメレーションを実行する。
【００１３】
ＳＡＳエキスパンダ１０２は、ＳＡＳプロトコルを介してコネクション型データ転送を提供するように動作可能な任意のデバイス、システム、ソフトウェア、またはそれらの組み合わせである。この点で、ＳＡＳエキスパンダ１０２は、複数の物理的な送受信装置すなわち「Ｐｈｙ」を介して、ＳＡＳターゲット・デバイス１１０および他のエキスパンダなど、他のＳＡＳコンポーネントに接続することができる。ＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３は、ＳＡＳターゲット・デバイス１１０、接続されたＰＣＩｅデバイス１１１、ＳＡＳエキスパンダ１０２、および他のＰＣＩｅ／ＳＡＳエキスパンダをサポートし通信するように動作可能な任意のデバイス、システム、ソフトウェア、またはそれらの組み合わせである。この点で、ＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３はそれぞれ、ターゲット・デバイス１１０および１１１にＰＣＩｅおよびＳＡＳの両方のトラフィックをそれぞれサービスするために、複数のＳＡＳ  Ｐｈｙ／ＰＣＩｅリンクを持っている（以下により詳細に記述）。ＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３は、ＰＣＩｅ制御、デバイス・クレジット管理、および複数のＰＣＩｅデバイス１１１をサポートするためのバッファリングを提供するように動作可能である。ＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３は、また、ＳＡＳエキスパンダ１０２に標準ＳＡＳインターフェースを提供し、エキスパンダ１０２および他のＳＡＳデバイス（たとえばＳＡＳターゲット・デバイス１１０）と通信するように動作可能である。
【００１４】
ＳＡＳドメイン１００は、特定数のＰＣＩｅ／ＳＡＳエキスパンダ、従来のＳＡＳエキスパンダ、ＰＣＩｅターゲット・デバイス、およびＳＡＳデバイスに関して図示し記述されているが、本発明は、ＳＡＳプロトコルによって限定できること以外に、ＳＡＳドメイン１００において特定数のコンポーネントであることを意図していない。データ・システムの特定の運用上の詳細、より明確にはＳＡＳドメイン１００について、図２のフローチャートに関してここに記述する。
【００１５】
図２は、ＳＡＳドメイン１００を通じてＰＣＩｅデータをトンネリングするための一例としてのプロセス２００を示すフローチャートである。この実施形態では、ＰＣＩｅターゲット・デバイス１１１は、ＳＡＳエキスパンダにリンクされ（プロセス要素２０１）、エキスパンダは、ＰＣＩｅ／ＳＡＳコントローラ１０４にリンクされる（プロセス要素２０２）。すでに述べたように、ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＰＣＩｅホストシステム１０５に代わってＰＣＩｅデータパケットを転送するように、（ＰＣＩｅホストシステム１０５の一部として、またはＰＣＩｅホストシステム１０５とは別に）ＰＣＩｅホストシステム１０５にリンクされる。したがって、ＰＣＩｅコンポーネントのエンドポイントを有する（たとえば、ＰＣＩｅ／ＳＡＳコントローラ１０４を通じてＰＣＩｅ／ＳＡＳエキスパンダ１０３までの、またはＰＣＩｅ／ＳＡＳコントローラ１０４を通じてＰＣＩｅ／ＳＡＳエキスパンダ１０１までの）ＳＡＳドメイン１００が確立される。
【００１６】
プロセス要素２０３において、ＳＡＳドメイン１００のＳＡＳコンポーネントの１つは、ＰＣＩｅ／ＳＡＳコントローラ１０４とＳＡＳエキスパンダとの間のＳＡＳ接続を開く。たとえば、ＰＣＩｅターゲット・デバイス１１１の１つは、ＰＣＩｅベースのデータパケットをＰＣＩｅホスト１０５に転送する必要がある場合がある。したがって、ＰＣＩｅターゲット・デバイス１１１は、ＰＣＩｅ／ＳＡＳコントローラ１０４との接続を開くようにＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３に指示することができる。あるいは、ＰＣＩｅホストシステム１０５は、ＰＣＩｅベースのデータパケットをＰＣＩｅターゲット・デバイス１１１に転送する必要がある場合がある。次に、ＰＣＩｅホストシステム１０５は、ターゲット・デバイス１１１へのＳＡＳ接続を開くようにＰＣＩｅ／ＳＡＳコントローラ１０４に指示することができる。いずれの場合でも、ＰＣＩｅデータパケットの転送を達成するためにＳＡＳ接続を開くことができるようなときまで、ＰＣＩｅデータパケットは、ＳＡＳ接続のエンドポイントで、プロセス要素２０４において、ＰＣＩｅ／ＳＡＳコントローラ１０４またはＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３でバッファリングされる。
【００１７】
ＳＡＳ接続のエンドポイント間でデータパケットを転送する前に、ＰＣＩｅ／ＳＡＳコンポーネント（つまりコントローラ１０４またはエキスパンダ１０１／１０３）は、プロセス要素２０５において、ＳＡＳ接続を通じて転送されることになっている複数のＰＣＩｅデータパケットを発行する。たとえば、ＰＣＩｅプロトコルはコネクションレス型のデータ転送プロトコルであるため、それらが適切なＰＣＩｅエンドポイントに到着することを保証するために、ＰＣＩｅデータパケットはＳＡＳ接続を通じて追跡される。一実施形態では、ＳＡＳ接続の各エンドポイントは、ＰＣＩｅプロトコルのデータ・リンク・レイヤ・パケット（ＤＬＬＰ）を介して次のバッファリング・ノードで（たとえば利用可能なバッファ・スペースを表す）利用可能なクレジットの量を転送するため、データパケットのクレジット管理は、ＳＡＳ接続のエンドポイントで扱うことができる。
【００１８】
接続が確立され複数のＰＣＩｅデータパケットが監視されている状態で、プロセス要素２０６において、ＰＣＩｅプロトコルを介してＳＡＳ接続を通じてターゲット・デバイス１１１とＰＣＩｅホストシステム１０５との間で発行された複数のデータパケットを伝送するために、ＳＡＳ接続の各エンドポイントは、エンドポイントのバッファからＰＣＩｅトランザクション・レイヤ・パケット（ＴＬＰ）を取得することができるため、ＳＡＳ接続を通じてＰＣＩｅトラフィックをトンネリングすることができる。ＳＡＳドメイン１００を通じたＰＣＩｅトンネリングの実装に関する追加的な詳細については、以下の実施形態において図示し記述している。
【００１９】
図３は、ＰＣＩｅデータパケットをトンネリングするためにＳＡＳデバイス間にＳＡＳ接続を確立するように動作可能なＳＡＳリンクを示す一例としてのブロック図である。個々のＳＡＳ接続および関連するデータ転送は、「ｘ１」Ｐｈｙ幅で発生する一方、ＰＣＩｅは、論理的な相互接続を促進するために使用される「ｘ１」、「ｘ２」、「ｘ４」以上の実際のＰｈｙを持つことができる。図１のＳＡＳドメイン１００内の接続は、本明細書に示すようなトラフィックの動的な混合物を伝送するように動作可能である。この例では、ＰＣＩｅおよびＳＡＳのトラフィックの混合物が４つのｐｈｙのＳＡＳワイドポートで運ばれる。
【００２０】
典型的なＳＡＳ接続プロトコルは、応じてＯｐｅｎＡｃｃｅｐｔ（ＯＡ）を受信するＯｐｅｎ  Ａｄｄｒｅｓｓ  Ｆｒａｍｅ（ＯＡＦ）を用いて生じるため、ＳＡＳリンク２５０に示すようにＳＡＳ接続が確立される。ＳＡＳ接続が開かれると、ＳＡＳデータ・フレームまたはＰＣＩｅデータパケット、および関連する制御が、開かれたＳＡＳ接続内で交換される。ＳＡＳリンク２５０、２５１、および２５３に示すように、ＣＬＯＳＥプリミティブが交換されると、ＳＡＳ接続はその後に閉じ、接続にサービスを提供しているすべてのエキスパンダにルートを破棄するように促す。
【００２１】
この例では、また、異なる４つのプロトコルを示している。ＳＡＳリンク２５０のシリアルＳＣＳＩプロトコル（ＳＳＰ）、ＳＡＳリンク２５３のシリアルＡＴＡトンネル型プロトコル（ＳＴＰ：Ｓｅｒｉａｌ  ＡＴＡ  Ｔｕｎｎｅｌｅｄ  Ｐｒｏｔｏｃｏｌ）、ＳＡＳリンク２５０のシリアル管理プロトコル（ＳＭＰ：Ｓｅｒｉａｌ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）、およびＳＡＳリンク２５０および２５３のＰＣＩｅトンネル型プロトコル（ＰＴＰ：ＰＣＩｅ  Ｔｕｎｎｅｌｅｄ  Ｐｒｏｔｏｃｏｌ）である。より具体的には、ＳＡＳリンク２５０は、ＳＳＰを介したＳＡＳ接続の開放を示しているため、ＳＳＰフレームおよびプリミティブは、エンドポイント間で転送することができる。その接続が閉じられた後、ＳＡＳコンポーネント（たとえばエキスパンダ１０１／１０３および／またはＰＣＩｅ／ＳＡＳコントローラ１０４）は、ＰＴＰを介してＳＡＳ接続を開くように動作可能であるため、ＰＣＩｅデータパケットは、ＰＣＩｅプロトコルのトランザクション・レイヤ・パケット（ＴＬＰ）およびデータ・リンク・レイヤ・パケット（ＤＬＬＰ）を介して転送することができる。ＰＣＩｅデータパケットが転送された後、ＳＡＳ接続は閉じられ、この場合、ＳＭＰを介して他のデータ転送に利用可能である。
【００２２】
ＳＡＳリンク２５１は、ＰＣＩｅデータパケットがＰＴＰを介してＳＡＳ接続を通じて転送される同様の実施形態を示している。ここでは、ＰＴＰは接続を開き閉じ、その後、ＳＡＳリンク２５１でのＳＳＰ接続を可能にする。
【００２３】
ＳＡＳリンク２５２は、ＰＴＰを介してＰＣＩｅデータ・トラフィックを提供するために完全に占有される。たとえば、ＰＣＩｅ帯域幅の静的割り当てが望まれる場合、ＰＣＩｅパケットを転送するために確立されたＳＡＳ接続は、パーシステント・コネクションでもよい。ＰＴＰは、一部の追加的な能力を用いてレガシＯＡＦを活用することによって、ＳＡＳエキスパンダ１０２など、中間のレガシＳＡＳエキスパンダを含むＳＡＳドメインで動作することができる。たとえば、ＰＴＰ接続は、ＯＡＦに互換性を持つ機能フィールドを備えたレガシＳＴＰプロトコルを使用して開き、トンネリングのタイプをＰＴＰとして識別することができる。ＳＡＳ  ＣＬＯＳＥプリミティブがＳＡＳ接続の接続エンドポイント間で交換されるのを待っている間にＳＡＳ接続が開かれると、単にＤＷＯＲＤＳを転送するだけなので、中間のエキスパンダは、この場合、正常として動作する。
【００２４】
ＳＡＳリンク２５３は、ＰＴＰでのＳＡＳ接続の同様の開閉、ＳＴＰに対するＳＡＳ接続の開閉を示している。したがって、ＳＡＳリンクは、特定のプロトコルに限定されない。すなわち、本明細書のＳＡＳリンクは、ＳＡＳドメイン１００を通じてＰＣＩｅトラフィックを占有するために使用でき、かつ／または任意の特定のリンクを通じてＳＡＳ接続のＳＡＳ開閉を通じてＳＳＰ、ＳＴＰ、ＳＭＰ、およびＰＴＰを介したデータ・トラフィックの他の形式を含むことができる。
【００２５】
図４は、図１に同様に示したようなＳＡＳドメイン１００を通じた一例としてのＰＣＩｅトンネリングを示すブロック図である。この図は、ＴＬＰデータ・ストリーム３０３のＰＣＩｅ  ＴＬＰは、末端のＰＣＩｅデバイス３０１間を流れる一方、ＰＣＩｅ  ＤＬＬＰは、ＤＬＬＰパケット・ストリーム３０４−１および３０４−３のネイティブのＰＣＩｅリンクを横断し、ＤＬＬＰパケット・ストリーム３０４−２を通じてトンネリングされることを示している。図示するために、ＳＡＳドメイン１００は、ＰＣＩｅ／ＳＡＳエキスパンダ１０１、１対のＳＡＳエキスパンダ１０２−１および１０２−２、ならびにＰＣＩｅ／ＳＡＳコントローラ１０４で構成される。ＳＡＳ接続は、経路３０４−２に対応する全体的なＰＣＩｅパケット経路３１０について、上記のようにＳＡＳプロトコルのＯＡＦおよびＯＡを使用して確立される。ＰＣＩｅエンドポイント３０１は、ＰＣＩｅ／ＳＡＳコントローラ１０４に結合されるＰＣＩｅホストシステム１０５、およびＰＣＩｅ／ＳＡＳエキスパンダ１０１に結合されるＰＣＩｅターゲット・デバイス１１１によって確立される。ＳＡＳドメイン接続エンドポイント３０２は、エキスパンダ１０１、エキスパンダ１０２、およびコントローラ１０４のＳＡＳコンポーネントを通じてＳＡＳ接続に基づいて確立される。
【００２６】
すでに述べたように、ＳＡＳドメイン１００を通じてＰＣＩｅトンネリングを実装するために、ＰＣＩｅデータパケットは、ＳＡＳドメイン１００の接続エンドポイント３０２でバッファリングすることができる。次に、ＰＣＩｅプロトコルのＤＬＬＰパケットは、ＰＣＩｅプロトコルのＴＬＰデータパケットを追跡するために使用することができる。たとえば、ＰＣＩｅプロトコルは、ＴＬＰおよびＤＬＬＰの両方を提供する。ＤＬＬＰパケット・ストリーム３０４−１、３０４−２、および３０４−３は、それらの対応する接続エンドポイント３０１でＰＣＩｅターゲット・デバイス１１１とＰＣＩｅ／ＳＡＳコントローラ１０４との間のＴＬＰデータ・ストリーム３０３でＴＬＰデータパケットを追跡するために、様々な接続エンドポイント３０１および３０２でＰＣＩｅパケット経路３１０に沿って構成することができる。ＴＬＰは、エンド・ユーザー・データ送信をサポートする一方、ＤＬＬＰパケットは、フロー制御を管理し、ＴＬＰを承認するためにＰＣＩｅリンク機能間で使用される。図４は、ネイティブのＰＣＩｅ経路エンドポイント３０１間の途中でＰＣＩｅパケット経路３１０のＴＬＰデータ経路３０３に沿ったＳＡＳドメイン１００をＴＬＰがどのように通過し、一方、ＤＬＬＰは、ＳＡＳドメイン１００のＳＡＳ接続エンドポイント３０２でどのように終了するかを示している。
【００２７】
ＰＣＩｅパケットがＳＡＳドメイン１００を通過するときに、ＰＣＩｅフロー制御およびＴＬＰ承認を管理するために、独立したＤＬＬＰパケット・ストリーム３０４−２が、ＰＣＩｅ／ＳＡＳエキスパンダ１０１とＰＣＩｅ／ＳＡＳコントローラ１０４との間のＰＣＩｅパケット経路３１０のＳＡＳ接続部分を通じて交換される。単一のＴＬＰパケット・ストリーム３０３が示されているが、単一のＳＡＳ接続を通じて、複数のＴＬＰパケット・ストリームをサポートすることができ、典型的にはサポートされている（たとえば、複数のＰＣＩｅターゲット・デバイス１１１に１つのＳＡＳ接続でサービスを提供することができる）。同様に図１に図示するように、複数のＴＬＰパケット・ストリームは、ＰＣＩｅ／ＳＡＳエキスパンダ１０１および１０３のいずれかに接続されたターゲット・デバイス１１１のＰＣＩｅ／ＳＡＳのアグリゲーションを用いて実装することができる。
【００２８】
適切なＴＬＰシーケンス番号の置き換えが、ＰＣＩｅ／ＳＡＳエキスパンダ１０１およびＰＣＩｅ／ＳＡＳコントローラ１０５のＰｈｙ／Ｌｉｎｋレイヤ内に発生する。さらに、ＰＣＩｅ「リプレイ」バッファは、ＤＬＬＰパケット・ストリーム３０４−２に沿ってＤＬＬＰエンドポイント３０２のそれぞれで構成することができる。これらのリプレイ・バッファは、従来のＰＣＩｅセグメントを横断して、ならびにＰＣＩｅパケット経路３１０で失われたまたはエラーが生じたＴＬＰに対して呼び出すことができる。あるいは、図５に示すように、ＤＬＬＰの終了および関連するＰＣＩｅのリプレイ・バッファは、ＤＬＬＰパケット・ストリーム３０４−２に沿って中間のＰＣＩｅ／ＳＡＳエキスパンダ１０３で実装することができる。たとえば、ＰＣＩｅプロトコルは、移動されたすべてのＴＬＰを承認する。ＴＬＰの宛先ノードがＴＬＰにおいてエラーを検出した場合（たとえば不適切なＣＲＣ、不適切な記号など）、宛先ノードは、ＡＣＫ  ＤＬＬＰではなく、ソース・ノードにＮＡＫ  ＤＬＬＰを送り返す。ソース・ノードは、送信したがまだ承認されていないすべてのＴＬＰのコピーをリプレイ・バッファに保存する。ソース・ノードがＮＡＫ  ＤＬＬＰを受信すると、エラーのために到着したＴＬＰから始めて、リプレイ・バッファに格納されたすべてのＴＬＰを再度送信する。
【００２９】
図６は、一例としてのＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３を示すブロック図である。ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３は、ＳＡＳターゲット・デバイス１１０およびＰＣＩｅターゲット・デバイス１１１をサポートするように動作可能である。この点で、ＰＣＩｅトラフィックおよびＳＡＳトラフィックは両方、対応するＰＣＩｅ  Ｐｈｙ／Ｌｉｎｋ３５１−１〜４、ＳＡＳ  Ｐｈｙ／Ｌｉｎｋ３６０−１〜４、およびＳＡＳ  Ｐｈｙ／Ｌｉｎｋ３６１−１〜４を通じて、エキスパンダ・モジュール３５３によってサービスが提供される。たとえば、ＳＡＳ  Ｐｈｙ／Ｌｉｎｋ３６１−１〜４は、上流のＳＡＳエキスパンダ１０２に結合することができる。したがって、ＳＡＳ  Ｐｈｙ／Ｌｉｎｋ３６１−１〜４は、上流のＳＡＳエキスパンダ１０２の対応するＳＡＳ  Ｐｈｙ／Ｌｉｎｋに結合し、他のＰＣＩｅ対応デバイス（たとえば、他のＰＣＩｅ／ＳＡＳエキスパンダまたはＰＣＩｅ／ＳＡＳコントローラ１０４）からＰＣＩｅデータを転送できるＳＡＳ接続を確立するように動作可能である。
【００３０】
エキスパンダ・モジュール３５３は、エキスパンダ接続ルータ３５５、エキスパンダ接続マネージャ３５４、およびブロードキャスト伝播プロセッサ３５６を含む。エキスパンダ接続マネージャ３５４は、エキスパンダ内の様々なリンク・レイヤの接続を確立するために要求にサービスを提供する。エキスパンダ接続ルータ３５５は、エキスパンダ内のリンク・レイヤ間でスイッチング機能を提供する。ブロードキャスト伝播プロセッサ３５６は、ＰＣＩｅ／ＳＡＳアグリゲータ３５２を通じて接続されたＰＣＩｅターゲット・デバイス１１１を検出し、入ってくるブロードキャスト要求を処理し、ＳＡＳプロトコル要件ごとに要求が転送されることを保証するように動作可能である。一般的に、接続されたＰＣＩｅターゲット・デバイス１１１に関係する検出された情報は、ＰＣＩｅ／ＳＡＳコントローラ１０４など、ＰＣＩｅ対応ＳＡＳイニシエータで利用可能になり、本質的に、たとえば、ベンダ独自のＳＭＰ機能、または新しく標準化されたＳＭＰＰＣＩｅデバイス検出機能によって、従来のレガシＳＡＳコントローラから情報を隠す。これらのモジュールのそれぞれは、一般的に、ＰＣＩｅトンネリングされた接続にサービスを提供しながら、その標準ＳＡＳの振る舞いを維持する。
【００３１】
ＰＣＩｅ／ＳＡＳアグリゲータ３５２は、ＰＣＩｅ制御、デバイスごとのクレジット管理、および複数のＰＣＩｅターゲット・デバイス１１１をサポートするために必要でバッファリングを提供しながら、エキスパンダ・モジュール３５３の標準ＳＡＳエキスパンダ機能に標準インターフェースを提供する。ＰＣＩｅクレジット管理は、ＰＣＩｅデバイスがそのトランザクション・レイヤ（つまりＴＬＰ）の各受信バッファのクレジットの初期量をアドバタイズすることを可能にするＰＣＩｅプロトコルの方式である。リンクの反対端のデバイスは、このデバイスにトランザクションを送信するときに、各ＴＬＰがそのアカウントから消費するクレジットの数を数える。その消費されたクレジット数がそのクレジット限度を超えていない場合、送信するＰＣＩｅデバイスはＴＬＰを送信する。受信するデバイスは、そのバッファからのＴＬＰの処理を終了し、受信するデバイスは、送信するデバイスにクレジットの返却を伝え、これにより、回復された量だけクレジット限度が増加する。このようにＳＡＳ接続を通じてＰＣＩｅデータパケットがトンネリングされると、ＤＬＬＰは、中間のエキスパンダを通じて渡されるため、ＰＣＩｅ／ＳＡＳアグリゲータ３５２およびＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ（より詳細には以下に記述）は、ＳＡＳ接続の間にＤＬＬＰフレームを直接的に交換することができる。
【００３２】
ＰＣＩｅトラフィックはパケット化されるため、複数のＰＣＩｅターゲット・デバイス１１１が単一の物理的なＳＡＳ接続を共有することが可能になる。また、したがって、１つまたは複数の接続で運ばれているＰＣＩｅトラフィックは、ＰＣＩｅ／ＳＡＳアグリゲータ３５２からエキスパンダ接続マネージャ３５４およびエキスパンダ接続ルータ３５５に、接続されたＰＣＩｅターゲット・デバイス１１１にサービスを提供するために適切な帯域幅を確立することを要求する。言い換えると、サービスを提供されるＰＣＩｅターゲット・デバイス１１１の数と、使用されるエキスパンダ機能のインターフェースの数との間に基本的な関係はない。
【００３３】
複数のＰＣＩｅターゲット・デバイス１１１で複数のＳＡＳ接続を共有する場合、ＴＬＰシーケンス番号は、ＰＣＩｅターゲット・デバイス１１１ごとに独立して追跡される。ＴＬＰシーケンス番号は、パケットが規定された宛先に順に伝達されることを保証するために使用される。一実施形態では、伝導路識別子は、ＳＡＳドメイン１００を横断する送信に対してＴＬＰ準備パケットの開始位置にＴＬＰシーケンス番号とともに含まれている。たとえば、ＴＬＰシーケンス番号に隣接するＴＬＰの最初のニブルは、通常、すべて論理「０」に設定される。その代わり、一意のＰＣＩｅターゲット・デバイス１１１に複数の異なる伝導路（たとえば１６）を符号化するために、第１のニブルを使用することができる。あるいは、または加えて、ＰＣＩｅ／ＳＡＳアグリゲータ３５２は、ＴＬＰに適用する特定のアドレス指定およびルーティングを識別するために、ＴＬＰヘッダを検査することができ、それによって、１組のＳＡＳ接続を共有できるＰＣＩｅターゲット・デバイス１１１の数への制限を取り除くことができる。
【００３４】
図７は、図６のＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３の一例としてのＰＣＩｅ／ＳＡＳアグリゲータ３５２を示すブロック図である。この実施形態では、ＰＣＩｅ／ＳＡＳアグリゲータ３５２は、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３のエキスパンダ接続マネージャ３５４およびエキスパンダ接続ルータ３５５との間で、ＳＡＳ接続の要求を処理するように動作可能なエキスパンダ・インターフェース４０４を含む。ＳＡＳ接続が確立されると、ＰＣＩｅパケットの１つまたは複数のストリームをエキスパンダ・インターフェース１０１を通じて渡すことができる。この点で、ＤＬＬＰ接続エンドポイント３０１には、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３とＰＣＩｅ／ＳＡＳコントローラ１０４との間のＳＡＳドメイン１００を通じて転送されたＤＬＬＰパケットを終了するために、開いたＳＡＳ接続ごとにＤＬＬＰ終了モジュール４０３−１〜４が提供される。すでに述べたように、これらのＤＬＬＰパケットは、エンドツーエンドのＴＬＰパケットを承認し、ＳＡＳドメイン１００を通じてＰＣＩｅパケット伝送に利用可能なクレジットを管理する。
【００３５】
ＰＣＩｅ  ＴＬＰは、ＤＬＬＰ終了モジュール４０３−１〜４を通じてＰＣＩｅデータパケット・スイッチ４０１へと移動する。ＰＣＩｅデータパケット・スイッチ４０１は、ＰＣＩｅ  Ｐｈｙ／Ｌｉｎｋごとにフロー制御のクレジット情報を維持し、
ＤＬＬＰ終了４０３−１〜４とＰＣＩｅ  Ｐｈｙ／Ｌｉｎｋとの間でデータパケットを転送するか、またはクレジットの不足のために直ちに渡すことができないデータパケットを一時的にバッファリングするかについて、クレジットに基づく決定を下す。クレジットが利用可能になると、ＰＣＩｅデータパケット・スイッチ４０１は、データパケットの宛先に依存して、ＰＣＩｅパケット・バッファ４０２に格納されたＴＬＰをＰＣＩｅ  Ｐｈｙ／ＬｉｎｋまたはＤＬＬＰ終了４０３−１〜４に転送する。
【００３６】
すでに述べたように、特定のＳＡＳリンクの帯域幅をＰＣＩｅトラフィックに対して最大限にする場合、ＳＡＳ接続は、ＰＣＩｅトラフィックの継続的利用のためだけに用いることができる。そうでない場合、ＰＣＩｅターゲット・デバイス１１１で利用可能な帯域幅は、一般的に、ＰＣＩｅ／ＳＡＳアグリゲータ３５２で利用可能なクレジットの関数であり、一般的には、利用可能なＳＡＳ帯域幅およびＰＣＩｅホストシステム１０５の上流の帯域幅の関数である。
【００３７】
図８は、一例としてのＰＣＩｅ／ＳＡＳコントローラ１０４のブロック図である。ＰＣＩｅ／ＳＡＳコントローラ１０４は、従来のＳＡＳターゲット・デバイス１１０およびＰＣＩｅターゲット・デバイス１１１をサポートするように動作可能である。ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＳＡＳドメイン１００に接続されたＰＣＩｅターゲット・デバイス１１１のトポロジを確立するために、下流のＰＣＩｅターゲット・デバイス１１１のＰＣＩｅエニュメレーションを実行するように動作可能であるため、ＰＣＩｅターゲット・デバイス１１１の「ルート・コンプレックス」として動作することができる。ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＰＣＩｅプロトコルによりＰＣＩｅ制御およびＰＣＩｅ／ＳＡＳ接続のクレジット管理を管理するＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５を含む。この点で、ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５は、複数の下流のＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３をサポートするためにバッファリングを提供する。たとえば、ＰＣＩｅプロトコルはコネクションレス型のプロトコルであるため、ＳＡＳ接続を通じてＰＣＩｅデータパケットの転送を制御し追跡するために、ＳＡＳドメイン１００内のＰＣＩｅ接続エンドポイントでデータパケットをバッファリングする必要がある。ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５は、ＰＣＩｅホストシステム１０５からデータパケットのバッファリングを提供し、その宛先ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３に転送されるＰＣＩｅデータパケットに関連するクレジットを管理する。
【００３８】
ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５は、ＳＡＳドメイン１００を通じてアクセス可能であるＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３に接続されているＰＣＩｅターゲット・デバイス１１１の接続の詳細からＰＣＩｅホストシステム１０５を隠す非透過的なＰＣＩｅブリッジとしてある程度まで動作する。言い換えると、ＳＡＳドメイン１００を通じた様々なＰＣＩｅターゲット・デバイス１１１との間の接続、ルーティング、およびデータパケット転送の複雑さは、ＰＣＩｅ／ＳＡＳコントローラ１０４に押しつけられるため、ＰＣＩｅホストシステム１０５は、他のタスクのためにその処理機能を利用することができる。この点で、それらの宛先ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３にデータパケットをルーティングするために、ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５は、ＳＡＳポート・レイヤ４１４とともに機能する。言い換えると、ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５によって指示されるようにＰＣＩｅデータパケットをルーティングするために、ＳＡＳポート・レイヤ４１４はスイッチング機能として動作する。
【００３９】
ＰＣＩｅ／ＳＡＳコントローラ１０４は、また、ＳＡＳドメイン１００のエキスパンダ、レガシＳＡＳエキスパンダ１０２またはＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３のいずれかに接続されたＳＡＳターゲット・デバイス１１０の間でＳＡＳデータをルーティングするためにＳＡＳトランスポート・モジュール４１６を含む。ＳＡＳトランスポート・モジュール４１６は、ＳＡＳポート・レイヤ４１４のスイッチングを介してＳＡＳターゲット・デバイス１１０に従来のＳＡＳ通信を提供するように動作する。
【００４０】
ＰＣＩｅホスト・インターフェース４１７は、ＳＡＳドメイン１００とＰＣＩｅホストシステム１０５のＰＣＩｅドメインとの間で通信を提供するために、ＰＣＩｅ／ＳＡＳコントローラ１０４で構成される。たとえば、「ｘＮ」ＰＣＩｅ  Ｐｈｙ／Ｌｉｎｋ４１８は、ＰＣＩｅホストシステム１０５のＰＣＩｅ論理相互接続によりＰＣＩｅデータパケットを受信する（たとえば、ｘ１  Ｐｈｙ、ｘ２  Ｐｈｙ、ｘ４  Ｐｈｙなど）。それらのデータパケットがＳＡＳターゲット・デバイス１１０を宛先としている場合、ＰＣＩｅホスト・インターフェース４１７は、ＳＡＳトランスポート・モジュール４１６を介してＳＡＳドメイン１００を通じてＳＡＳターゲット・デバイス１１０に伝送するために、それらのデータパケットをＳＡＳデータに変換する。
【００４１】
図９は、図８のＰＣＩｅ／ＳＡＳコントローラ１０４の一例としてのＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５を示すブロック図である。ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４１５は、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３との間でＰＣＩｅ  ＴＬＰデータパケットを転送する目的でＳＡＳ接続を確立するために、ＳＡＳポート・レイヤ・コントローラ４５１と対話する。ＰＣＩｅ  ＴＬＰデータパケットは、ＰＣＩｅバッファ・マネージャおよびホストシステム・インターフェース４５２によって制御されるＰＣＩｅパケット・バッファ４５４に格納される。ここでも、上記の実施形態によると、ＰＣＩｅデータパケットは、ＰＣＩｅホストシステム１０５とＰＣＩｅターゲット・デバイス１１１との間でＰＣＩｅデータパケットを転送する間に、ＳＡＳドメイン１００の接続エンドポイントでバッファリングされる。ＰＣＩｅパケット・バッファ４５４は、この点で、ＳＡＳエンドポイント３０２およびＰＣＩｅエンドポイント３０１の非透過的なブリッジのインターワーキング・ポイントとして動作する。
【００４２】
ＤＬＬＰ終了モジュール４５３−１〜４は、ＰＣＩｅ／ＳＡＳアグリゲータ３５２のＤＬＬＰ終了モジュール４０３に似た方法で、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３とＰＣＩｅ／ＳＡＳコントローラ１０４との間で渡されたＤＬＬＰパケットを終了する。これにより、ＤＬＬＰパケットがＴＬＰパケットを承認し、ＳＡＳ接続を通じてＰＣＩｅパケット送信に利用可能なクレジットを管理することが可能になる。
【００４３】
他に例を提供すると、ＰＣＩｅデータパケットが、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３に接続されたＰＣＩｅターゲット・デバイス１１１と、ＰＣＩｅ／ＳＡＳコントローラ１０４との間で転送される場合、ＰＣＩｅデータパケットを転送する必要があるコンポーネントからの標準ＳＡＳ  ＯＡＦは、２つのコンポーネント間にＳＡＳ接続を確立する。ＳＡＳ接続は、ＰＣＩｅデータパケット転送のコンポーネントが送信するべきＰＣＩｅデータパケットを持っている限り、その他の場合には、ＳＡＳプロトコルによって指示された限り開いている。コンポーネントがＰＣＩｅデータパケットを転送する必要がなくなった場合、そのコンポーネントは、ＳＡＳプロトコルのＣＬＯＳＥプリミティブを発行する。ＳＴＰ接続と同様に、ＣＬＯＳＥプリミティブが両方向に交換されると、ＳＡＳ接続は終了されて、続いて、接続に参加しているエキスパンダ１０１／１０２／１０３によって取り除かれる。
【００４４】
開いた接続の全二重通信での利用を改善するために、そのＣＬＯＳＥプリミティブを送信する前に、ＳＡＳ接続を開始した接続のコンポーネントからＣＬＯＳＥプリミティブを受信するまで、接続の一方は待つことができる。あるいは、または加えて、ＳＡＳ接続の閉鎖は、ＳＡＳ接続でＰＣＩｅターゲット・デバイス１１１とＰＣＩｅ／ＳＡＳコントローラ１０４との間で転送されているＴＬＰデータパケットを解釈することによって実行することができる。これにより、次のＳＡＳ接続で帯域幅要件を予測するのを支援することができる。しかし、ＰＣＩｅトラフィックに必要な帯域幅を提供するために、上に記述したように持続的なＳＡＳ接続を実装することができる。持続的なＳＡＳ接続は、ＥＸＴＥＮＤ＿ＣＯＮＮＥＣＴＩＯＮプリミティブおよびＳＡＳプロトコルの関連するタイマーを使用して、ＳＰＬ−３パーシステント・コネクションの変形形態として実装することができる。
【００４５】
いずれの場合にも、エキスパンダ１０１／１０３のＰＣＩｅ／ＳＡＳアグリゲータ３５２およびＰＣＩｅ／ＳＡＳコントローラ１０４のＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４０５は、ＳＡＳ接続の閉鎖を、任意のＰＣＩｅクレジット、ＴＬＰシーケンス番号、およびＳＡＳコンポーネント間のＤＬＬＰ伝導路に関連する他のパラメータの現在の状態を保持するための指示と見なす。ＳＡＳプロトコルの明示的な符号化は、ＰＴＰを実装し、ＳＡＳドメイン１００のＰＴＰ接続を識別するために使用することができる。あるいは、ＰＣＩｅ／ＳＡＳコントローラ１０４の独立したワールド・ワイド・ネーム（ＷＷＮ）は、ＰＣＩｅ／ＳＡＳインターワーキング・イニシエータ４０５へのＰＴＰ接続を指示するために使用することができる。次に、一意のＷＷＮは、複数の接続されたＰＣＩｅターゲット・デバイス１１１を識別し、ＰＣＩｅ／ＳＡＳアグリゲータ３５２へのＳＡＳ接続を完了するようにエキスパンダ接続マネージャ３５４に合図を送るために、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３で使用することができる。ＳＡＳ接続は、また、ＯＡが受信され、ＤＷＯＲＤが中間のエキスパンダによって転送されて、レガシのエキスパンダ（たとえばエキスパンダ１０２）を用いて動作可能になるポイントまでＳＴＰを使用して確立することができる。
【００４６】
ＳＡＳドメイン１００を通じたＰＴＰ接続が開かれると、ＰＣＩｅルールは、一般的に、ＳＡＳドメイン１００でＳＴＰデータ転送に適用するＳＴＰルールに似た方法で、すべてのＰＣＩｅデータパケット送信に対して適用される。たとえば、ＳＡＳ接続が開いているとき、ＤＷＯＲＤＳは中間のエキスパンダを通じて転送されるため、ＰＣＩｅ通信をＳＡＳ接続の端部で正確に表現することができる。一実施形態では、ＳＡＳ接続は、ＰＣＩｅ／ＳＡＳエキスパンダ１０１／１０３および／またはＰＣＩｅ／ＳＡＳコントローラ１０４でＰＣＩｅデータパケットのバッファ・レベルに基づいて閉じることができる。図示するために、それを実行するクレジットが不足しているために（つまり、ＰＣＩｅパケット・バッファ４０２に利用可能なバッファ・スペースがないため）、ＰＣＩｅ／ＳＡＳコントローラ１０４がＰＣＩｅ／ＳＡＳエキスパンダ１０１にＰＣＩｅデータパケットを送信することができない場合、ＰＣＩｅ／ＳＡＳコントローラ１０４は、ＰＣＩｅ／ＳＡＳエキスパンダ１０１へのＳＡＳ接続を閉じることを選択することができる。接続は、また、事前に定めたパケットの量を送信する際の進捗に基づいて、またはバッファ・レベルがゼロになった場合、閉じることができる。
【００４７】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェアの要素の両方を含む実施形態の形式を取ることができる。一実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されないソフトウェアに実装される。図１０は、コンピュータ可読媒体５０６が本明細書に開示された方法のいずれかを実行するための命令を提供できるコンピューティング・システム５００を示している。
【００４８】
さらに、本発明は、コンピュータまたは任意の命令実行システムによって、またはそれらに接続して使用するためにプログラム・コードを提供するコンピュータ可読媒体５０６からアクセス可能なコンピュータ・プログラム製品の形式を取ることができる。この記述を目的として、コンピュータ可読媒体５０６は、コンピュータ・システム５００を含む、命令実行システム、装置、またはデバイスによって、またはそれらに接続して使用するためにプログラムを有形として格納することができる任意の装置でもよい。
【００４９】
媒体５０６は、有形の電子、磁気、光学、電磁気、赤外線、または半導体のシステム（または装置またはデバイス）でもよい。コンピュータ可読媒体５０６の例として、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性の磁気ディスクおよび光ディスクなどがある。光ディスクの最新の例として、コンパクト・ディスクを使った読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスクを使った読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤなどがある。
【００５０】
プログラム・コードを格納および／または実行するのに適したコンピューティング・システム５００は、システム・バス５１０を通じてメモリ５０８に直接的または間接的に結合された１つまたは複数のプロセッサ５０２を含むことができる。メモリ５０８は、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、バルク・ストレージ、および実行の間にコードがバルク・ストレージから取得される回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含むことができる。入力／出力またはＩ／Ｏのデバイス５０４（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない）は、直接的にまたは介在するＩ／Ｏコントローラを通じてシステムに結合することができる。ネットワーク・アダプタは、また、コンピューティング・システム５００を、ホストシステム・インターフェース５１２を通じてなど他のデータ処理システムに、または介在するプライベートまたは公衆のネットワークを通じてリモート・プリンターもしくはストレージデバイスに結合できるようにシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在利用可能なタイプのネットワーク・アダプタのごく一部である。
【図１】
2015005282.tif 000003
【図２】
2015005282.tif 000004
【図３】
2015005282.tif 000005
【図４】
2015005282.tif 000006
【図５】
2015005282.tif 000007
【図６】
2015005282.tif 000008
【図７】
2015005282.tif 000009
【図８】
2015005282.tif 000010
【図９】
2015005282.tif 000011
【図１０】
2015005282.tif 000012