(57)【要約】  複数の実施形態は包括的には、通信ネットワークにおいてヘッダを生成するための方法及び装置を対象とする。一実施形態では、第１の通信リンク上にあるノードにおいてプロトコルデータユニット（ＰＤＵ）が受信され、そのノードにおいて受信されるときに、ＰＤＵに関連付けられる特定の通信プロトコルに特有でないヘッダが生成され、そのヘッダは、ＰＤＵを第２の通信リンク上にある別のノードのメモリベースサービスインターフェースに送達するために、ＰＤＵをカプセル化し、第２の通信リンクを通して転送するのを容易にする。 【選択図】図９
2008512895.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信リンク上にあるノードにおいてプロトコルデータユニット（ＰＤＵ）を受信すること、及び
前記ノードにおいて受信されるときに、前記ＰＤＵに関連付けられる特定の通信プロトコルに特有でないヘッダを生成すること
を含む方法であって、該ヘッダは、前記ＰＤＵをカプセル化するとともに、前記第２の通信リンクを通して転送し、前記ＰＤＵを第２の通信リンク上にある別のノードのメモリベースサービスインターフェースに送達するのを容易にする、方法。
【請求項２】
各セグメントが１つの通信単位に収まるように、前記ＰＤＵをセグメント化すること、
前記ヘッダを含むように、前記ＰＤＵの各セグメントをカプセル化すること、
前記ヘッダにおいて前記セグメントのタイプを指示すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ＰＤＵは、前記ノードに通信可能に接続される第１のデバイスによって送信されるデータを含み、該データは前記他のノードに通信可能に接続される第２のデバイスによって受信される、請求項１に記載の方法。
【請求項４】
前記ＰＤＵは、前記第１のデバイスによって送信されるものと同じ通信フォーマットにおいて前記第２のデバイスによって受信される、請求項３に記載の方法。
【請求項５】
前記受信されたＰＤＵに関連付けられる特定の通信プロトコルに特有でないトランスポートサービスヘッダを生成することは、前記受信されたＰＤＵを読み取り、該受信されたＰＤＵに関連付けられる前記通信プロトコルを判定し、該判定に基づいて前記ヘッダの少なくとも一部を生成することによって果たされる、請求項１に記載の方法。
【請求項６】
前記ＰＤＵの転送及び送達を容易にすることは、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかの前記判定に基づいて、前記ＰＤＵが、前記カプセル化されたＰＤＵの１つ又は複数のｄｗｏｒｄ内に１つ又は複数のＰｒｅＰａｄバイトを挿入することによってカプセル化されるようにフォーマットすること、及び、前記ヘッダにおいて前記１つ又は複数のＰｒｅＰａｄバイトの前記挿入を指示することを含む、請求項５に記載の方法。
【請求項７】
前記ＰＤＵの転送及び送達を容易にすることは、前記カプセル化されたＰＤＵがバイト反転形式で前記メモリベースサービスインターフェースに送達されるべきであるか否かを前記ヘッダにおいて指示することを含み、該指示は、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかの前記判定に基づき、且つ前記メモリベースサービスインターフェースのバイト順序に基づく、請求項５に記載の方法。
【請求項８】
前記受信されたＰＤＵに関連付けられる特定の通信プロトコルに特有でないトランスポートサービスヘッダを生成することは、前記受信されたＰＤＵとともに含まれるメタデータに基づいて、前記ヘッダの少なくとも一部を生成することによって果たされ、前記メタデータは、前記第１の通信リンクに関連付けられるインターフェースを指示する、請求項１に記載の方法。
【請求項９】
前記ＰＤＵのカプセル化、転送及び送達を容易にすることは、カプセル化されるときに前記ＰＤＵによって満たされないバイトの数に基づいて、前記カプセル化されたＰＤＵの最後のｄｗｏｒｄ内に１つ又は複数のＥｎｄＰａｄバイトを挿入することによって、前記ＰＤＵがカプセル化されるようにフォーマットすることを含む、請求項１に記載の方法。
【請求項１０】
前記通信リンクは、アドバンスドスイッチングコア規格に準拠して動作するスイッチファブリックを含む、請求項１に記載の方法。
【請求項１１】
前記メモリベースサービスインターフェースは、前記他のノードに応答する送信／受信バッファのためのメモリベースサービスインターフェースを含む、請求項１に記載の方法。
【請求項１２】
前記送信／受信バッファは、先入れ／先出しバッファ（ＦＩＦＯ）を含む、請求項１１に記載の方法。
【請求項１３】
前記メモリベースサービスインターフェースは、前記ノード及び前記他のノードに応答する共有メモリ内のデータ構造を含む、請求項１に記載の方法。
【請求項１４】
通信リンク上にあるノードと、
該ノードに応答して、該ノードによって受信されるプロトコルデータユニット（ＰＤＵ）に関連付けられる特定の通信プロトコルに特有でないヘッダを生成するトランスポートサービスマネージャと
を備える装置であって、前記ヘッダは、前記ＰＤＵをカプセル化するとともに、前記通信リンクを通して転送し、前記ＰＤＵを前記通信リンク上にある別のノードのメモリベースサービスインターフェースに送達するのを容易にする、装置。
【請求項１５】
前記通信リンクは、アドバンスドスイッチングコア規格に準拠して動作するスイッチファブリックである、請求項１４に記載の装置。
【請求項１６】
前記ノードに接続され、通信プロトコル識別情報を格納するためのメモリをさらに備え、該メモリは、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかを判定し、該判定に基づいて、前記ヘッダの少なくとも一部を生成するために、前記トランスポートサービスマネージャによってアクセスされる、請求項１４に記載の装置。
【請求項１７】
実行可能な内容を格納するためのメモリと、
該メモリに通信可能に接続され、前記実行可能な内容を実行し、前記トランスポートサービスマネージャのインスタンスを実施するための制御ロジックとをさらに備える、請求項１８に記載の装置。
【請求項１８】
前記制御ロジックは、ネットワークプロセッサ内に実装される制御ロジックを含む、請求項１７に記載の装置。
【請求項１９】
通信リンクと、
揮発性メモリを含むノードと、
該ノードに応答し、該ノードによって受信されるプロトコルデータユニット（ＰＤＵ）に関連付けられる特定の通信プロトコルに特有でないヘッダを生成するためのトランスポートサービスマネージャとを備えるシステムであって、前記ヘッダは、前記ＰＤＵをカプセル化するとともに、前記通信リンクを通して転送し、前記ＰＤＵを前記通信リンク上の別のノードのメモリベースサービスインターフェースに送達するのを容易にする、システム。
【請求項２０】
前記通信リンクは、アドバンスドスイッチングコア規格に準拠して動作するスイッチファブリックである、請求項１９に記載のシステム。
【請求項２１】
前記揮発性メモリは、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかを判定するための通信プロトコル情報を含む、請求項１９に記載のシステム。
【請求項２２】
前記揮発性メモリは、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかを判定するために前記トランスポートサービスマネージャによってアクセスされ、該判定に基づいて、前記トランスポートサービスマネージャは前記ヘッダの少なくとも一部を生成する、請求項２１に記載のシステム。
【請求項２３】
内容を含む記憶媒体であって、該内容が通信リンク上にあるノードによって実行されるときに、該ノードに、
プロトコルデータユニット（ＰＤＵ）を受信させ
該ノードにおいて受信されるときに前記ＰＤＵに関連付けられる特定の通信プロトコルに特有でないヘッダを生成させ、該ヘッダは、前記ＰＤＵをカプセル化するとともに、前記通信リンクを通して転送し、前記ＰＤＵを前記通信リンク上にある別のノードのメモリベースサービスインターフェースに送達するのを容易にする、記憶媒体。
【請求項２４】
前記受信されたＰＤＵに関連付けられる特定の通信プロトコルに特有でないヘッダを生成することは、前記ノードが、前記受信されたＰＤＵを読み取り、該受信されたＰＤＵに関連付けられる前記通信プロトコルを判定し、該判定に基づいて、前記ノードが、前記ヘッダの少なくとも一部を生成することによって果たされる、請求項２３に記載の記憶媒体。
【請求項２５】
前記ノードが、各セグメントが前記通信リンクの１つの通信単位に収まるように前記ＰＤＵをセグメント化すること、
前記ノードが、前記ヘッダを含むように前記ＰＤＵの各セグメントをカプセル化すること、及び
前記ノードが、前記ヘッダ内に前記セグメントのタイプの指示を挿入すること
をさらに含む、請求項２３に記載の記憶媒体。
【請求項２６】
前記ＰＤＵの転送及び送達を容易にすることは、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかの判定に基づいて、前記ＰＤＵが、前記カプセル化されたＰＤＵの１つ又は複数のｄｗｏｒｄ内に１つ又は複数のＰｒｅＰａｄバイトを挿入することによってカプセル化されるようにフォーマットすること、及び、前記ヘッダにおいて前記１つ又は複数のＰｒｅＰａｄバイトの前記挿入を指示することを含む、請求項２５に記載の記憶媒体。
【請求項２７】
前記ＰＤＵの転送及び送達を容易にすることは、前記カプセル化されたＰＤＵがバイト反転形式で前記メモリベースサービスインターフェースに送達されるべきであるか否かを指示するために、前記ノードが前記ヘッダ内に指示を挿入することを含み、該指示は、どの通信プロトコルが前記受信されたＰＤＵに関連付けられるかの判定に基づき、且つ前記メモリベースサービスインターフェースのバイト順序に基づく、請求項２５に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、包括的には電子システムの分野に関し、より詳細には、通信ネットワーク内でヘッダを生成するための方法及び装置に関する。
【背景技術】
【０００２】
通信ネットワーク内の通信リンクは多くの場合に、通信リンク上にあるエンドポイント間でデータ及び／又は命令（これ以降、「データ」と呼ばれる）を転送する専用のパケット交換ネットワークから構成される。これらの通信リンク上にあるエンドポイントは、特定の通信プロトコルに関連付けられるデータを受信し、そのデータを他のエンドポイントに転送することができる。特定の通信プロトコルに関連付けられるデータを受信した後に、それらのエンドポイントは、サービスクラス、優先順位、データ保全性、輻輳管理、フロー制御及びリンク管理のような、交換又はルーティング機能を提供する付加的な通信プロトコルを追加することもできる。これらの機能を追加する結果として、通信リンク上にあるエンドポイントによってデータが受信されるときに、データに関連する取り得るプロトコルの数が多くなるので、一段と複雑になる。
【発明の開示】
【０００３】
本発明は、添付の図面の中の図において例示されるが、限定はされない。なお、図面においては、同様の参照符号は同様の構成要素を指している。
【発明を実施するための最良の形態】
【０００４】
本発明の複数の実施形態は包括的には、通信ネットワークにおいてヘッダを生成するための方法及び装置を対象とする。１つの例示的な実施形態によれば、本明細書では、トランスポートサービスマネージャが導入される。後にさらに十分に説明されるように、斬新なトランスポートサービスマネージャが、通信リンク上にあるノードに応答し、そのノードによって受信されたプロトコルデータユニット（ＰＤＵ）に関連付けられる特定の通信プロトコルに特有でないヘッダを生成し且つ／又は処理するように動作することができ、そのヘッダは、ＰＤＵをカプセル化するとともに、通信リンクを通して転送し、ＰＤＵをその通信リンク上にある別のノードのメモリベースサービスインターフェースに送達するのを容易にする。
【０００５】
図１は、本発明の一実施形態による、電子システムの概略図である。図１では、アドバンスドスイッチング（ＡＳ）ファブリック１１０、入力／出力（ＩＯ）エンドポイント１２０、１３０及び１４０、デバイス１６０、１７０及び１８０、通信リンク１５２、１５４及び１５６がそれぞれ図に示されるように接続される。また、図１に示されるように、ＡＳファブリック１１０は、ファブリックマネージャ１１６と、ＡＳ通信リンク１１４とを備える。
【０００６】
後にさらに十分に明らかにされるように、一実施形態によれば、デバイス１７０から、通信リンク１５２上で、ＩＯエンドポイント１３０によって任意のデータが受信される。別法では、エンドポイント１３０内に位置する処理素子において、任意のデータを発信することができる。任意のデータとして、種々の通信プロトコル（たとえば、イーサネット、ＳＯＮＥＴ、ＡＴＭ、ＴＣＰ／ＩＰ等）に対応することができるか、又は関連付けられることができる通信プロトコルフォーマットにおいて、デバイス（たとえば、デバイス１７０）から送信されるデータ及び／又は命令（これ以降、「データ」と呼ばれる）を用いることができる。このデータは、特定の通信プロトコルに特有のヘッダを含むことができるデータパケットの形で送信され、これ以降、「プロトコルデータユニット」又は「ＰＤＵ」と呼ばれる。ＰＤＵ内のヘッダは、これ以降、「ＰＤＵヘッダ」と呼ばれ、ＰＤＵ内のデータは、これ以降、「ＰＤＵペイロード」と呼ばれる。
【０００７】
代替の実施形態では、ＰＤＵは、ＡＳファブリック１１０上にあるＩＯエンドポイントにおいて受信されるときに、ヘッダを含まないこともある。たとえば、ＰＤＵは、ＡＳファブリック１１０上にあるＩＯエンドポイント内の処理ユニットによって作成されたＰＤＵペイロードだけしか含まないことがある。この例では、ＰＤＵは、ＡＳファブリック１１０にわたってＰＤＵを転送するためにＡＳファブリック１１０によって提供されるトランスポートサービスに特有の通信プロトコルに関連付けられることができる。この例では、ＰＤＵは、ＡＳファブリック１１０上にあるＩＯエンドポイント内の処理ユニットによって作成された可能性のあるＰＤＵペイロードだけしか含まない。
【０００８】
この例示的な実施形態によれば、デバイス１７０からのＰＤＵがデバイス１６０に向かうことになる。ＰＤＵは、たとえば、デバイス１６０によって取り扱われるべきコマンド、命令、情報要求、マルチメディアコンテンツ等であり得るＰＤＵペイロードを含む。また、ＰＤＵは、特定の通信プロトコルに関連付けられるＰＤＵヘッダも含むことができ、ＰＤＵヘッダは、ＡＳファブリック１１０にわたる特定の通信プロトコルのブリッジング又はトンネリングに関連付けられる情報も含むことができる。
【０００９】
デバイス１６０によってＰＤＵを効率的に受信するのを容易にするために、ＰＤＵは、ＡＳファブリック１１０にわたって転送された後に、比較的同じ通信プロトコルフォーマットを維持する（特定の通信プロトコルに関連付けられるＰＤＵヘッダの部分及びＰＤＵペイロードは元のままである）。
【００１０】
図１は、デバイス１６０に到着するために、ＰＤＵが、ＩＯエンドポイント１３０からＡＳファブリック１１０にわたって、ＡＳ通信リンク１１４を介して、ＩＯエンドポイント１２０までＰＵＤを転送することになるルートに従うことを示す。
【００１１】
１つの例示的な実施形態では、ＰＤＵはＩＯエンドポイント１２０のメモリベースサービスインターフェースに送達される。１つの例示的な実施態様では、メモリベースサービスインターフェースとして、送信及び／又は受信バッファ（たとえば、先入れ先出し（ＦＩＦＯ）バッファ）、処理素子又は共有メモリを用いることができ、それらは全てＡＳファブリック１１０上の出口ＩＯエンドポイントに応答することができる。その後、ＩＯエンドポイント１２０のメモリベースサービスインターフェースから通信リンク１５６を介してデバイス１６０にＰＤＵを送信することができるか、又はデバイス１６０が、通信リンク１５６を介して、ＩＯエンドポイント１２０のメモリベースサービスインターフェース内のＰＤＵにアクセスすることができる。
【００１２】
ＰＤＵは、デバイス１７０から送信されたものと比較的同じ通信プロトコルフォーマットにおいて、デバイス１６０まで転送されるので、ＰＤＵは、「カプセル化」と呼ばれる過程において、ＡＳファブリック１１０にわたって、ＩＯエンドポイント１３０からＩＯエンドポイント１２０まで転送される。後にさらに詳細に説明されるように、受信されたＰＤＵに関連付けられる特定のプロトコルに特有でないヘッダ（これ以降、「トランスポートサービスヘッダ」と呼ばれる）を含むカプセル化フォーマットを用いて、受信されたＰＤＵをＡＳファブリック１１０にわたって効率的に転送するのを容易にする。
【００１３】
一実施形態によれば、ＡＳファブリック１１０は、これ以降、「ＡＳコア規格」と呼ばれる、Ａｄｖａｎｃｅｄ  Ｓｗｉｔｃｈｉｎｇ  Ｃｏｒｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｒｅｖ．１．０（２００３年１２月発行）に準拠して動作する。ＡＳコア規格において記述され、後にさらに詳細に説明されるようなＡＳルートヘッダが、ＡＳファブリック１１０上のＩＯエンドポイントによって用いられ、ＰＤＵが、ＡＳ通信リンク１１４を介して、ＡＳファブリック１１０上にある１つ又は複数の他のＩＯエンドポイントまでルーティングされる。
【００１４】
１つの例示的な実施形態では、後にさらに詳細に説明されるように、ＩＯエンドポイント１３０が、カプセル化フォーマットを用いてＰＤＵをカプセル化し、ＰＤＵをＡＳファブリック１１０上にある別のエンドポイントに効率的に転送する。そのＰＤＵがＩＯエンドポイント１２０によって受信されると、ＡＳファブリック１１０に特有のヘッダは除去され、ＩＯエンドポイント１３０によって受信されたものと比較的同じ通信プロトコルフォーマットにおいて、そのＰＤＵがデバイス１６０に送信されるか、又はデバイス１６０がそのＰＤＵにアクセスできるようになる。
【００１５】
ＡＳルートヘッダに加えて、輻輳制御、マルチキャスト、セグメンテーション及びリアセンブリ（ＳＡＲ）のような、具体的なトランスポートサービスが、ファブリックトランスポーテーションサービスに関連するＡＳコア規格内に記述されるが、本発明は、これらのトランスポーテーションサービスには限定されない。ＡＳコア規格はさらに、これらのトランスポーテーションサービスを、特定のプロトコルインターフェース（ＰＩ）に関連付ける。
【００１６】
１つの例示的な実施形態では、ＡＳファブリック１１０上にある１つ又は複数のＰＩを効率的に使用するのを助けるために、トランスポートサービスマネージャ３００が利用される。図１に示されるように、トランスポートサービスマネージャ３００の機能は、ファブリックマネージャ１１６の一部として含まれることがあり、且つ／又はＡＳファブリック１１０上にある１つのＩＯエンドポイント内に配置され、且つ／又はそれに対応することがある。
【００１７】
トランスポートサービスマネージャ３００は、後にさらに詳細に説明されるように、ＩＯエンドポイント１３０によって受信されるＰＤＵ、又はエンドポイント１３０において生成されるＰＤＵに関連付けられる特定の通信プロトコルに特有でない、ＡＳファブリック１１０上のトランスポートサービスヘッダを生成することができる。この汎用トランスポートサービスヘッダは、ＰＤＵをカプセル化するとともに、ＡＳファブリック１１０にわたって転送し、ＰＤＵをＩＯエンドポイント１２０のメモリベースサービスインターフェースに送達するのを容易にするであろう。
【００１８】
１つの例示的な実施形態では、ＡＳファブリック１１０にわたってＰＤＵを効率的に転送するために、ＳＡＲトランスポーテーションサービスが用いられる。たとえば、ＰＤＵが、ＡＳファブリック１１０にわたって転送されるカプセル化されたＰＤＵのために許容されるペイロードサイズを超える場合には、ＳＡＲが用いられる。その関連で、後にさらに詳細に説明されるように、デバイス１７０から送信される、許容されるペイロードサイズを超えるＰＤＵは、ＩＯエンドポイント１３０によってより小さなセグメントにスライスされ、結果として生成されるセグメントが、許容されるペイロード内に収められる。
【００１９】
トランスポートサービスマネージャ３００は、後にさらに詳細に説明されるように、ＡＳ通信リンク１１４を介して、ＡＳファブリック１１０にわたって、ＩＯエンドポイント１２０のメモリベースサービスインターフェースに転送されるカプセル化された各ＰＤＵセグメントとともに含まれることになる汎用トランスポートサービスヘッダを生成することによって、このセグメント化過程を容易にする。その後、ＰＤＵをＩＯエンドポイント１３０において受信されるものと比較的同じフォーマットにおいてデバイス１６０に送達及び／又は送信するために、そのセグメントは、ＩＯエンドポイント１２０によってリアセンブルされる。
【００２０】
代替の実施形態では、ＩＯエンドポイント１３０は、ＰＤＵの宛先にすることができる。その場合、リアセンブルされたＰＤＵは、遠隔デバイス１６０には転送されない。
【００２１】
図２は、本発明の一実施形態による、カプセル化されたＰＤＵの概略図である。図２において、カプセル化されたＰＤＵは、ＡＳファブリックキャリアプロトコル２００において示される。
【００２２】
ＡＳファブリックキャリアプロトコル２００は、ＡＳルートヘッダ２１０と、汎用トランスポートサービスヘッダ２２０と、ＰＤＵヘッダ２３０と、ＰＤＵペイロード２４０とを含む。先に述べられたように、ＡＳコア規格内に記述されるフォーマットのＡＳルートヘッダが、ＡＳファブリック１１０上にあるＩＯエンドポイントによって用いられ、カプセル化されたＰＤＵが、ＡＳ通信リンク１１４を介して、ＡＳファブリック１１０上にある出口ＩＯエンドポイントまで効率的にルーティングされる。その関連で、ＡＳルートヘッダ２１０が、ＡＳコア規格に従って、ＡＳファブリック１１０上にある出口ＩＯエンドポイントによって生成される。
【００２３】
ＡＳファブリックキャリアプロトコル２００のフォーマットにカプセル化されたＰＵＤを、ＡＳファブリック１１０上にある出口ＩＯエンドポイントであるＩＯエンドポイントのメモリベースサービスインターフェースまで送達するのを容易にするために、先に述べられたように、また後にさらに詳細に説明されるように、トランスポートサービスマネージャ３００によって、汎用トランスポートサービスヘッダ２２０が生成される。
【００２４】
ＰＤＵヘッダ２３０は、その通信プロトコルに関連付けられ、且つＰＤＵ内に含まれるデータを宛先デバイスからＡＳファブリック１１０上にある入口ＩＯエンドポイントまで送信するために用いられるヘッダを含む。
【００２５】
ＰＤＵペイロード２４０は、ＰＤＵ内で転送される内容を含む。これらの内容は、データに加えて、よりハイレベルのプロトコルＰＤＵ及びその関連するハイレベルのプロトコルヘッダのうちの一部又は全ても含むことができる。ＡＳファブリックキャリアプロトコル２００内に取り込まれた、ＰＤＵヘッダ２３０及びＰＤＵペイロード２４０は、これ以降、「カプセル化されたＰＤＵ」と呼ばれる。
【００２６】
ＡＳコア規格は、カプセル化の１つの方法としても知られている、「チェーニング」と呼ばれる過程において他のヘッダを参照できるようにするヘッダフォーマットを記述する。１つの例示的な実施形態では、チェーニングは、ＡＳファブリックキャリアプロトコル２００において、小さな番号を付されたヘッダが大きな番号を付されたヘッダを参照することによって達成される。こうして、ＡＳファブリックキャリアプロトコル２００では、ＡＳルートヘッダ２１０は、小さな番号を付されたヘッダになり、汎用トランスポートサービスヘッダ２２０への参照を含むことによって、より大きな番号を付された汎用トランスポートサービスヘッダ２２０に連鎖するであろう。この過程は、ＡＳファブリックキャリアプロトコル２００内に含まれるヘッダ毎に、図２におけるＡＳファブリックキャリアプロトコル２００の下方に続くであろう。
【００２７】
代替の実施形態では、ＡＳファブリックキャリアプロトコル２００は、図２に示されるヘッダよりも多くのヘッダを含むことができ、アドバンスドスイッチングに特有でないヘッダを含むことができる。その関連で、大きな番号に配置される各ヘッダは、小さな番号に配置されるヘッダに連鎖するであろう。たとえば、トランスポートサービスヘッダ２２０はさらに、ハイパーテキストマークアップ言語（ＨＴＭＬ）、リモートプロシージャコール（ＲＰＣ）、リアルタイムトランスポートプロトコル（ＲＴＰ）等の、複数の他のハイレベルのプロトコルに連鎖することができる。
【００２８】
１つの例示的な実施形態では、ＡＳファブリックキャリアプロトコル２００内の各要素は、これ以降、「ｄｗｏｒｄ」と呼ばれる、１つ又は複数の「ダブルワード」を含む。ｄｗｏｒｄは３２ビットのデータを指示し、そのデータはさらに４つの８ビットセグメントに分割されることができる。ＡＳファブリックキャリアプロトコル２００は、要素毎に、及び／又は組み合わせられた全ての要素に対して、１組のｄｗｏｒｄ数に等しいサイズ制約を有することができる。このサイズ制約は、ＡＳコア規格によって、又は特定のＡＳファブリックの物理的な能力に適用することができる制約のような他の制約によって決定される。
【００２９】
図３は、本発明の一実施形態による、トランスポートサービスマネージャの構成図である。トランスポートサービスマネージャ３００は、図示されるようにそれぞれ接続される、トランスポートエンジン３１０と、制御ロジック３２０と、メモリ３３０と、ＩＯインターフェース３４０と、オプションで１つ又は複数のアプリケーション３５０とを含む。
【００３０】
図３では、トランスポートエンジン３１０が、トランスポートヘッダ機構３１４と、送達機構３１６とを含む。後にさらに十分に明らかにされるように、トランスポートヘッダ機構３１４及び送達機構３１６は、スイッチファブリック（たとえば、ＡＳファブリック１１０）上にあるノード（たとえば、ＩＯエンドポイント１３０）において受信されるＰＤＵのカプセル化及び転送を容易にするために、ＰＤＵに関連付けられる通信プロトコルに対して共通になるように、トランスポートサービスヘッダを生成する。結果として、ＰＤＵを、そのノードから、スイッチファブリックを通して、スイッチファブリック上にある別のノード（たとえば、エンドポイント１２０）のメモリベースサービスインターフェースまで効率的に転送することができる。
【００３１】
本明細書において用いられるときに、制御ロジック３２０は、トランスポートサービスマネージャ３００の全動作を制御し、本明細書において記述される、トランスポートサービスマネージャ３００の動作を実施するための多種多様な論理デバイス（複数可）及び／又は実行可能な内容のいずれかを表すことが意図されている。この関連で、制御ロジック３２０は、マイクロプロセッサ、ネットワークプロセッサ、マイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、又はそのような制御機構を実施するための実行可能な内容、及び／又はそれらの任意の組み合わせから構成できることが好都合である。代替の実施形態では、制御ロジック３２０の機構及び機能は、トランスポートエンジン３１０内で実現できることが好都合である。
【００３２】
１つの例示的な実施形態では、制御ロジック３２０は、トランスポートエンジン３１０のインスタンスを呼び出し、ＡＳファブリック１１０上にあるＩＯエンドポイントにおいて受信されるＰＤＵのためのトランスポートサービスヘッダを生成するのを容易にする。汎用トランスポートサービスヘッダは、ＰＤＵをＡＳファブリック１１０上にある別のＩＯエンドポイントのメモリベースサービスインターフェースに転送するために、ＰＤＵをカプセル化し、ＡＳファブリック１１０にわたって転送するのを容易にする。
【００３３】
本明細書において用いられるときに、メモリ３３０は、限定はしないが、揮発性メモリ、不揮発性メモリ、フラッシュ及びプログラムの変数又は状態を含む、多種態様なメモリ媒体を表すことが意図されている。
【００３４】
１つの例示的な実施形態によれば、メモリ３３０は、ＡＳファブリック１１０上にあるＩＯエンドポイント１３０によって受信されるＰＤＵに関連付けられる特定の通信プロトコルに特有でない汎用トランスポートサービスヘッダを生成するための符号化情報を含むテーブルを一時的に格納するために用いられる。メモリ３３０は、カプセル化されたＰＤＵ（たとえば、ＰＤＵヘッダ２３０及びＰＤＵペイロード２４０）がＡＳファブリックキャリアプロトコル２００のフォーマットでＡＳファブリックキャリアプロトコル内に配置される方法を容易にするための符号化情報を一時的に格納することもできる。
【００３５】
またメモリ３３０は、実行可能な内容も格納することができる。実行可能な内容は、制御ロジック３２０によって用いられ、トランスポートエンジン３１０のインスタンスを実施することができる。
【００３６】
１つの例示的な実施形態では、或る形態の機械アクセス可能媒体からメモリ３３０に、機械読取り可能命令を与えることができる。本明細書において用いられるときに、機械アクセス可能媒体は、機械又はデバイス（たとえば、ＩＯエンドポイント１３０）によって読取り可能な形式で情報を提供する（すなわち格納し、且つ／又は送信する）任意の機構を表すことが意図されている。たとえば、機械アクセス可能媒体は、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的、光学的、音響的又は他の形態の伝搬信号（たとえば、搬送波、赤外線信号、デジタル信号）等を含むことができることが好都合である。
【００３７】
本明細書において用いられるときに、ＩＯインターフェース３４０は、トランスポートサービスマネージャ３００と電子システムとの間の通信インターフェースを提供する。たとえば、トランスポートサービスマネージャ３００は、通信ネットワークの構成要素として実現することができ、Ｉ／Ｏインターフェース３４０は、通信チャネルを介して、トランスポートサービスマネージャ３００と通信ネットワークとの間の通信インターフェースを提供する。この関連で、制御ロジック３２０は、トランスポートサービスマネージャ３００の外部にあるアプリケーションソフトウエアから一連の命令を、Ｉ／Ｏインターフェース３４０を介して受信することができる。一連の命令は、制御ロジック３２０を呼び出し、トランスポートエンジン３１０の１つ又は複数の機構を実施することができる。
【００３８】
１つの例示的な実施形態では、トランスポートサービスマネージャ３００は、制御ロジック３２０に命令を与えるための１つ又は複数のアプリケーション３５０を含むことができる。本明細書において用いられるときに、そのようなアプリケーション３５０を呼び出して、ユーザインターフェース、たとえばグラフィカルユーザインターフェース（ＧＵＩ）を生成し、管理機構を使用可能にすること等を実施できることが好都合である。代替の実施形態では、トランスポートエンジン３１０の１つ又は複数の機構が、そのような機構を呼び出すために制御ロジック３２０によって呼び出されるアプリケーション３５０として実現できることが好都合である。
【００３９】
一実施形態では、ＰＤＵは、デバイス１６０の宛先とともに、ＡＳファブリック１１０上にあるＩＯエンドポイント１３０によって受信される。ＩＯエンドポイント１３０は、そのＰＤＵをＡＳファブリックキャリアプロトコル２００のフォーマットにカプセル化して、そのＰＤＵを、ＡＳファブリック１１０にわたって、ＩＯエンドポイント１２０に転送し、その後、ＩＯエンドポイント１２０は、デバイス１６０の宛先にＰＤＵを送信するであろう。カプセル化する前に、ＩＯエンドポイント１３０は、ＰＤＵの全サイズを求めて、そのサイズを、ＡＳファブリックキャリアプロトコル２００のための許容されるサイズと比較する。ＰＤＵが許容されるサイズを超えている場合には、ＩＯエンドポイント１３０は、そのＰＤＵを、より小さなセグメントにスライスするであろう。
【００４０】
ＰＤＵサイズが求められ、ＰＤＵがおそらくセグメント化されると、トランスポートエンジン３１０が、トランスポートヘッダ機構３１４のインスタンスを呼び出す。トランスポートヘッダ機構３１４は、後にさらに詳細に説明されるように、メモリ３３０内の符号化テーブルにアクセスし、汎用トランスポートサービスヘッダにどの符号化が当てはまることになるかを決定する。符号化が決定されると、トランスポートヘッダ機構３１４は、汎用トランスポートサービスヘッダ（図２において、汎用トランスポートサービスヘッダ２２０として示される）の適用可能なフィールドを占有する。
【００４１】
汎用トランスポートサービスヘッダの適用可能なフィールドがトランスポートヘッダ機構３１４によって占有されると、トランスポートエンジン３１０が、送達機構３１６のインスタンスを呼び出す。送達機構３１６は、後にさらに詳細に説明されるように、カプセル化されたＰＤＵをフォーマット又は配列し、カプセル化されたＰＤＵをＩＯエンドポイント１２０のメモリベースサービスインターフェースに効率的に送達するのを容易にする。
【００４２】
１つの例示的な実施形態では、トランスポートサービスマネージャ３００は、ＡＳファブリック１１０上にある出口ＩＯエンドポイントにおいて、カプセル化されたＰＤＵを転送するのを容易にすることができる。その関連で、トランスポートエンジン３１０は、カプセル化されたＰＤＵが出口ＩＯエンドポイントによって受信されるときに、送達機構３１６のインスタンスを呼び出して、そのカプセル化されたＰＤＵのトランスポートサービスヘッダを読み取る。それにより、送達機構３１６は、そのＰＤＵを、出口ＩＯエンドポイントのメモリベースサービスインターフェースに送達するのを容易にする。
【００４３】
図４は、本発明の一実施形態による、トランスポートサービスヘッダの概略図である。図４には、汎用トランスポートサービスヘッダ４００が示される。汎用トランスポートサービスヘッダ４００は、種々の通信プロトコルに関連付けられるＰＤＵをカプセル化するのを容易にするように設計されるフォーマットである。したがって、汎用トランスポートサービスヘッダ４００は、或るスイッチファブリック上にある１つのノードにおいて受信されるＰＤＵにおそらく関連付けられる特定の通信プロトコルに特有ではなく、すなわち通信プロトコルに対して共通である。
【００４４】
汎用トランスポートサービスヘッダ４００は３２ビットのデータを含む。３２ビットのデータは５つのフィールド、すなわちセグメント化コードと、グラニュラリティ／エンディアン（Ｇ／Ｅ）と、メモリベースサービスインターフェース識別子と、ＰＤＵシーケンス番号と、ＰＩ／セグメントシーケンス番号とを含む。
【００４５】
ビット２８〜３１にある「セグメント化コード」フィールドは、ＰＤＵに関連付けられるセグメントの特性を示す。ビット２８〜３１は、図５ａのテーブル５１０において説明されるように、セグメント化コード符号化に基づいて選択的にアサートされる。
【００４６】
ビット２６及び２７にある「Ｇ／Ｅ」フィールドは、或るスイッチファブリック上にある出口ノードのメモリベースサービスインターフェースに送達されるときのＰＤＵのグラニュラリティ及びエンディアン特性を示す。この関連で、ビット２６及び２７は、後に図５ｂのテーブル５２０において説明されるように、Ｇ／Ｅ符号化に基づいて選択的にアサートされる。
【００４７】
１つの例示的な実施形態では、トランスポートエンジン３１０は、トランスポートヘッダ機構３１４のインスタンスを選択的に呼び出し、そのインスタンスは、ＡＳファブリック１１０上にあるＩＯエンドポイントによって受信されるＰＤＵの少なくとも一部を読み取り、そのＰＤＵに関連付けられるデータペイロードのフォーマットを判定することができる。データペイロードのフォーマットは、受信されたＰＤＵに関連付けられる通信プロトコルに基づくことができるか、又は静的に構成された情報に、すなわち導出されるパケット長、及び／又はそのパケットに関連付けられる通信インターフェースを含むことができる、そのパケットについての情報（これ以降、「メタデータ」と呼ばれる）に基づくことができる。
【００４８】
データペイロードのフォーマットは、１つ又は複数のｄｗｏｒｄＰＤＵヘッダと、それに続く、１つ又は複数のｄｗｏｒｄＰＤＵペイロードとを含むことができる。ＰＤＵヘッダは、ＰＤＵペイロードがＰＤＵの宛先にバイトストリーム形式で送達されるべきであるか、ｄｗｏｒｄストリーム形式で送達されるべきであるかを判定するために、出口トランスポートサービスマネージャ３００によって用いられる情報を含むことができる。その関連で、バイトストリーム形式が指示される場合には、ビット２７がトランスポートヘッダ機構３１４によってアサートされ、ｄｗｏｒｄストリーム形式が指示される場合にはデアサートされる。
【００４９】
バイトストリーム形式が指示される場合には、ＰＤＵがＡＳファブリック１１０にわたって転送された後に、そのＰＤＵが出口ＩＯエンドポイントのメモリベースサービスインターフェースにいかに送達されるかを指示するために、トランスポートヘッダ機構３１４はビット２６を選択的にアサートすることができる。その関連で、データがメモリベースサービスインターフェースからいかにアクセス／検索されるかに関して逆のバイトエンディアンネスを有するバイトストリーム形式で、ＰＤＵがデータを転送している場合には（エンディアンネスは、ｄｗｏｒｄの左側又は右側に配置される最上位バイトである）、トランスポートヘッダ機構３１４はビット２６をアサートするであろう。このようにビット２６をアサートすることは、ＰＤＵ内のペイロードデータが、バイト反転順序でメモリベースサービスインターフェースに送達されるべきであることを指示するであろう。
【００５０】
ビット１４〜２７にある「メモリベースサービス識別子」フィールドは、カプセル化されたＰＤＵセグメント（複数可）が送達される、メモリベースサービスインターフェース内の位置を指示する。メモリベースサービス識別子はさらに、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダが特定のメモリベースサービス識別子を指示することができる、受信されたＰＤＵ又はＰＤＵセグメントの順序付きのフローに関連付けられるリアセンブリ情報の手掛かり又はインデックスを提供する。
【００５１】
１つの例示的な実施態様では、この識別子は、ＡＳファブリック１１０上にあるＩＯエンドポイントの受信及び／又は送信バッファ内に保持される特定のキューに対して構成された送達オプションにすることができる。代替の実施態様では、その識別子は、ＡＳファブリック１１０上にあるＩＯエンドポイントに応答する特定のＰＩ特有処理ユニットに対して構成された送達オプションにすることができるが、本発明は、これらの２つの例示的な実施態様には限定されない。
【００５２】
ビット７〜１３にある「ＰＤＵシーケンス番号」フィールドは、スイッチファブリック上で転送されるＰＤＵのシーケンス内の特定のＰＤＵの位置を指示する。たとえば、マルチメディアオーディオフレームのシーケンスが、ＡＳファブリック１１０を通って、デバイス１７０からデバイス１６０まで送信される。この例では、ＩＯエンドポイント１３０によって受信される最初のＰＤＵがカプセル化され、割り当てられた「０」のＰＤＵシーケンス番号とともに、ＩＯエンドポイント１２０のメモリベースサービスインターフェースに送信され、そのマルチメディアオーディオフレームに関連付けられる後続のＰＤＵ毎に、この値が「１」だけインクリメントされる。同じＰＤＵの全てのセグメントが、同じＰＤＵシーケンス番号を搬送する。ＰＤＵシーケンス番号は折り返し、すなわち、最大値からインクリメントする場合には、結果として「０」の値になり、「０」は、そのフィールドが表すことができる最大値に続く次の連番であると見なされる。
【００５３】
ビット０〜６にある「ＰＩ／シーケンス番号」フィールドは、ＰＤＵに関連付けられる通信プロトコル（複数可）（たとえば、イーサネット、ＡＴＭ、ＩＰ、ＳＯＮＥＴ等）、又はＰＤＵがＡＳファブリック１１０にわたって別のＩＯエンドポイントに転送される前に、或るＩＯエンドポイントによってセグメントにスライスされる場合には、そのＰＤＵのセグメントのシーケンス番号を指示する。その関連で、セグメントのシーケンス番号は、ＡＳファブリック１１０上にあるＩＯエンドポイント間のポイントツーポイント通信リンクの一態様であり、ＡＳファブリック１１０にわたってＰＤＵの中間のセグメント及び最後のセグメント（これ以降、「最終セグメント」と呼ばれる）を転送するのを容易にするために用いられる。
【００５４】
１つの例示的な実施形態では、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダが、セグメントにスライスされているＰＤＵの先頭セグメントに関連付けられるか、又はセグメントにスライスされていないときには、ＰＤＵ全体（これ以降、「シングルトン」と呼ばれる）に関連付けられる。その関連で、トランスポートヘッダ機構３１４は、先頭セグメント又はシングルトンの少なくとも一部を読み取り、そのＰＤＵに関連付けられる通信プロトコルを判定する。その後、トランスポートヘッダ機構３１４は、テーブル（たとえば、メモリ３３０内に保持される）にアクセスして、指示された通信プロトコルのための符号化を判定し、それに応じて、ビット０〜６を選択的にアサートする。別法では、トランスポートヘッダ機構３１４は、ＰＤＵに関連付けられるメタデータにアクセスし、この判定を行うこともできる。
【００５５】
１つの例示的な実施形態では、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダが、ＰＤＵセグメントに関連付けられ、そのＰＤＵセグメントは、ＡＳファブリック１１０にわたって転送する前に、ＩＯエンドポイントによってスライスされるセグメントのシーケンスの一部である。その関連で、トランスポートヘッダ機構３１４は、そのＩＯエンドポイントによって以前にスライスされたＰＤＵセグメントの他のＰＤＵセグメントに対する、或るＰＤＵセグメントの相対的な位置に基づいて、ビット０〜６を選択的にアサートする。セグメントシーケンス番号は、先頭セグメントでは必然的に「０」になり、トランスポートヘッダ機構３１４によって、一連の各セグメントにおいて「１」だけインクリメントされる。最大値に達しているが、そのＰＤＵに関連付けられる全てのデータを転送するために、後続のセグメントがさらに必要とされる場合には、シーケンス番号は０に折り返される。
【００５６】
１つの例示的な実施形態では、ＡＳファブリック１１０にわたって転送する前にＰＤＵをスライスすることは、ＩＯエンドポイント以外の構成要素によって実行されることもある。その関連で、ＰＤＵをスライスすることは、ＡＳファブリック１１０に応答するコンピュータエージェント上のソフトウエア内で行うことができるか、又はＡＳファブリック１１０に応答する専用ハードウエア（たとえば、ＡＳＩＣ）において行うことができる。
【００５７】
図５ａは、本発明の一実施形態による、トランスポートサービスヘッダのための符号化のテーブルを示す。図５ａでは、テーブル５１０が、ビット２８〜３１内に汎用トランスポートサービスヘッダ４００のための例示的なセグメント化コード符号化情報を含むものとして示される。
【００５８】
図５ｂは、本発明の一実施形態による、トランスポートサービスヘッダのためのグラニュラリティ／エンディアン（Ｇ／Ｅ）符号化のテーブルを示す。図５ｂでは、テーブル５２０が、ビット２６及び２７内に汎用トランスポートサービスヘッダ４００のための例示的なＧ／Ｅ符号化情報を含むものとして示される。
【００５９】
図６は、本発明の一実施形態による、メモリベースサービスインターフェースに対するエンディアン送達オプションの概略図である。図６では、ブロック図６１０が、或る特定のバイトストリーム順序でカプセル化されたＰＤＵの表現例を示す。ブロック図６２０及び６３０は、元々はブロック図６１０の順序でカプセル化されたＰＤＵの、それぞれ非バイト反転送達及びバイト反転送達の例を示す。
【００６０】
先に述べられたように、汎用トランスポートサービスヘッダ４００のフォーマットのＰＩ−汎用トランスポートサービスヘッダ内のビット２６及び２７は、カプセル化されたＰＤＵのグラニュラリティ及びエンディアン特性を指示する。その関連で、カプセル化されたＰＤＵがスイッチファブリック（たとえば、ＡＳファブリック１１０）上にある出口ノード（たとえば、ＩＯエンドポイント１２０、１３０又は１４０）によって受信されるとき、その出口ノードは、汎用トランスポートサービスヘッダ内のビット２６及び２７を読み取り、テーブル５２０に示される符号化に基づいて、そのメモリベースサービスインターフェースの中にカプセル化されたＰＤＵを取り込む。同じ結果を達成するために、そのパケットのバイト順序を指示するためのビット、及びターゲットのバイト順序がそのパケットのバイト順序とは異なる場合には、その内容がバイト反転されるべきであることを指示するためのビット等の、別の符号化情報を用いることができることは理解されよう。
【００６１】
代替の実施形態では、特定のＰＩに関連付けられるカプセル化されたＰＤＵが特定のＰＩに基づいてバイト反転されるように、出口ノードへのエンディアン送達オプションを静的に構成することができる。その関連で、カプセル化されたＰＤＵが１つのノードによって受信されるとき、その出口ノードは最初に、そのカプセル化されたＰＤＵにどのＰＩが関連付けられるかを判定し、その後、そのＰＩのための静的にプログラミングされた構成に従って、カプセル化されたＰＤＵを、そのメモリベースサービスインターフェース内に取り込む。
【００６２】
図７は、本発明の一実施形態による、メモリベースサービスインターフェースへのＰｒｅＰａｄ送達の概略図である。図７では、ブロック図７１０、７２０、７３０、７４０及び７５０が、カプセル化されたＰＤＵに関連付けられる先頭セグメント又はシングルトンセグメントのＰｒｅＰａｄ部分の種々の例を示す。そのＰＤＵは、たとえば、ＡＳファブリックキャリアプロトコル２００のフォーマットにカプセル化される。
【００６３】
１つの例示的な実施形態では、「ＰｒｅＰａｄ」は、カプセル化されたＰＤＵをオフセットする過程である。ＰｒｅＰａｄは、カプセル化されたＰＤＵをメモリベースサービスインターフェース内に、又はスイッチファブリック上にある出口ノードの処理ユニット内に効率的に送達するのを容易にし、ＰＤＵの内容を効率的に処理するのを容易にする。バイトカウント長を単位とするＰｒｅＰａｄのサイズは、少なくとも或る程度、スイッチファブリック上にある入口ノードにおいて受信されるときに、どの通信プロトコルがＰＤＵに関連付けられるかに基づく。
【００６４】
先に述べられたように、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダは、ビット２８〜３１において、ＰｒｅＰａｄが先頭セグメント又はシングルトンセグメントにおいて存在するかを指示する。ＰｒｅＰａｄが存在することを、汎用トランスポートサービスヘッダが指示する場合には、カプセル化されたＰＤＵの最初のｄｗｏｒｄの１つ又は複数のビットが選択的にアサートされる。ＰｒｅＰａｄが先頭セグメント又はシングルトンセグメントにおいて存在することを汎用トランスポートサービスヘッダが指示するものと出口ノードが判定すると、これらの選択的にアサートされたビットによって、スイッチファブリック上にある出口ノードが、ＰｒｅＰａｄのバイトカウント長を求めることができるであろう。
【００６５】
図７では、ブロック図７１０はＰｒｅＰａｄを示さない。ブロック図７２０、７３０、７４０及び７５０はそれぞれ、１、２、３及び１３バイトカウント長のＰｒｅＰａｄを示す。凡例７６０は、図７のブロック図において、どのバイトがＰｒｅＰａｄを含むかを強調するための凡例を示す。
【００６６】
１つの例示的な実施形態では、ＰＤＵがＩＯエンドポイント１７０において受信される。その際、トランスポートエンジン３１０が、トランスポートヘッダ機構３１４のインスタンスを呼び出す。トランスポートヘッダ機構３１４は、受信されたＰＤＵの少なくとも一部を読み取り、付加情報にアクセスし、どの通信プロトコルが、受信されたＰＤＵに関連付けられるかを判定することができる。その判定に一部基づいて、トランスポートヘッダ機構３１４は、ＰＤＵの先頭セグメント又はシングルトンセグメントにおいて、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダ内のビット２８〜３１を選択的にアサートし、カプセル化されたＰＤＵがＰｒｅＰａｄを含むか否かを指示する。
【００６７】
１つの例示的な実施態様では、ＰＤＵに関連付けられる通信プロトコルとしてイーサネットを用いることができる。イーサネット通信プロトコルに関連付けられるＰＤＵは、１４バイトヘッダ、及びそれに続くデータのペイロードから成る。この例示的な実施態様では、カプセル化されたＰＤＵ内のプロトコルヘッダが、３２ビット（４バイト）毎に区切ってメモリベースサービスインターフェース内に送達される場合に、ＡＳファブリック１１０上にある出口ＩＯエンドポイントのメモリベースインターフェースが、より効率的に動作する。
【００６８】
たとえば、イーサネットフレームはさらにＩＰヘッダをカプセル化し、ＩＰヘッダはさらにＴＣＰヘッダをカプセル化し、ＴＣＰヘッダはさらにＨＴＴＰヘッダをカプセル化する場合には、これらの３つのｄｗｏｒｄ用のヘッダフォーマットは、４バイトではなく、２バイト毎に区切って並べられて送達されることになるので、結果として、イーサネットフレーム内にカプセル化されるプロトコルを処理する、ネットワークプロセッサのようなプロセッサによるアクセスの効率が低下する。結果として、イーサネットヘッダのためのＰｒｅＰａｄが存在しない場合に、イーサネットヘッダに関連付けられるＰＤＵ送達が、ｄｗｏｒｄの第３のバイトではなく、第１のバイトにおいて開始するなら、格納及び／又は処理が非効率的になることがある。２バイトＰｒｅＰａｄを利用するトランスポートサービスヘッダ内でイーサネットフレームを転送することにより、イーサネットペイロード（たとえばＩＰ）が４バイト毎に区切って並べられる。
【００６９】
その関連で、汎用トランスポートサービスヘッダのビット２８〜３１は、ＰｒｅＰａｄが存在することを指示するであろう。その後、トランスポートエンジン３１０が送達機構３１６を呼び出す。送達機構３１６は、汎用トランスポートサービスヘッダのビット０〜６を読み取り、ＰＤＵに関連付けられる通信プロトコルがイーサネットであると判定することができ、その後、イーサネットに対応する適当なＰｒｅＰａｄバイトカウント長を含むメモリ（たとえば、メモリ３３０）内のテーブルにアクセスするであろう。先に述べられたように、イーサネットのためのＰｒｅＰａｄバイトカウント長は２バイトである。したがって、情報は最初のＰＤＵｄｗｏｒｄ内に配置され（たとえば、複数のビットが選択的にアサートされる）、ＡＳファブリック１１０上にある出口ＩＯエンドポイントが、２バイトのＰｒｅＰａｄバイトカウント長を判定できるようにする。先に述べられたように、ＰｒｅＰａｄの２バイトカウント長は、イーサネット通信プロトコルに関連付けられるカプセル化されたＰＤＵをフォーマットして、ＰＤＵ内にカプセル化されたプロトコルを、３２ビット毎に区切って、出口ノードのメモリベースサービスインターフェースに効率的に送達できるようにする。
【００７０】
図８は、本発明の一実施形態による、メモリベースサービスインターフェースへのＥｎｄＰａｄ送達の概略図である。図８では、ブロック図８１０、８２０、８３０及び８４０が、カプセル化されたＰＤＵに関連付けられる最終セグメント又はシングルトンセグメントのＥｎｄＰａｄ部分の種々の例を示す。そのＰＤＵは、たとえば、ＡＳファブリックキャリアプロトコル２００のフォーマットにカプセル化される。
【００７１】
１つの例示的な実施形態では、「ＥｎｄＰａｄ」は、カプセル化されたＰＤＵに関連付けられる最終セグメント又はシングルトンセグメントの後続のバイトをスキップ又は無視する過程である。ＥｎｄＰａｄは、ｄｗｏｒｄだけを転送するファブリックにわたって、任意のバイト長のパケットを搬送するプロトコルの転送を容易にする。これは、受信出口ノードに対して、最終セグメント又はシングルトンセグメントがノードのメモリベースサービスインターフェースに送達されるときに、カプセル化されたＰＤＵ内の最後のｄｗｏｒｄの１つ又は複数の後続のバイトがスキップされるべきであることを指示することによって達成される。バイトカウント長を単位とする、ＥｎｄＰａｄのサイズは、少なくとも或る程度、満たされていない、カプセル化されたＰＤＵに関連付けられる最終セグメント又はシングルトンセグメントの最後のｄｗｏｒｄ内の後続のバイトの数に基づく。別の実施形態では、ＥｎｄＰａｄは、より大きな範囲のスキップ又は無視するためのバイトを指示し、より大きなパッドサイズを容易にするために、パケットの最後のｄｗｏｒｄには限定されない場合もある。
【００７２】
先に述べられたように、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダは、ビット２８〜３１において、ＥｎｄＰａｄが最終セグメント又はシングルトンセグメント内に存在するか否かを指示する。ＥｎｄＰａｄが存在することを、汎用トランスポートサービスヘッダが指示する場合には、カプセル化されたＰＤＵに関連付けられる最終セグメント又はシングルトンセグメントの最後のｄｗｏｒｄの１つ又は複数のビットが選択的にアサートされる。スイッチファブリック上にある出口ノードは、ＥｎｄＰａｄが存在することを汎用トランスポートサービスヘッダが指示するものと判定した後に、最後のｄｗｏｒｄ内の選択的にアサートされたビットを用いて、ＥｎｄＰａｄのバイトカウント長を求めて、それに応じて、最後のｄｗｏｒｄ内の１つ又は複数のバイトをスキップ又は無視する。
【００７３】
図８では、ブロック図８１０はＥｎｄＰａｄが存在しないことを示す。ブロック図８２０、８３０及び８４０は、それぞれ１バイトカウント長、２バイトカウント長及び３バイトカウント長を有するＥｎｄＰａｄを示す。凡例８５０は、図８のブロック図において、どのバイトがＥｎｄＰａｄを含むかを強調するための凡例も示す。
【００７４】
１つの例示的な実施形態では、ＰＤＵがＩＯエンドポイント１７０において受信され、そのＰＤＵは、ＡＳファブリックキャリアプロトコル２００のカプセル化フォーマットにおいて、ＡＳファブリック１１０上でカプセル化されたＰＤＵのために許容されるペイロードサイズ内に容易に収まるサイズである。したがって、カプセル化されたＰＤＵはシングルトンセグメントである。
【００７５】
その後、トランスポートエンジン３１０が、トランスポートヘッダ機構３１４のインスタンスを呼び出す。トランスポートヘッダ機構３１４は、シングルトンセグメントの少なくとも一部又は他の情報を読み取り、そのサイズを求める。トランスポートヘッダ機構３１４は、その求められたサイズに一部基づいて、ＰＤＵのシングルトンセグメント内の汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダ内のビット２８〜３１を選択的にアサートして、正確なバイト長を有するシングルトンを送達できるようにするために、カプセル化されたＰＤＵがＥｎｄＰａｄを含むか否かを指示する。
【００７６】
図９は、本発明の一態様による、ＰＤＵを、スイッチファブリックを通して、そのスイッチファブリック上にあるノードのメモリベースサービスインターフェースに送信するのを容易にするための１つの方法例の流れ図である。その過程はブロック９００において開始し、ブロック９００では、１つの例示的な実施形態によれば、特定の通信プロトコル（たとえば、イーサネット、ＡＴＭ、ＳＯＮＥＴ等）に関連付けられるＰＤＵが、デバイス１７０から、通信リンク１５２を介して、ＩＯエンドポイント１３０において受信され、そのＰＤＵの最終的な宛先はデバイス１６０である。
【００７７】
ＰＤＵがＩＯエンドポイント１３０によって受信されると、その過程はブロック９１０に進む。ブロック９１０では、ＩＯエンドポイント１３０が、ＡＳファブリックキャリアプロトコル２００のフォーマットのＡＳファブリックキャリアプロトコルを用いて、そのＰＤＵが、ＡＳファブリック１１０にわたって転送することができる、許容されるサイズを超えているか否かを判定する。ＰＤＵが許容されるサイズを超えている場合には、その過程はブロック９２０に進む。
【００７８】
ブロック９２０では、ＩＯエンドポイントが、そのＰＤＵを、ＡＳファブリックキャリアプロトコル内にカプセル化することができる、許容されるサイズ内にあるセグメントにスライスする。その後、その過程はブロック９３０に進む。
【００７９】
ブロック９３０では、トランスポートエンジン３１０が、トランスポートヘッダ機構３１４のインスタンスを呼び出す。トランスポートヘッダ機３１４は、セグメント化されたＰＤＵ又はシングルトン（セグメント化されていない）ＰＤＵいずれかの内容の少なくとも一部を読み取り、他の情報にアクセスすることができ、汎用トランスポートサービスヘッダ４００のフォーマットの汎用トランスポートサービスヘッダ２２０内に含まれるフィールドにおいて、どのビットが選択的にアサートされるかを判定する。その後、トランスポートヘッダ機構３１４が、この判定に基づいて、汎用トランスポートサービスヘッダ内のビットを選択的にアサートする。その後、その過程はブロック９４０に進む。
【００８０】
ブロック９４０では、トランスポートエンジン３１０が、送達機構３１６のインスタンスを呼び出す。送達機構３１６は、汎用トランスポートサービスヘッダ内のビット２８〜３１、及びＰＤＵ長のような他の情報を読み取り、カプセル化されたときに、ＰＤＵがＰｒｅＰａｄ及び／又はＥｎｄＰａｄを含むように、ＰＤＵがフォーマットされるべきであるか否かを判定する。ＰＤＵがＰｒｅＰａｄ及び／又はＥｎｄＰａｄを含む場合には、その過程はブロック９５０に進む。
【００８１】
ブロック９５０では、送達機構３１６が、先頭ＰＤＵセグメント又はシングルトンＰＤＵセグメントの最初のｄｗｏｒｄ及び／又はシングルトンＰＤＵセグメント又は最終ＰＤＵセグメントの最後のｄｗｏｒｄのビットを選択的にアサートする。このように選択的にアサートすることによって、受信する出口ノードが、先頭ＰＤＵセグメント、シングルトンＰＤＵセグメント又は最終ＰＤＵセグメントのＰｒｅＰａｄ及び／又はＥｎｄＰａｄのバイトカウント長を求めることができる情報が与えられる。その後、その過程はブロック９６０に進む。
【００８２】
ブロック９６０では、セグメント化されたＰＤＵ又はシングルトンＰＤＵが、ＡＳルートヘッダ２１０内に含まれる情報に従って、ＡＳファブリック１１０にわたってＡＳ通信リンク１１４上で転送され、ＩＯエンドポイント１２０によって受信されることになる。その後、その過程はブロック９７０に進む。
【００８３】
ブロック９７０では、ＩＯエンドポイント１２０が、ＰＤＵがセグメント化されている場合には、それをリアセンブルし、メモリベースサービスインターフェースに送達する前に、あらゆるＰｒｅＰａｄ及び／又はＥｎｄＰａｄをスキップ又は無視し、全てのＡＳ特有カプセル化プロトコルを除去する。ＰＤＵ通信プロトコルタイプ及びパケット長のような、いくつかの情報は保持され、そのＰＤＵとともに通信することができる。その後、そのＰＤＵは、ＩＯエンドポイント１２０のメモリベースサービスインターフェースを通して、通信リンク１５６を介してデバイス１６０に送信するためにアクセスすることができる。そのようにアクセスすることによって、たとえば、ＩＯエンドポイント１２０に応答するか、又はその中に配置される受信及び／又は送信バッファに関連付けられるメモリコントローラインターフェースにアクセスすることができる。その後、その過程は、ＡＳファブリック１１０上にあるＩＯエンドポイントにおいて受信された次のＰＤＵのために再び開始する。
【００８４】
図１の電子システム１００の図を再び参照する。図１では、電子システムとして、メディアサーバ、ストレージサーバ、通信サーバ、通信ネットワークのためのスイッチ又はルータを用いることができるが、本発明はこれらの実施形態には限定されない。
【００８５】
デバイス１６０、１７０及び１８０は、通信リンク１５２、１５４及び１５６を通して、ＡＳファブリック１１０に直に、又は遠隔に接続されることができる。直に接続することは、イーサネット、ＳＯＮＥＴ、非同期転送モード（ＡＴＭ）等の通信標準規格を利用するポイントツーポイント通信リンクを介して行うことができる。遠隔に接続することは、８０２．１１及び／又は８０２．１６等の無線通信標準規格を利用する無線通信リンクを介して行うことができる。
【００８６】
デバイス１６０、１７０及び１８０も電子システム１００の構成要素を表しており、それらの構成要素は、電子システム１００内で送信されるデータのための発信元又は宛先のいずれかになることができる。その関連で、デバイス１６０、１７０及び１８０は、メディアブレード、スイッチブレード、コンピュートブレード又はストレージブレードのうちの１つ又は複数を含むことが好都合な場合もある。
【００８７】
本明細書において用いられる場合、ＩＯエンドポイント１２０、１３０及び１４０は、ＡＳファブリック１１０のための入力（入口）又は出力（出口）いずれかのノードとしての役割を果たす、電子システム１００の構成要素を表す。本明細書において用いられる場合、ＩＯエンドポイント１２０、１３０及び１４０は、データを送受信するための多数のハードウエア及び／又はソフトウエアの構成要素（複数可）のうちのいずれかを表すことが意図されている。この関連で、１つの例示的な実施形態によれば、ＩＯエンドポイント１２０、１３０及び１４０は、ブリッジ、マイクロプロセッサ、ネットワークプロセッサ、ソフトウエアアプリケーション、内蔵ロジック等のうちの１つ又は複数を含むことが好都合な場合もある。
【００８８】
先に述べられたように、トランスポートサービスマネージャ３００は、ＩＯエンドポイント１２０、１３０及び１４０内に含まれることができる。別法では、トランスポートサービスマネージャ３００は、ＡＳ通信リンク１１４を通して、ＩＯエンドポイント１２０、１３０及び１４０に通信可能に接続されることが好都合な場合もある。
【００８９】
１つの例示的な実施形態によれば、ＰＤＵを出口ＩＯエンドポイント上のメモリベースサービスインターフェースに送達するために、トランスポートサービスマネージャ３００が、ＰＤＵをカプセル化し、ＡＳファブリック１１０を通して転送するのを容易にするためのトランスポートサービスヘッダを生成することは、ハードウエア、ソフトウエア、ファームウエア又はそれらの任意の組み合わせにおいて実施できることが好都合な場合もある。この関連で、トランスポートサービスマネージャ３００は、少なくとも本明細書において記述される機能を実行するために、ＡＳＩＣ、特殊機能コントローラ又はプロセッサ、ＦＰＧＡ、他のハードウエアデバイス及びファームウエア又はソフトウエアのうちの１つ又は複数として実現することが好都合な場合もある。
【００９０】
これまでの記述では、説明の目的上、本発明を完全に理解してもらうために、数多くの具体的な細部が述べられた。しかしながら、本発明がこれらの具体的な細部を用いることなく実施できることは当業者には明らかであろう。他の事例では、本発明をわかりにくくするのを避けるために、構造及びデバイスがブロック図の形で示された。
【００９１】
本明細書において、「１つの実施形態」又は「或る実施形態」を参照することは、その実施形態に関連して記述される特定の特徴、構造又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体を通して種々の場所において「一実施形態において」という言い回しが現われても、必ずしも全てが同じ実施形態を参照しているとは限らない。同様に、本明細書全体を通して種々の場所において「別の実施形態において」又は「代替の実施形態において」という言い回しが現われても、必ずしも全てが同じ実施形態を参照しているとは限らない。
【００９２】
本発明は、いくつかの実施形態に関して説明されてきたが、本発明が説明された実施形態には限定されず、添付の特許請求の範囲の精神及び範囲内で変更及び修正を加えて実施できることは当業者には理解されよう。したがって、その説明は、添付の特許請求の範囲の範囲及び対象を限定するものではなく、例示と見なされるべきである。
【図面の簡単な説明】
【００９３】
【図１】本発明の一実施形態による電子システムの概略図である。
【図２】本発明の一実施形態による、カプセル化されたプロトコルデータユニット（ＰＤＵ）の概略図である。
【図３】本発明の一実施形態による、トランスポートサービスマネージャの構成図である。
【図４】本発明の一実施形態による、トランスポートサービスヘッダの概略図である。
【図５ａ】本発明の一実施形態による、トランスポートサービスヘッダのための符号化のテーブルを示す図である。
【図５ｂ】本発明の一実施形態による、トランスポートサービスヘッダのためのグラニュラリティ／エンディアン（Ｇ／Ｅ）符号化のテーブルを示すである。
【図６】本発明の一実施形態による、メモリベースサービスインターフェースへのエンディアン送達オプションの概略図である。
【図７】本発明の一実施形態による、メモリベースサービスインターフェースへのＰｒｅＰａｄ送達の概略図である。
【図８】本発明の一実施形態による、メモリベースサービスインターフェースへのＥｎｄＰａｄ送達の概略図である。
【図９】本発明の一態様による、ＰＤＵを、スイッチファブリックを通して、スイッチファブリック上にあるノードのメモリベースサービスインターフェースに送信するのを容易にするための１つの方法例の流れ図である。
【図１】
2008512895.tif 000003
【図２】
2008512895.tif 000004
【図３】
2008512895.tif 000005
【図４】
2008512895.tif 000006
【図５ａ】
2008512895.tif 000007
【図５ｂ】
2008512895.tif 000008
【図６】
2008512895.tif 000009
【図７】
2008512895.tif 000010
【図８】
2008512895.tif 000011
【図９】
2008512895.tif 000012
【国際調査報告】
2008512895.tif 000013
2008512895.tif 000014
2008512895.tif 000015