(57)【要約】  通信リンクのキューを監視するために、通信リンクの仮想チャネル（VC）キューの利用可能空間を監視することを有する。通信リンクの他のVCキューに対するVCキューの利用可能空間の比較が行われる。比較は、他のVCキューに対してVCキューの利用率を変更するために、仲裁方式のパラメータを変更する仲裁器（arbiter）に通信される。
2008538880.tif 000002
【特許請求の範囲】
【請求項１】
通信リンクの仮想チャネル（VC）キューの利用可能空間を監視し、
前記通信リンクの他のVCキューに対して前記VCキューの前記利用可能空間を比較し、
前記比較を仲裁器に通信し、他のVCキューに対する前記VCキューの利用率を変更するために、仲裁方式のパラメータを変更することを有する方法。
【請求項２】
前記VCキューは、通信ネットワークの装置についてのVC受信キューを有し、
前記装置は、前記通信ネットワークのリンク相手から前記通信リンクでデータを受信する、請求項１に記載の方法。
【請求項３】
前記利用可能空間は、前記VC受信キューへのデータを受信するための利用可能空間を有する、請求項２に記載の方法。
【請求項４】
前記データは、PCI（Peripheral  Component  Interconnect）Express標準に準拠した装置により受信される、請求項３に記載の方法。
【請求項５】
前記データは、AS（Advanced  Switching）標準に準拠した装置により受信される、請求項３に記載の方法。
【請求項６】
前記仲裁器は、プロトコルインタフェース（PI：protocol  interface）処理要素についてのものであり、前記PI処理要素は前記装置に応答可能である、請求項５に記載の方法。
【請求項７】
前記VC受信キューの利用可能空間を監視することは、前記装置と前記リンク相手との間で送信されるフロー制御クレジット・データリンクレイヤパケットを読み取ることを有する、請求項５に記載の方法。
【請求項８】
前記VCキューは、通信ネットワークの装置についてのVC送信キューを有し、
前記装置は、前記通信ネットワークのリンク相手に前記通信リンクでデータを転送する、請求項１に記載の方法。
【請求項９】
利用可能空間は、前記VC送信キューへのデータを受信するための利用可能空間を有する、請求項８に記載の方法。
【請求項１０】
前記データは、AS（Advanced  Switching）標準に準拠した装置により転送される、請求項８に記載の方法。
【請求項１１】
前記VC送信キューの利用可能空間を監視することは、前記VC送信キューを通じて転送されたデータに関連するASルートヘッダを読み取ることを有する、請求項８に記載の方法。
【請求項１２】
前記仲裁方式は、加重ラウンドロビンの仲裁方式を有する、請求項１に記載の方法。
【請求項１３】
AS（Advanced  Switching）標準に準拠して動作する装置についてポイント・ツー・ポイント通信リンクの仮想チャネル（VC）受信キューの利用可能空間を監視し、前記装置は、通信ネットワークのリンク相手から前記ポイント・ツー・ポイント通信リンクでデータを受信し、
前記ポイント・ツー・ポイント通信リンクの他のVC受信キューに対する前記VC受信キューの前記利用可能空間を比較し、
前記装置に応答可能なプロトコルインタフェース（PI：protocol  interface）処理要素の仲裁器に前記比較を通信し、前記仲裁器は、前記比較に基づいて加重ラウンドロビンの仲裁方式の１つ以上のパラメータを変更し、前記変更は、他のVC受信キューに対する前記PI処理要素による前記VC受信キューの利用率を変更することを有する方法。
【請求項１４】
前記VC受信キューの利用可能空間を監視することは、前記装置と前記リンク相手との間で送信されたフロー制御クレジット・データリンクレイヤパケットを読み取ることを有する、請求項１３に記載の方法。
【請求項１５】
前記PI処理要素は、前記通信リンクで前記装置により受信されたデータの分割及び再構築を含むように伝送サービスを容易にするPI処理要素を有する、請求項１４に記載の方法。
【請求項１６】
通信リンクの仮想チャネル（VC）キューの利用可能空間を監視し、
前記通信リンクの他のVCキューの利用可能空間と前記VCキューの前記利用可能空間とを比較し、
前記比較を仲裁器に通信する容量マネージャを有し、
前記仲裁器は、前記比較に基づいて他のVCキューに対する前記VCキューの利用率を変更するために、仲裁方式のパラメータを変更する装置。
【請求項１７】
前記VCキューは、通信ネットワークの装置についてのVC受信キューを有し、
前記装置は、前記通信ネットワークのリンク相手から前記通信リンクでデータを受信する、請求項１６に記載の装置。
【請求項１８】
前記データは、AS（Advanced  Switching）標準に準拠した装置により受信される、請求項１７に記載の装置。
【請求項１９】
前記処理要素は、前記装置に応答可能なプロトコルインタフェース処理要素を有する、請求項１８に記載の装置。
【請求項２０】
前記VC受信キューの利用可能空間を監視することは、前記容量マネージャが前記装置と前記リンク相手との間で送信されるフロー制御クレジット・データリンクレイヤパケットを読み取ることを有する、請求項１８に記載の装置。
【請求項２１】
前記VCキューは、通信ネットワークの装置についてのVC送信キューを有し、
前記装置は、前記通信ネットワークのリンク相手に前記通信リンクでデータを転送する、請求項１６に記載の装置。
【請求項２２】
前記データは、AS（Advanced  Switching）標準に準拠した装置により転送される、請求項２１に記載の装置。
【請求項２３】
前記VC送信キューの利用可能空間を監視することは、ASルートヘッダの少なくとも一部を読み取ることを有し、前記ASルートヘッダは、前記VC送信キューを通じて転送されたトランザクションレイヤパケットに関連する、請求項２２に記載の装置。
【請求項２４】
実行可能コンテンツを格納するメモリと、
前記メモリに通信可能に結合され、前記実行可能コンテンツを実行し、前記容量マネージャのインスタンスを実装する制御ロジックと
を更に有する、請求項１６に記載の装置。
【請求項２５】
通信リンクの装置と、
前記装置に応答可能であり、仲裁器を有する処理要素と、
前記装置に応答可能であり、通信リンクの仮想チャネル（VC）受信キューを有する動的ランダムアクセスメモリ（DRAM：dynamic  random  access  memory）と、
前記VC受信キューの１つの利用可能空間を監視し、前記VC受信キューの他のものの利用可能空間と前記利用可能空間とを比較し、前記比較を仲裁器に通信し、他のVC受信キューに対する前記処理要素による１つのVC受信キューの利用率を変更するために、仲裁方式のパラメータを変更する容量マネージャと
を有するシステム。
【請求項２６】
前記装置は、リンク相手から前記通信リンクでデータを受信し、
前記データは、AS（Advanced  Switching）標準に準拠した装置により受信される、請求項２５に記載のシステム。
【請求項２７】
前記処理要素は、前記通信リンクで前記装置により受信されたデータの分割及び再構築を含むように伝送サービスを容易にするプロトコルインタフェース処理要素を有する、請求項２６に記載のシステム。
【請求項２８】
機械により実行されると、前記機械に対して、
通信リンクの仮想チャネル（VC）キューの利用可能空間を監視させ、
前記通信リンクの他のVCキューに対して前記VCキューの前記利用可能空間を比較させ、
前記比較を仲裁器に通信し、他のVCキューに対する前記VCキューの利用率を変更するために、仲裁方式のパラメータを変更させるコンテンツを有する機械アクセス可能媒体。
【請求項２９】
前記VCキューは、通信ネットワークの装置についてのVC受信キューを有し、
前記装置は、前記通信ネットワークのリンク相手から前記通信リンクでデータを受信する、請求項２８に記載の機械アクセス可能媒体。
【請求項３０】
前記VCキューは、通信ネットワークの装置についてのVC送信キューを有し、
前記装置は、前記通信ネットワークのリンク相手に前記通信リンクでデータを転送する、請求項２８に記載の機械アクセス可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
典型的には、通信ネットワークは、通信ネットワークの装置間でデータ及び／又は命令（以下では“データ”と呼ばれる）を中継するために、高速シリアル相互接続を使用する。通信ネットワークで１つ以上の発信元装置から１つ以上の宛先装置へのデータ転送を容易にするために、様々な業界標準及び／又は独自仕様の通信プロトコルが使用されている。業界標準のいくつかの例は、PCI-Express  Base  Specification,  Rev.  1.1,  2005年3月28日発行（“PCI-Express標準”）及びAdvanced  Switching  Core  Architecture  Specification,  Rev.  1.0,  2003年12月発行（“AS標準”）がある。
【０００２】
PCI-Express及び／又はAS標準に準拠した装置は、相互に通信し、３階層の通信プロトコルを使用してポイント・ツー・ポイント通信リンクで装置間でのデータを転送する。この３階層の通信プロトコルは、データが物理レイヤとデータリンクレイヤとトランザクションレイヤとを通過することを生じ得る。物理レイヤでは、電子パルスがバイト指向パケットに変換され、データリンクレイヤに渡される。データリンクレイヤでは、パケットが確認され、肯定応答パケットが送信装置に対して生成され、トランザクションレイヤパケットが装置まで渡される。トランザクションレイヤでは、トランザクションレイヤパケットが装置に対して動作を実行するように指示してもよい。この動作は、通信ネットワークでデータを１つ以上の他の装置に転送することを有してもよく、これに限定されない。
【０００３】
PCI-Express及び／又はAS標準に準拠した装置は、“仮想チャネル（Virtual  Channel）”又は“VCキュー（VC  queue）”のように、これらの標準に記載の複数のキューをそれぞれ有する。これらのVCキューは、通信リンクで複数の独立した“論理データフロー”をサポートする手段を提供する。このことは、装置間の単一の通信リンクで異なるデータフローを多重することを含んでもよい。各装置は、VCフロー制御データリンクレイヤパケット又は“VC  FC  DLLP（VC  flow  control  data  link  layer  packet）”と呼ばれる帯域内フロー制御パケットの使用を通じて、その通信リンク相手とのVCキューの使用を管理する。VC  FC  DLLPは、他の通信リンク相手に対して所定のVCキューの利用可能空間（フロー制御クレジット）を示す。フロー制御クレジットが使い果たされていると、受信相手が空間を利用可能にし、他のVC  FC  DLLPを送信して空間が利用可能であることを示すまで、通信リンク相手はそのVCキューでデータを送信することができない。
【０００４】
リンク相手が１つ以上の他の装置への複数のスイッチポートを備えたスイッチング装置である場合、複数のスイッチポートは、データを転送するために同じ所定のVCキューを利用し得る。フロー制御クレジットは所定のVCキューについて使い果たされると、波及効果が生じ得る。この波及効果は、複数のリンク相手がデータをスイッチング装置に送信する前に、使い果たされたVCキューがそのフロー制御クレジットを補給することを待機しなければならないため、輻輳をもたらすことがある。これは、過剰利用されたVCキューが通信ネットワークの更なる部分に否定的な影響を与える輻輳を生じ得る場合に問題になる。
【発明を実施するための最良の形態】
【０００５】
この開示の例は、概して通信リンクのキューを監視することを対象とする。通信リンクのVCキューの利用可能空間を監視する容量マネージャが記載される。容量マネージャは、利用可能空間と、通信リンクの他のVCキューの利用可能空間とを比較してもよい。容量マネージャは、比較を仲裁器（arbiter）に通信してもよい。仲裁器は、比較に基づいて他のVCキューに対するVCキューの利用率を変更するために、仲裁方式のパラメータを変更してもよい。
【０００６】
図１は、例示的な電子システム100のブロック図である。電子システム100は、例えば、通信ネットワーク用のコンピュータ、サーバ、ネットワークスイッチ又はルータでもよい。電子システム100は、図示のようにそれぞれ結合された通信チャネル102と、システム制御ロジック104と、システムメモリ106と、入出力（I/O）インタフェース108と、大容量記憶装置110と、スイッチ要素112と、エンドポイント114と、容量マネージャ116とを有する。
【０００７】
一例では、システム制御ロジック104は、電子システム100の全体動作を制御し、電子システム100の動作を制御する何らかの様々な論理装置及び／又は実行可能コンテンツを表すことを意図する。システム制御ロジック104は、マイクロプロセッサ、ネットワークプロセッサ、マイクロコントローラ、フィールド・プログラマブル・ゲート・アレイ（FPGA）、特定用途向け集積回路（ASIC）、このような制御機能を実装する実行可能コンテンツ、及び／又はこれらの何らかの組み合わせを有してもよい。
【０００８】
システムメモリ106は、一時変数又は中間情報のような情報を格納する。この情報は、システム制御ロジック104による命令の実行中に格納されてもよい。システムメモリ106はまた、電子システム100により通信チャネル102を介して電子システム100内の要素（例えばスイッチ要素112及び／又はエンドポイント114）又はシステムI/Oインタフェース108を介して電子システム100の遠隔の要素に転送するように選択されたデータを一時的に格納してもよい。データは電子システム100（例えばシステム制御ロジック102又はシステムアプリケーション116）から生じてもよく、システムI/Oインタフェース108を介して電子システム100により受信されてもよい。
【０００９】
システムアプリケーション116は、例えば電子システム100内／外のデータの転送を支援するように、システム制御ロジック104に内部命令を提供してもよい。
【００１０】
エンドポイント114は、通信リンクで送信／受信されるデータを処理するために、I/Oエンドポイントとしての役割をし得る電子システム100内の要素である。通信リンクは、電子システム100内に配置されてもよい（例えば通信チャネル102内に含まれる）。通信リンクはまた、電子システム100の外部に配置されてもよい。例えば、エンドポイント114は、直接及び／又はリモートの通信リンクを介してシステムI/Oインタフェースを通じて他の電子システムの他のI/O処理エンドポイントに連結された電子システム100のI/Oエンドポイントとして動作してもよい。直接の通信リンクは、Ethernet（登録商標）、SONET、非同期転送モード（ATM：asynchronous  transfer  mode）等のような通信標準を利用したリンクを介してもよい。リモートの通信リンクは、IEEE802.11及び／又はIEEE802.16等のような無線通信標準を利用した無線リンクを介してもよい。
【００１１】
一例では、データは電子システム100内で１つ以上の通信リンクを通じて転送されてもよい。これらの通信リンクは、通信チャネル102に含まれてもよく、１つ以上のポイント・ツー・ポイント通信リンクを有してもよい。データは、これらのポイント・ツー・ポイント通信リンクのうち１つ以上を通じて１つのエンドポイント114から他のエンドポイント114に転送されてもよい。或る実装では、データはまた、スイッチ要素112のような媒介とのポイント・ツー・ポイント通信リンクで、電子システム100内で転送される。次に、データは、他のポイント・ツー・ポイント通信リンクで媒介から他のエンドポイント114に転送されてもよい。
【００１２】
或る実装では、VCキューは、ポイント・ツー・ポイント通信リンクでデータの効率的な転送を容易にするために利用される。前述のように、これらのVCキューは、ポイント・ツー・ポイント通信リンクで複数の独立した論理通信チャネルをサポートする手段を提供してもよい。例えば、エンドポイント114及びスイッチ要素112は、ポイント・ツー・ポイント通信リンクの“リンク相手”でもよい。リンク相手として、エンドポイント114からスイッチ要素112に転送されたデータは、スイッチ要素112に応答可能な及び／又はスイッチ要素内に存在する１つ以上のVCキューにデータのストリームを多重化することにより、論理的にチャネル化されてもよい。
【００１３】
データがポイント・ツー・ポイント通信リンクを通じて転送可能になる前に、適切なVCキューの容量又は空間がスイッチ要素112により必要になる。以下に詳細に説明するように、適切なVCキューの容量又は空間の１つの指示は、リンク相手とVCフロー制御（FC）データリンクレイヤパケット（DLLP）を交換することにより、リンク相手に通信されてもよい。VC  FC  DLLPは、例えばビット、バイト、dワード（d-word）（4バイト）等で測定された利用可能なVCキューの空間を示してもよい。
【００１４】
一例では、容量マネージャ116は、リンク相手装置とのポイント・ツー・ポイント通信について装置（例えばスイッチ要素112又はエンドポイント114）のVCキューの利用可能空間を監視してもよい。
【００１５】
図２は、容量マネージャ116の例示的な構成図である。図２において、容量マネージャ116は、図示のようにそれぞれ結合された監視エンジン210と、制御ロジック220と、メモリ230と、I/Oインタフェース240と、任意選択で１つ以上のアプリケーション250とを有する。
【００１６】
図２において、監視エンジン210は、クレジット機能212と、比較機能214と、通信機能216とを有する。これらの機能は、通信リンクのVCキューの利用可能空間を監視し、VCキューの利用可能空間と通信リンクの１つ以上の他のVCキューの利用可能空間とを比較し、決定された利用可能空間を仲裁器に通信する。次に、仲裁器は、比較に基づいて１つ以上の他のVCキューに対するVCキューの利用率を変更するために、仲裁方式の１つ以上のパラメータを変更してもよい。
【００１７】
制御ロジック220は、容量マネージャ116の全体動作を制御してもよく、容量マネージャ116の制御を実装する何らかの様々な論理装置及び／又は実行可能コンテンツを表すことを意図する。これに関して、制御ロジック220は、マイクロプロセッサ、ネットワークプロセッサ、マイクロコントローラ、FPGA、ASIC、若しくはこのような制御機能を実装する実行可能コンテンツ、及び／又はこれらの何らかの組み合わせを有してもよい。代替の例では、制御ロジック220の特徴及び機能は、監視エンジン210内に実装されてもよい。
【００１８】
一例によれば、メモリ230は、VCキューの利用可能空間の監視及び比較に関する情報を一時的に格納するために、監視エンジン210により使用される。メモリ230はまた、実行可能コンテンツを格納してもよい。実行可能コンテンツは、監視エンジン210のインスタンスを実装するために制御ロジック220により使用されてもよい。
【００１９】
I/Oインタフェース240は、容量マネージャ116と電子システム（例えば電子システム100）との間の通信インタフェースを提供してもよい。例えば、容量マネージャ116は、コンピュータシステムの要素として実装される。I/Oインタフェース240は、通信チャネルを介して容量マネージャ116とコンピュータシステムとの間の通信インタフェースを提供してもよい。その結果、制御ロジック220は、I/Oインタフェース240を介して容量マネージャ116の外部のアプリケーションソフトウェアから一連の命令を受信することができる。一連の命令は、監視エンジン210の１つ以上の機能を実施するように、制御ロジック220を起動してもよい。
【００２０】
一例では、容量マネージャ116は、制御ロジック220に内部命令を提供する１つ以上のアプリケーション250を有する。このようなアプリケーション250は、管理機能等を可能にするユーザインタフェース（例えばグラフィカルユーザインタフェース（GUI））を生成するように起動されてもよい。代替の例では、監視エンジン210の１つ以上の機能は、このような機能を起動するように制御ロジック220により選択的に起動されるアプリケーション250として実装されてもよい。
【００２１】
或る実装では、監視エンジン210は、クレジット機能212のインスタンスを起動し、スイッチ要素112のVCキューの利用可能空間を監視してもよい。例えば、VCキューは、（例えばエンドポイント114に結合された）リンク相手へのポイント・ツー・ポイント通信リンクのVC受信及び／又は送信キューでもよい。クレジット機能212は、メモリ（例えばメモリ230）に利用可能空間情報を一時的に格納してもよい。
【００２２】
監視エンジン210はまた、比較機能214のインスタンスを起動してもよい。比較機能214は、利用可能空間情報にアクセスし、ポイント・ツー・ポイント通信リンクのスイッチ要素の１つ以上の他のVCキューに対してVCキューの利用可能空間を比較してもよい。監視エンジン210は、通信機能216を起動し、比較を仲裁器に通信してもよい。例えば、仲裁器は、他のVCキューに対するVCキューの利用率を変更するために、仲裁方式の１つ以上のパラメータを変更してもよい。
【００２３】
或る実装では、容量マネージャ116は、スイッチ要素112の外部に配置され、スイッチ要素112内に存在する及び／又はスイッチ要素112に応答可能なVCキューの利用可能空間を監視し、スイッチ要素112内及び／又は外部の仲裁器に利用可能空間の何らかの比較を通信してもよい。
【００２４】
図３は、AS（Advanced  Switching）構造102Aにより結合された電子システム100の要素の図である。一例では、通信チャネル102は、AS標準（例えばAS構造102A）に準拠して動作し得る通信リンク（例えば構造（fabric））を有してもよい。更に、電子システム100の要素（例えば、スイッチ要素112、エンドポイント114）は、AS102Aでデータを転送してもよい。これらの要素はまた、AS標準に準拠しても動作してもよく、ポイント・ツー・ポイント通信リンク101A-Cを介してデータを中継してもよい。或る実装では、データは、中継及び処理情報を有する１つ以上のヘッダを含めることによりカプセル化されてもよい。以下に詳細に説明するように、これらのヘッダは、AS標準に記載の１つ以上の通信プロトコルを利用してもよい。
【００２５】
図３に示すように、スイッチ要素112及びエンドポイント114A-Cは、AS構造102Aに結合される。更に、スイッチ要素112は、ポイント・ツー・ポイント通信リンク101A-Cを通じてエンドポイント114A-Cに結合される。前述のように、AS構造102Aは、電子システム100の通信チャネル102に含まれてもよい。その結果、エンドポイント114A-C及びスイッチ要素112は、図３に示すものに加えて、他のポイント・ツー・ポイント通信リンクを通じて通信してもよい。例えば、エンドポイント114Aは、エンドポイント114B及び／又は114Cとのポイント・ツー・ポイント通信リンクを有してもよい。
【００２６】
図４は、例示的なVC  FC  DLLP400の図である。DLLP400は、16ビットの周期的冗長検査を備えた32ビットのデータを有するパケットフォーマットを示している。DLLP400は、フロー制御タイプと、VC識別情報（ID）と、VC  IDに関連する１つ以上のVCキューのキュークレジットとを示すフィールドを有する。
【００２７】
一例では、ビット28-31のFCタイプフィールドは、VC  FCクレジットの形式を示す。VC  FCクレジットの形式は初期VC  FCクレジットでもよく、又は更新／リフレッシュVC  FCクレジットでもよい。しかし、VC  FCクレジットの形式はこれらのVC  FCクレジットの形式のみに限定されない。或る実装では、ポイント・ツー・ポイント通信リンクが装置（例えばエンドポイント114A及びスイッチ要素112）間で開始されたときに、初期VC  FCクレジットはリンク相手の間で交換される。他の実装では、更新VC  FCクレジットは、初期化の後にリンク相手の間で交換される。DLLP400のフォーマットの更新VC  FC  DLLPは、所定の間隔で交換され続けてもよい。間隔は特定の所定／固定の間隔のみに限定されない。例えば、間隔は、例えばデータを転送するのに十分な利用可能空間のないVCキューにより生じたリンク輻輳のような要因に基づいて変化してもよい。
【００２８】
ビット24-27のVCインデックスフィールドは、何の所定のVC  IDがリンク相手の間で交換されるVC  FC  DLLPに関連するかを示している。或る実装では、VCインデックスフィールドは、所定のVCインデックスに対する１つ以上のVC識別番号（ID）のAS標準の割り当てに関連する。割り当ては、“バイパス可能（bypass  capable）”又は“順序付のみ（ordered  only）”であるVCキューの形式に基づいてもよい。バイパス可能VCは、バイパスキューと順序付キューとを有する。その結果、唯一のVC  IDがバイパス可能VCについて所定のVCインデックス番号に関連する。順序付のみのVCは、順序付キューだけを有する。その結果、２つのVC  IDが順序付のみのVCについて所定のVCインデックス番号に関連する。
【００２９】
一例では、VC  FC  DLLPがバイパス可能VCに関連する場合、ビット12-23のVCキュークレジット（B）フィールドは、バイパスキューのキュークレジットの量（例えばビット、バイト又はdワードで利用可能な空間）を示し、ビット0-11のVCキュークレジット（A）フィールドは、順序付キューのクレジット量を示す。VC  FC  DLLPが順序付のみのVCに関連する場合、VCキュークレジット（B）フィールドは、１つのVC  IDのキュークレジットの量を示し、VCキュークレジット（A）は、他のVC  IDのキュークレジットの量を示す。
【００３０】
AS及びPCI-Express標準は、複数の輻輳管理技術を記載しており、これらの１つは、データが輻輳により失われないことを確保するクレジット型フロー制御技術である。例えば、通信ネットワークの通信リンク相手（例えば、スイッチ要素112及びエンドポイント114A-C）は、通信リンクの受信エンドがデータを受け入れるためにVCキューの利用可能空間又は容量を有することを確保するために、フロー制御クレジット情報を交換する。
【００３１】
フロー制御クレジットは、通信リンクの受信エンドによりVC毎に計算され、通信リンクの送信エンドに通信される。典型的には、データを受信するのに特定のVCキューに利用可能な十分なクレジットが存在する場合にのみ、データが送信される。データを送信すると、通信リンクの送信エンドは、データのサイズを反映するフロー制御クレジットの量だけ、その利用可能なクレジットアカウントを差し引く。通信リンクの受信エンドが受信データを処理すると（例えば、処理及び／又は中継機能を実行すると）、対応するVCキューで空間が利用可能になる。或る実装では、DLLP400のフォーマットの更新VC  FC  DLLPは、通信リンクの送信エンドに戻される。更新VC  FC  DLLPを受信した後に、通信リンクの送信エンドは、更新VC  FC  DLLPで示される利用可能なクレジットに合致するように、その利用可能なクレジットアカウントを更新してもよい。
【００３２】
図５は、例示的なASルートヘッダ500の一部の図である。ASルートヘッダ500は、32ビットのデータを有する典型的なASルートヘッダのフォーマットを示している。AS標準は、必要なクレジットと、VCタイプ固有（TS：type  specific）と、順序付のみ（OO：ordered  only）のトラヒッククラス（TC：traffic  class）と、プロトコルインタフェース（PI：protocol  interface）とを示すフィールドを含むものとして、32ビットのデータを記載している。
【００３３】
或る実装では、ビット14-18の必要なクレジットのフィールドは、通信リンクのVCキューを通じてデータを転送するために必要なクレジット量を示す。例えば、データ（ASルートヘッダ500のフォーマットでのパケットヘッダを含む）は、128バイト（16のdワード）のVCキュー空間がVCキューを通じて転送されることを要求してもよい。その結果、ビット14-18は、合計で128バイトになるクレジットがデータを転送するために必要になることを示すように選択的にアサートされる。
【００３４】
或る実装では、ビット13のTSフィールドは、データがVCキューを通じて中継されるときにバイパス又は順序付のVCキュークレジットが使われるかを示す。例えば、ビット13がアサートされる場合、データはバイパスクレジットを使い、バイパス可能である。ビット13がアサートされない場合、データは順序付クレジットを使い、バイパス可能ではない。
【００３５】
或る実装では、ビット12のOOフィールドは、データが何の形式のVCキューを通じて中継されるかを示す。例えば、ビット12がアサートされる場合、データは順序付のみのVCキューを通じて中継される。ビット12がアサートされない場合、データは、バイパス可能なVCキューのバイパス可能キュー又は順序付キューを通じて中継可能である。
【００３６】
或る実装では、ビット9-11のトラヒッククラス（TC）フィールドは、データに関連するトラヒッククラスを示す。AS標準は、例えばAS構造で転送される異なる形式のデータについてサービスクラス差別化を可能にする複数のTCを記載している。データの効率的な伝送を容易にするために、１つ以上のTCは所定のVCキューにマッピングされてもよい（“TC対VCマッピング（TC-to-VC  mapping）”）。従って、TCフィールドは、所定のVCキューのデータがTC対VCマッピングに基づいて中継されることを示してもよい。
【００３７】
或る実装では、ビット0-6のPIフィールドは、VCキューを通じて中継されるデータの形式を特定し、そのデータの形式は、AS構造で要素を通じて転送されるときに、データで実行される特定のAS構造トランスポートサービスを示してもよい。例えば、輻輳管理、マルチキャスト、並びに分割及び再構築のような伝送サービスを示してもよいが、AS構造トランスポートサービスはこれらの例に限定されない。AS標準は、特定のPIにこれらの伝送サービスを割り当てる。例えば、分割及び再構築の伝送サービスは、“PI-2”と呼ばれる特定のPIに割り当てられる。その結果、データが分割及び再構築の伝送サービスに関連する場合、ASルートヘッダ500のビット0-6は、PI-2を示すように選択的にアサートされてもよい。
【００３８】
一例では、スイッチ要素112及び／又はエンドポイント114は、所定のPIに割り当てられた伝送サービスを実行するためのリソース（例えば、ASIC、FPGA、特殊関数コントローラ又は埋め込み型プロセッサ、他のハードウェア装置、及びファームウェア又はソフトウェア）を有してもよい。これらのリソースは、“PI処理要素（PI  processing  element）”と呼ばれてもよく、スイッチ要素112及び／又はエンドポイント114内に存在してもよく及び／又はこれらに応答可能でもよい。例示的な実装では、VCキューを通じて転送されるデータは、ASルートヘッダ500のフォーマットのASルートヘッダのPIフィールドで示されるPIに基づいて、これらのPI処理要素に中継されてもよい。
【００３９】
ビット19-31及び8-9は、他の形式のASルート情報に確保されている。この情報は、AS構造を通じたデータの転送を更に容易にしてもよい。
【００４０】
図６は、スイッチ要素112のVCキューを監視する容量マネージャ116の例示的なブロック図である。スイッチ要素112は、４つのVC受信及び送信パスを有するASトランザクションレイヤ600を含むものとして、図６に示されているが、この開示は４つのVC受信及び送信パスに限定されない。
【００４１】
或る実装では、データは、ポイント・ツー・ポイント通信リンク（例えばポイント・ツー・ポイント通信リンク101A-C）でAS構造102Aからスイッチ要素112により受信される。データは、物理リンクレイヤからASデータ／リンクレイヤに渡される。ASデータ／リンクレイヤでは、データが確認され、肯定応答データが生成され、送信装置（例えばエンドポイント114A-C）に送信されてもよい。また、１つ以上のトランザクションレイヤパケットがデータから生成され、インバウンドパケット指示器605に渡される。
【００４２】
一例では、インバウンドパケット指示器605に渡されるトランザクションレイヤパケットは、ASルートヘッダ500のフォーマットのASルートヘッダを有する。インバウンドパケット指示器605は、ASルートヘッダのTCフィールドを読み取り、インバウンドパケット指示器605に格納されている（又はインバウンドパケット指示器605によりアクセス可能な）TC対VCマッピングに少なくとも部分的に基づいて、VC受信キュー610A-Dにトランザクションレイヤパケットを書き込む。図６の例では、トランザクションレイヤパケットは、４つのVC受信キュー610A-Dのうち１つに中継されてもよい。
【００４３】
少なくとも１つのVC受信キュー610A-Dは、受信した順序でトランザクションレイヤパケットをその対応するVCパケット発信ユニット615A-Dに渡す先入れ先出し（FIFO：first-in-first-out）キューとして実装されてもよい。例えば、VC受信キュー610Cのパケットは、その対応するVCパケット発信ユニット615Cに渡される。
【００４４】
トランザクションレイヤパケットがVC受信キューの先頭に到達すると、パケット発信器は、ASルートヘッダのプロトコルインタフェースフィールドを読み取り、示されているPIに基づいて、PI処理要素620についての仲裁器622に通知する。通知は、トランザクションレイヤパケットが転送を待機しているということでもよい。或る実装では、仲裁器622は、VCパケット発信ユニット615A-Dにより送信された複数の通知の間を仲裁し、仲裁方式を使用してVCキューを選択する。仲裁方式は、ラウンドロビン、加重ラウンドロビン、又は公平プロトコル（fairness  protocol）を含むラウンドロビンを含んでもよく、これらに限定されない。
【００４５】
或る実装では、PI処理要素620がトランザクションレイヤパケットのその処理を完了すると、４つのVC仲裁器620A-Dのうち１つに通知する。例えば、通知される特定のVC仲裁器は、ASルートヘッダのTCフィールドと、送信キューの対応するTC対VCマッピングとに基づく。このTC対VCマッピングは、処理要素620に格納される（又は処理要素620によりアクセス可能である）。
【００４６】
一例では、複数のPI処理要素620は、データが伝送される用意ができていることを所定のVC仲裁器620A-Dに通知していてもよい。仲裁器620A-Dは、複数の通知の間を仲裁し、何のPI処理要素620がデータをその対応するVC送信キュー625A-Dに転送可能であるかを選択してもよい。この選択は、前記の仲裁方式を含むが、これらに限定されない仲裁方式を利用して行われてもよい。
【００４７】
少なくとも１つのVC送信キュー625A-Dは、FIFOキューとして実装されてもよい。その結果、トランザクションレイヤパケットがFIFOのVC送信キューの先頭に到達すると、VC送信キューは、トランザクションレイヤパケットが送信の用意ができていることをアウトバウンドパケット仲裁器630に通知する。通知の後に、アウトバウンドパケット仲裁器630は、ASルートヘッダの必要なクレジットのフィールドを読み取ってもよい。アウトバウンドパケット仲裁器630は、スイッチ要素112のリンク相手（例えばエンドポイント114A-C）がそのVCでのトランザクションレイヤパケットに関連するデータを受信するのに十分なVC受信キューのクレジットを有しているか否かを決定してもよい。リンク相手が適切なクレジットを有する場合、アウトバウンドパケット仲裁器630は、トランザクションレイヤパケットのデータをASデータ／リンクレイヤまで渡し、そこで、データは物理リンクレイヤまで更に渡され、AS構造102Aのポイント・ツー・ポイント通信リンクで送信される。
【００４８】
或る実装では、容量マネージャ116は、インバウンドパケット指示器605により送信された更新VC  FC  DLLPを読み取ることにより、VC受信キュー610A-DのVCキュー容量を監視する。容量マネージャ116は、所定のVC受信キューの利用可能容量と１つ以上の他のVC受信キューとを比較してもよい。容量マネージャ116は、その比較を、例えば仲裁器622に通信してもよい。仲裁器622は、１つ以上の他のVC受信キューに対する所定のVC受信キューの利用率を変更し得る仲裁方式の１つ以上のパラメータを変更してもよい。
【００４９】
一例では、仲裁器622は、加重ラウンドロビン（WWR：weighted  round  robin）の仲裁方式を使用してもよい。比較が他のVC受信キューに対する１つのVC受信キューの利用可能空間で不均衡（例えば10%の差より大きい）を示す場合、WWR仲裁方式に対する１つ以上のパラメータ（例えばアルゴリズムの係数）が変更されてもよい。変更は、仲裁器によるそのVCキューの利用率を変更し、他のVC受信キューに比較したときのそのVC受信キューの利用可能空間を均等にしてもよい。
【００５０】
或る実装では、容量マネージャ116は、所定のVC送信キューについて所定のクレジット容量から始めることで、VC送信キュー625A-Dの利用可能空間を監視する。次に、容量マネージャ116は、（PI処理要素620により）所定のVC送信キューに書き込まれたトランザクションレイヤパケットのASルートヘッダの必要なクレジットのフィールドを読み取ってもよい。容量マネージャ116は、所定のクレジット容量からASルートヘッダで示されたクレジットを差し引いてもよい。トランザクションレイヤパケットが所定の送信VCキューから送信されると、容量マネージャ116は、ASルートヘッダで示されたクレジットを追加し戻す。容量マネージャ116は、メモリ（例えばメモリ230）に占めるこのクレジット容量を反映する利用可能空間テーブルを維持してもよい。
【００５１】
図７は、通信リンクにつてVCキューの利用可能空間を監視する例示的な方法のフローチャートである。例えば、この方法は、図６に示すASトランザクションレイヤ600の４つのVC受信及び送信パスについてのものでもよい。ブロック710において、制御ロジック220に応じて、監視エンジン210は、クレジット機能212のインスタンスを起動する。
【００５２】
或る実装では、VC受信キュー610A-Dの利用可能空間を監視する場合に、クレジット機能212は、インバウンドパケット指示器605により送信された更新VC  FC  DLLPのVCキュークレジットのフィールドを読み取る。更新VC  FC  DLLPは、DLLP400のフォーマットでもよく、所定のVC受信キューに関連してもよい。クレジット機能212は、所定のVCキューの利用可能空間テーブルでの示された利用可空間を一時的に（例えばメモリ230に）格納してもよい。
【００５３】
或る実装では、VC送信キュー625A-Dの利用可能空間を監視する場合に、クレジット機能212は、ASルートヘッダの必要なクレジットのフィールドを読み取る。ASルートヘッダは、PI処理要素620によりVC送信キュー（例えばVC送信キュー625A-D）に書き込まれたトランザクションレイヤパケットについてのものでもよい。クレジット機能212は、メモリ（例えばメモリ230）からVC送信キューの利用可能空間テーブルにアクセスしてもよい。クレジット機能212は、利用可能空間テーブルから示されたクレジットを差し引き、そのテーブルを更新してもよい。トランザクションレイヤパケットがVC送信キューから送信されると、クレジット機能212はテーブルにアクセスし、ASルートヘッダで示されたクレジットを追加し戻し、テーブルを再び更新する。
【００５４】
ブロック720において、監視エンジン210は比較機能214のインスタンスを起動し、１つ以上の他のVCキューに対して、VCキューの利用可能空間を比較する。例えば、比較機能214は、VC受信キュー610B-Cに対するVC受信キュー610Aの利用可能空間を比較してもよい。比較機能214は、VC受信キュー610A-Dの利用可能空間テーブルにアクセスしてもよい。比較機能214は、VC受信キュー610Aの利用可能空間と、VC受信キュー610B-Dの利用可能空間とを比較してもよい。
【００５５】
ブロック730において、比較機能214は、VCキューの利用可能空間の比較が不均衡を示しているか否かを決定する。例えば、比較機能214の比較は、そのVC受信キュー610Aが10%未満の利用可能空間を有しており、VC受信キュー610B-Dが10%より大きい（例えば15%又は20%）利用可能空間を有していることを示してもよい。或る実装では、比較機能214は、利用可能空間のこの差が不均衡に一致することを決定してもよい。不均衡が存在することを比較機能214が決定すると、処理はブロック740に進む。不均衡が存在しないことを比較機能214が決定すると、処理はブロック750に進む。
【００５６】
ブロック740において、監視エンジン210は通信機能216のインスタンスを起動し、比較機能214による比較結果を仲裁器に通信する。例えば、通信機能216は、比較情報（例えば不均衡のレベル）を仲裁器622に通信してもよい。仲裁器622は、比較に基づいて、何のトランザクションレイヤパケットを所定のVC受信キューから処理するかを決定するために使用される仲裁方式の１つ以上のパラメータを変更してもよい。このパラメータの変更は、VC受信キュー610B-Dに対するVC受信キュー610Aの利用率を変更し、これにより、不均衡を低減してもよい。次に、この処理は、図６に示す４つのVC受信及び送信パスのVC受信キューのいずれかを監視するように再び開始してもよい。監視及び比較結果は、例えば定期的又は継続的に生じてもよい。
【００５７】
ブロック750において、比較機能214により不均衡が決定されなかったため、比較は仲裁器に通信されない。この処理は、図６に示す４つのVC受信及び送信パスのVC受信キューのいずれかを監視するように再び開始してもよい。
【００５８】
再び図１の電子システム100の例を参照する。スイッチ要素114は、電子システム100内で（例えばAS構造102Aで）送信されるデータを転送又は処理する媒介として動作し得る電子システム100の要素を表してもよい。これに関して、スイッチ要素112は、電子システム100のスイッチブレード（switch  blade）又はルータのうち１つ以上を有してもよい。
【００５９】
エンドポイント114は、通信チャネル102にある入力（入口）又は出力（出口）ノードとして動作する電子システム100の要素を表してもよい。エンドポイント114は、データを受信及び送信する何らかの複数のハードウェア及び／又はソフトウェア要素を表してもよい。これに関して、一例によれば、エンドポイント114は、ブリッジ、マイクロプロセッサ、ネットワークプロセッサ、ソフトウェアアプリケーション、埋め込みロジック等のうち１つ以上を有してもよい。
【００６０】
前述のように、容量マネージャ116は、スイッチ要素112又はエンドポイント114内に含まれてもよい。代替として、容量マネージャ116は、通信チャネル102を通じてスイッチ要素112及びエンドポイント114に応答可能でもよく、通信可能に結合されてもよい。
【００６１】
一例によれば、容量マネージャ116は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの何らかの組み合わせで実装されてもよい。これに関して、容量マネージャ116は、この開示に記載された機能を少なくとも実行するASIC、特殊関数コントローラ又はプロセッサ、FPGA、他のハードウェア装置、及びファームウェア又はソフトウェアのうち１つ以上として実装されてもよい。
【００６２】
システムメモリ106及び／又はメモリ230は、揮発性メモリ、不揮発性メモリ、フラッシュ、プログラム可能変数又は状態、ランダムアクセスメモリ（RAM）、読み取り専用メモリ（ROM）、フラッシュ、又は他の静的若しくは動的記憶媒体を含むが、これらに限定されない様々なメモリ媒体を有してもよい。
【００６３】
或る実装では、装置（例えばスイッチ要素112又はエンドポイント114）に応答可能なメモリは、通信リンクについて１つ以上のVCキューを有してもよい。このメモリは、RAMを有してもよい。RAMは、強誘電性RAM（FRAM：ferroelectric  RAM）、動的RAM（DRAM：dynamic  RAM）、静的RAM（SRAM：static  RAM）、拡張データ出力RAM（EDO  RAM：extended  data  output  RAM）、同期DRAM（SDRAM：synchronous  DRAM）を有してもよく、これらに限定されない。
【００６４】
一例では、機械可読命令が、一種の機械アクセス可能媒体からシステムメモリ106及び／又はメモリ230に提供され得る。機械アクセス可能媒体は、機械（例えばスイッチ要素112又はエンドポイント114）により読み取り可能な形式で情報を提供（すなわち格納及び／又は送信）する何らかの機構を表してもよい。例えば、機械アクセス可能媒体は、ROM、RAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気、光、音響又は他の形式の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号）等を有してもよい。
【００６５】
前記の説明では、説明の目的で、複数の詳細な説明がこの開示の理解を提供するために示されている。この開示はこれらの特定の詳細なしに実施され得ることが明らかである。他にも、この開示をあいまいにしないように、構造及び装置がブロック図形式で図示されている。
【００６６】
この明細書で“応答可能”という用語についての言及は、特定の機能及び／又は構造のみに対する応答可能性に限定されない。機能は、他の機能及び／又は構造に対して“応答可能”でもよく、また、その機能及び／又は構造の中に配置されてもよい。更に、“応答可能”という用語はまた、“通信可能に結合”又は“動作可能に結合”のような他の用語と同義である場合があるが、この用語はこれに限定されない。
【図面の簡単な説明】
【００６７】
【図１】例示的な電子システムのブロック図
【図２】容量マネージャの例示的な構成図
【図３】AS（Advanced  Switching）構造により結合された電子システムの要素の例示的な図
【図４】例示的な仮想チャネル（VC）フロー制御（FC）データリンクレイヤパケット（DLLP）の図
【図５】例示的なASルートヘッダの一部の図
【図６】スイッチ要素でVCキューを監視する容量マネージャの例示的なブロック図
【図７】通信リンクのVCキューの利用可能空間を監視する例示的な方法のフローチャート
【図１】
2008538880.tif 000003
【図２】
2008538880.tif 000004
【図３】
2008538880.tif 000005
【図４】
2008538880.tif 000006
【図５】
2008538880.tif 000007
【図６】
2008538880.tif 000008
【図７】
2008538880.tif 000009
【国際調査報告】
2008538880.tif 000010
2008538880.tif 000011
2008538880.tif 000012