(57)【要約】  アドバンスト・スイッチング（ＡＳ）ファブリックにおける装置は、リンクパートナー（５１０）間のフローコントロール（ＦＣ）アップデートデータリンクレイヤパケット（ＤＬＬＰ）の生成及び送信を制御する状態マシーンを有する。リンクパートナーは、状態マシーンを利用して、利用可能なすべてのバーチャルチャネル（ＶＣ）に対してフローコントロールアップデートＤＬＬＰを生成し、何れか所与のＶＣがＦＣアップデートＤＬＬＰ間への大きなパケット（ＡＳトランザクションレイヤパケット（ＴＬＰ）など）の挿入により、ＦＣアップデートタイムアウト期間内にＦＣアップデートリフレッシュを実行しないことを回避するため、ＦＣアップデートＤＬＬＰを連続的に送信する。
2008511911.tif 000002
【特許請求の範囲】
【請求項１】
スイッチングファブリックにおけるリンクパートナーを有する装置におけるフローコントロール（ＦＣ）クレジットアップデートイベントに応答して、複数のアクティブなバーチャルチャネル（ＶＣ）のそれぞれに対してＦＣクレジットアップデートパケットを生成するステップと、
前記ＦＣクレジットアップデートパケットを前記リンクパートナーに連続的に送信するステップと、
を有する方法。
【請求項２】
前記生成するステップは、アドバンスド・スイッチング（ＡＳ）ファブリックにおいてＦＣクレジットアップデートパケットを生成することから構成される、請求項１記載の方法。
【請求項３】
前記生成するステップは、ＦＣクレジットアップデートデータリンクレイヤパケット（ＤＬＬＰ）を生成することから構成される、請求項１記載の方法。
【請求項４】
前記生成するステップは、ＦＣクレジットアップデートリフレッシュ期間が経過することに応答して生成することから構成される、請求項１記載の方法。
【請求項５】
各ＦＣクレジットアップデートがＶＣインデックスに対応する複数のＦＣクレジットアップデート状態とホールド状態とを有する状態マシーンを生成するステップをさらに有する、請求項１記載の方法。
【請求項６】
前記ＦＣクレジットアップデートパケットを生成するステップは、前記状態マシーンにおける複数のＦＣクレジットアップデート状態を移動し、移動した各ＦＣクレジットアップデート状態においてＦＣクレジットアップデートパケットを生成することから構成される、請求項５記載の方法。
【請求項７】
ＶＣインデックスに対応するＦＣクレジットアップデート状態において、前記ＶＣインデックスに対応するＦＣクレジットアップデートパケットを生成し、前記状態マシーンにおける次の状態への遷移前に、前記ＦＣクレジットアップデートパケットを送信するステップをさらに有する、請求項６記載の方法。
【請求項８】
ＶＣインデックスに対応するＦＣクレジットアップデート状態において、前記ＶＣインデックスに対応するＦＣクレジットアップデートパケットを生成するステップと、
前記ＦＣクレジットアップデートパケットを格納するステップと、
前記状態マシーンにおけるＦＣクレジットアップデート状態の移動後、１以上の他の格納されているＦＣクレジットアップデートパケットと共に前記ＦＣクレジットアップデートパケットを連続的に送信するステップと、
をさらに有する、請求項６記載の方法。
【請求項９】
前記状態マシーンを生成するステップは、
複数のサポートされているＶＣインデックスを特定するステップと、
サポートされている各ＶＣインデックスに対してＦＣアップデート状態を生成するステップと、
から構成される、請求項５記載の方法。
【請求項１０】
潜在的にサポートされるＶＣインデックスが存在するか決定するステップと、
潜在的にサポートされる各ＶＣインデックスに対して潜在的なＦＣアップデート状態を生成するステップと、
をさらに有する、請求項９記載の方法。
【請求項１１】
前記サポートされるＶＣインデックスは、バイパスＶＣ（ＢＶＣ）に対応するＶＣインデックスと、ＢＶＣ、オーダードＶＣ（ＯＶＣ）及びマルチキャストＶＣ（ＭＶＣ）から選択されるＶＣに対応する１以上のＶＣインデックスとを有する、請求項１０記載の方法。
【請求項１２】
前記決定するステップは、前記装置が複数のＢＶＣをサポートしているか決定することから構成され、
前記生成するステップは、前記装置が複数のＢＶＣをサポートすると決定することに応答して、１以上のＯＶＣに係る１以上のＶＣインデックスに対応する１以上の潜在的なＦＣクレジットアップデート状態を生成することから構成される、請求項１０記載の方法。
【請求項１３】
前記装置と前記リンクパートナーとの間で検出及び初期化処理を実行するステップと、
何れかのダウングレードされたＢＶＣを特定するステップと、
前記ダウングレードされたＢＶＣを前記潜在的なＦＣクレジットアップデート状態の１以上にマップするステップと、
をさらに有する、請求項１２記載の方法。
【請求項１４】
前記ＦＣクレジットアップデート状態のそれぞれは、前記ホールド状態への可能な遷移を有する、請求項５記載の方法。
【請求項１５】
前記ＦＣクレジットアップデート状態の１以上はさらに、同じタイプのＶＣインデックスに対応するＦＣクレジットアップデート状態への潜在的な遷移と、異なるタイプのＶＣインデックスに対応するＦＣクレジットアップデート状態への潜在的な遷移とを有する、請求項１４記載の方法。
【請求項１６】
ＦＣクレジットアップデートイベントを生成するフローコントロール（ＦＣ）クレジットアップデートタイマーと、
複数のアクティブなバーチャルチャネル（ＶＣ）のそれぞれに対してＦＣクレジットアップデートパケットを生成し、ＦＣクレジットアップデートイベントの受け付けに応答して、前記複数のＦＣクレジットアップデートパケットをスイッチングファブリックのリンクパートナーに連続的に送信するＦＣクレジットアップデートモジュールと、
を有する装置。
【請求項１７】
ホールド状態と複数のＦＣクレジットアップデート状態とを有する状態マシーンをさらに有し、
前記ＦＣクレジットアップデートモジュールは、前記クレジットアップデートイベントの受け付けに応答して、前記複数のクレジットアップデート状態を移動するよう動作する、請求項１６記載の装置。
【請求項１８】
前記複数のＦＣクレジットアップデート状態は、複数のサポートされているＦＣクレジットアップデート状態を有する、請求項１７記載の装置。
【請求項１９】
前記複数のサポートされているＦＣクレジットアップデート状態は、バイパスＶＣ（ＢＶＣ）に対応するＶＣインデックスと、ＢＶＣ、オーダードＶＣ（ＯＶＣ）及びマルチキャストＶＣ（ＭＶＣ）から選択されるＶＣに対応する１以上のＶＣインデックスとを有する、請求項１８記載の装置。
【請求項２０】
１以上の潜在的なＦＣクレジットアップデート状態をさらに有する、請求項１９記載の装置。
【請求項２１】
前記１以上の潜在的なＦＣクレジットアップデート状態は、１以上のＯＶＣに係る１以上のＶＣインデックスに対応する、請求項２０記載の装置。
【請求項２２】
前記ＦＣクレジットアップデートモジュールは、
前記リンクパートナーと複数のアクティブなＶＣを交渉するステップと、
前記サポートされているＦＣクレジットアップデート状態と、前記１以上の潜在的なＦＣクレジットアップデート状態とから選択される複数のアクティブなＦＣクレジットアップデート状態を特定するステップと、
前記ＦＣクレジットアップデートイベントに応答して、前記アクティブなＦＣクレジットアップデート状態を移動するステップと、
を実行するよう動作する、請求項２０記載の装置。
【請求項２３】
前記状態マシーンの複数のＦＣクレジットアップデート状態のそれぞれは、前記ホールド状態への潜在的な遷移を有する、請求項１７記載の装置。
【請求項２４】
前記ＦＣクレジットアップデート状態の１以上はさらに、同じタイプのＶＣインデックスに対応するＦＣクレジットアップデート状態への潜在的な遷移と、異なるタイプのＶＣインデックスに対応するＦＣクレジットアップデート状態への潜在的な遷移とを有する、請求項２３記載の装置。
【請求項２５】
スイッチングファブリックにおけるリンクパートナーを有する装置におけるフローコントロール（ＦＣ）クレジットアップデートイベントに応答して、複数のアクティブなバーチャルチャネル（ＶＣ）のそれぞれに対してＦＣクレジットアップデートパケットを生成するステップと、
前記ＦＣクレジットアップデートパケットをリンクパートナーに連続的に送信するステップと、
をマシーンに実行させるためのマシーン実行可能な命令を有するマシーン可読媒体を有する物品。
【請求項２６】
前記スイッチングファブリックは、アドバンスト・スイッチング（ＡＳ）ファブリックから構成される、請求項２５記載の物品。
【請求項２７】
各ＦＣクレジットアップデートがＶＣインデックスに対応する複数のＦＣクレジットアップデート状態とホールド状態とを有する状態マシーンを生成するステップを前記マシーンに実行させるための命令をさらに有する、請求項２５記載の物品。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［背景］
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）エキスプレスは、コンピュータシステムの次世代の増大する帯域幅要求を満たすよう開発されたシリアライズドＩ／Ｏインターコネクト規格である。ＰＣＩエキスプレスは、広範理利用されているＰＣＩローカルバス規格に完全に互換性を有するよう設計された。ＰＣＩは、それの機能を限界に直面し始めており、より大きな帯域幅及びより高速なクロック速度をサポートするようＰＣＩ規格に対する拡張が開発されているが、これらの拡張は、近い将来における急速に増大するＰＣの帯域幅要求を満たすには不十分であるかもしれない。それの高速かつスケーラブルなシリアルアーキテクチャによって、ＰＣＩエキスプレスは、コンピュータシステムにおけるＰＣＩの可能な代替として、又は共用のための魅力的な選択肢であるかもしれない。ＰＣＩエキスプレスアーキテクチャは、ＰＣＩ−ＳＩＧ（ＰＣＩ−Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）（ｈｔｔｐ：／／ｗｗｗ．ｐｃｉｓｉｇ．ｃｏｍ）を通じて利用可能なＰＣＩエキスプレスベースアーキテクチャ仕様の改訂１．０ａ（最初のリリースが２００３年４月１５日）に記載されている。
【０００２】
アドバンスト・スイッチング（ＡＳ）は、ＰＣＩエキスプレスアーキテクチャに対する拡張である。ＡＳは、ＰＣＩエキスプレス物理及びデータリンクレイヤ上で動作するパケットベーストランザクションレイヤプロトコルを利用する。ＡＳアーキテクチャは、ブレードサーバ、クラスタ、ストレージアレイ、テレコムルータ、スイッチなどのマルチホストピア・ツー・ピア通信装置に共通のいくつかの特徴を提供する。これらの特徴は、フレキシブルなトポロジー、パケットルーティング、混雑管理（クレジットベースフローコントロールなど）、ファブリックリダンダンシ、フェールオーバーメカニズムをサポートする。ＡＳアーキテクチャは、ＡＳＩ−ＳＩＧ（Ａｄｖａｎｃｅｄ  Ｓｗｉｔｃｈｉｎｇ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−ＳＩＧ）（ｈｔｔｐ：／／ｗｗｗ．ａｓｉ−ｓｉｇ．ｏｒｇ）を通じて利用可能なアドバンスト・スイッチングコアアーキテクチャ仕様の改訂１．０（ＡＳ仕様）（２００３年１２月）に記載されている。
【０００３】
［詳細な説明］
図１は、一実施例によるスイッチドファブリックネットワーク１００を示す。当該ネットワークは、スイッチエレメント１０２とエンドノード１０４とを有する。スイッチエレメント１０２は、ネットワーク１００の内部ノードを構成し、他のスイッチエレメント１０２とエンドノード１０４との相互接続を提供する。エンドノード１０２は、スイッチファブリックのエッジに配置され、スイッチファブリックのデータ入出力ポイントを表す。エンドノードは、スイッチファブリックに入力及び出力されるパケットをカプセル化及び／又は変換し、スイッチファブリックと他のインタフェースとの間の「ブリッジ」とみなされるかもしれない。
【０００４】
ネットワーク１００は、アドバンスト・スイッチング（ＡＳ）アーキテクチャを有するかもしれない。ＡＳは、図２に示されるように、ＰＣＩエキスプレス物理レイヤ２０２とデータリンクレイヤ２０４を介し動作するパケットベーストランザクションレイヤプロトコルを利用する。
【０００５】
ＡＳは、パケットのソースが当該パケットを所望の送信先にルーティングするのにスイッチにより要求されるすべての情報を提供するパス規定されるルーティング法を利用する。図３は、ＡＳトランザクションレイヤパケット（ＴＬＰ）フォーマット３００を示す。パケットは、ルートヘッダ３０２とカプセル化されたパケットペイロード３０４とを有する。ＡＳルートヘッダ３０２は、カプセル化されたパケットのプロトコル・インタフェース（ＰＩ）を指定するフィールドと、ＡＳファブリック（すなわち、パス）を介しパケットをルーティングするのに必要な情報とを有する。ＡＳスイッチは、パケットをルーティングするのにルートヘッダ３０２に含まれている情報しか利用せず、カプセル化されたパケット３０４のコンテンツを考慮することはない。
【０００６】
図４に示されるように、パスは、ルートヘッダのターンプール４０２と、ターンポインタ４０４と、方向フラグ４０６とによって規定される。パケットのターンポインタは、ターンプール内のスイッチの「ターン値」のポジションを示す。パケットが受信されると、スイッチは、ターンポインタ、方向フラグ及びスイッチのターン値のビット幅を利用して、パケットのターン値を抽出する。抽出されたスイッチのターン値は、出力ポートを計算するのに利用される。
【０００７】
ＡＳルートヘッダのＰＩフィールド３０６（図３）は、カプセル化されたパケットのフォーマットを規定する。ＰＩフィールドは、ＡＳをソースルとするエンドノードによって挿入され、パケットをターミネートするエンドノードによって、パケットのコンテンツを正確に解釈するのに利用される。ルーティング情報をパケットの残りから分離することは、ＡＳファブリックが何れかのプロトコルのパケットをトンネリングすることを可能にする。
【０００８】
ＰＩは、ファブリック管理及びスイッチドファブリックネットワーク１００とのアプリケーションレベルインタフェースを表す。テーブル１は、ＡＳ仕様によって現在サポートされるＰＩのリストを提供する。
【０００９】
【表１】
2008511911.tif 000003
ＰＩ０〜７は、各種ファブリック管理タスクのために確保され、ＰＩ８〜２５４は、アプリケーションレベルインタフェースである。テーブル１に示されるように、ＰＩ８はネイティブＰＣＩエキスプレスをトンネリング又はカプセル化するのに利用される。他のＰＩは、イーサネット（登録商標）、ファイバチャネル、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）、ＩｎｆｉｎｉＢａｎｄ（登録商標）、ＳＬＳ（Ｓｉｍｐｌｅ  Ｌｏａｄ  Ｓｔｏｒｅ）などの他の各種プロトコルをトンネリングするのに利用されるかもしれない。ＡＳスイッチファブリックの効果は、プロトコルの組み合わせが１つのユニバーサルなスイッチファブリックを介し同時にトンネリング可能となり、これにより、メディアゲートウェイ、ブロードバンドアクセスルータ、ブレードサーバなどの次世代モジュラーアプリケーションに対してそれを強力かつ望ましい特徴にする。
【００１０】
ＡＳアーキテクチャは、ネットワークの各ＡＳ装置のＡＳコンフィギュレーションスペースの実現をサポートする。ＡＳコンフィギュレーションスペースは、装置特性を指定するためのフィールドと、ＡＳ装置をコントロールするのに利用されるフィールドとを有するストレージエリアである。当該情報は、テーブルやレジスタセットなど、機能構成及び他のストレージ構成の形式により提供される。テーブル２は、ＡＳ仕様によって規定される機能構成（ＡＳネイティブ機能構成）セットを提供する。
【００１１】
【表２】
2008511911.tif 000004
ＡＳネイティブ機能構成に格納されている情報は、装置管理に利用されるＰＩ−４パケットを介しアクセス可能である。
【００１２】
スイッチドファブリックネットワークの一実現形態では、ネットワーク上のＡＳ装置は、ファブリックマネージャとして選択された１以上のＡＳエンドノードを除き、他のＡＳ装置のＡＳネイティブ機能構成の読み出し専用アクセスに限定されるかもしれない。
【００１３】
ファブリックマネージャの選択プロセスは、スイッチドファブリックネットワークに対する１以上のファブリックマネージャを選択するための各種ハードウェア又はソフトウェアメカニズムによって起動されるかもしれない。ファブリックマネージャは、ネットワークにおけるそれ自体を含むすべてのＡＳ装置を「所有」するＡＳエンドポイントである。プライマリファブリックマネージャとセカンダリファブリックマネージャなどの複数のファブリックマネージャが選択される場合、各ファブリックマネージャは、ネットワークのＡＳ装置の一部を所有するかもしれない。あるいは、セカンダリファブリックマネージャは、例えば、ファブリックリダンダンシやフェールオーバーメカニズムから生じるプライマリファブリックマネージャの故障によって、ネットワークのＡＳ装置の所有権を宣言するようにしてもよい。
【００１４】
ファブリックマネージャが所有権を宣言すると、それは、それのＡＳ装置のＡＳネイティブ機能構成への優先的なアクセスを有する。すなわち、ファブリックマネージャは、ネットワークのすべてのＡＳ装置のＡＳネイティブ機能構成へのリード及びライトアクセスを有し、その他のＡＳ装置は、ファブリックマネージャによってライトパーミッションが付与されていない場合には、読み出し専用アクセスに限定される。
【００１５】
ＰＣＩエキスプレスリンクレイヤ定義によると、リンクは、ダウン（ＤＬ＿Ｉｎａｃｔｉｖｅ＝何れのタイプのパケットの送受信をしない）、フルアクティブ（ＤＬ＿Ａｃｔｉｖｅ）、すなわち、何れのタイプのパケットの送受信を完全に処理可能である、又は初期化プロセス（ＤＬ＿Ｉｎｉｔ）である。
【００１６】
ＡＳアーキテクチャは、ＤＬ＿Ｉｎｉｔ状態とＤＬ＿Ａｃｔｉｖｅ状態の間の中間状態となる新たなデータリンクレイヤ状態ＤＬ＿Ｐｒｏｔｅｃｔｅｄを導入することによって、当該状態マシーンのＰＣＩエキスプレスの定義に追加する。ＰＣＩエキスプレスのＤＬ＿Ｉｎａｃｔｉｖｅ、ＤＬ＿Ｉｎｉｔ及びＤＬ＿Ａｃｔｉｖｅの各状態が維持される。新たな状態が、通信機能の中間の程度に必要とされ、ＡＳファブリックのロウバストネスとＨＡ（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）迅速性を高めるのに利用される。
【００１７】
リンク状態は、リンクを共有する２つの装置の間でリンク管理固有情報を通信する６バイトパケットであるＤＬＬＰ（Ｄａｔａ  Ｌｉｎｋ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）を介しパートナー間で通信されるかもしれない。リンク状態ＤＬＬＰは、移動中のパケットを除くすべてのパケット（ＴＬＰ及びＤＬＬＰ）に対して厳密な優先度を有する。リンク状態アクノリッジメントは、可能な限り早期に、すなわち、リンクを現在占有するパケットの送信が完了するとすぐに送信されねばならない。
【００１８】
ＡＳアーキテクチャは、バーチャルチャネル（ＶＣ）として知られる直接的なエンドポイント間論理パスの確立をサポートする。これは、１つのスイッチドファブリックネットワークが複数の独立した論理インターコネクトに同時にサービス提供することを可能にし、各ＶＣは制御、管理及びデータのためにＡＳエンドノードに相互接続する。各ＶＣは自らのキューを提供し、これにより、１つのＶＣにおけるブロックが他のＶＣにおけるブロックを生じさせることがなくなる。各ＶＣは独立したパケットオーダリング要求を有するため、各ＶＣは、その他のＶＣに依存することなくスケジューリングされるかもしれない。
【００１９】
ＡＳアーキテクチャは、３つのＶＣタイプ、すなわち、ＢＶＣ（Ｂｙｐａｓｓ  Ｃａｐａｂｌｅ  Ｕｎｉｃａｓｔ）、ＯＶＣ（Ｏｒｄｅｒｅｄ−Ｏｎｌｙ  Ｕｎｉｃａｓｔ）及びＭＶＣ（Ｍｕｌｔｉｃａｓｔ）を規定する。ＢＶＣは、オーダードキューとバイパスキューの２つのキューを有する。バイパスキューは、プロトコルのデッドロックフリートンネリングに必要なＢＶＣバイパス機能を有する。ＯＶＣは、メッセージ指向の「プッシュ」トラフィックに適したシングルキューユニキャストＶＣである。ＭＶＣは、マルチキャスト「プッシュ」トラフィックのためのシングルキューＶＣである。
【００２０】
ファブリックがパワーアップされると、ファブリックのリンクパートナーが、各ＶＣタイプのバーチャルチャネルの最大公約数を交渉するようにしてもよい。リンクトレーニング中、各ＶＣタイプのＶＣの最大公約セットは、非ＤＬＬＰ  ＡＳパケットがファブリックに入力される前に初期化及び起動される。
【００２１】
リンクトレーニング中、余剰のＢＶＣはＯＶＣに変換されてもよい。ＢＶＣは、例えば、それのバイパスキュー及び関連するロジックなどのそれのバイパス機能を利用しないことによって、ＯＶＣとして動作可能である。例えば、リンクパートナーＡが３つのＢＶＣと１つのＯＶＣをサポートし、リンクパートナーＢが１つのＢＶＣと２つのＯＶＣがサポートする場合、合意されたＶＣの個数はリンクパートナーＡのＢＶＣの１つがＯＶＣに変換されることにより、１つのＢＶＣと２つのＯＶＣとなるであろう。
【００２２】
ＡＳアーキテクチャは、いくつかの混雑管理技術を提供し、そのうちの１つは、パケットが混雑により消失することを回避するのに利用されるクレジットベースフローコントロール（ＦＣ）技術である。ネットワークのリンクパートナー（エンドポイント１０４とスイッチエレメント１０２など）は、リンクの受信エンドがパケットを受け付ける容量を有していることを保証するため、例えば、特定のＶＣに対してローカル装置の利用可能なバッファスペースなどのＦＣクレジット情報を交換する。
【００２３】
ＦＣクレジットは、リンクの受信エンドによってＶＣベースにより計算可能であり、リンクの送信エンドに通信されるようにしてもよい。典型的には、ＴＬＰは、パケットを搬送するのにＶＣに利用可能なクレジットが十分存在するときに限って送信されるかもしれない。パケットを送信すると、リンクの送信エンドは、送信されたパケットのサイズを反映するＦＣクレジットの量だけそれの利用可能なクレジットアカウントを借方に記入する。リンクの受信エンドが受信したパケットを処理すると（エンドポイント１０４への転送など）、対応するＶＣに対してスペースが利用可能にされ、ＦＣクレジットがリンクの送信エンドに返される。その後、リンクの送信エンドは、ＦＣクレジットをそれのクレジットアカウントに加える。
【００２４】
ＡＳポートは、定期的にＦＣクレジットアップデート情報を送信することによって、各自のリンクパートナーのクレジット情報をリフレッシュする。クレジットアップデート情報は、ＦＣアップデートＤＬＬＰを利用して送信される。ＦＣクレジットアカウント処理は、典型的にはＦＣクレジットアップデート間の送信ポートによりトラッキングされている間、ＦＣアップデートＤＬＬＰは、ローカルに計算されたクレジット利用性情報に優先する。各ＦＣクレジットアップデートによって、ＦＣクレジットアップデートの受信サイドは、何れかのローカルＦＣクレジット利用性トラッキング情報を破棄し、ＦＣアップデートＤＬＬＰにより提供されるクレジット情報と再同期される。
【００２５】
ＦＣアップデートＤＬＬＰは、ユニキャストＶＣ（ＶＣ  ＩＤ０〜１５）とマルチキャストＶＣ（ＶＣ  ＩＤ１６〜１９）の双方に対して利用可能なクレジットをアップデートするのに利用可能である。各ＦＣアップデートＤＬＬＰは、ＶＣインデックス（ＶＣＩ）フィールドによって指定される値に応じて、１つ又は２つのＶＣに対応する。レンジＶＣＩ０〜ＶＣＩ７においてＶＣＩを指定するＦＣアップデートＤＬＬＰは、１つのＢＶＣに対して複数の値を有する。すなわち、指定されたＢＶＣのオーダードキューに対して１つのクレジット値と、バイパスキューＦＣクレジット情報に対して１つのクレジット値である。レンジＶＣＩ８〜ＶＣＩ１１（ＯＶＣ  ＶＣ８〜ＶＣ１５をサポートする）におけるＶＣＩを指定するＦＣアップデートＤＬＬＰは、同じＤＬＬＰ内の２つの連続的に番号付けされるＯＶＣのキューに対するクレジット値を含む。同様に、レンジＶＣＩ１２〜ＶＣＩ１３（ＭＶＣ  ＶＣ１６〜ＶＣ１９をサポートする）におけるＶＣＩを指定するＦＣクレジットアップデートＤＬＬＰは、同じＤＬＬＰ内の２つの連続的に番号付けされたＭＶＣのキューに対するクレジット値を含む。ＶＣＩ１４〜１５が確保される。
【００２６】
ＤＬＬＰ送信は、信頼性が不十分であるかもしれず、ＤＬＬＰは静かに消失又は損傷するかもしれない。ＡＳ仕様によると、各アクティブＶＣのＦＣクレジットが２１５８ｂ／１０ｂシンボル倍より小さなインターバルでＦＣアップデートＤＬＬＰによって通知されるように、すべてのＡＳポートは、定期的なＦＣクレジットアップデート「リフレッシュループ」を維持するよう要求される。所与のＶＣに対して最大クレジットリフレッシュインターバルを超える場合、クレジット通知ポートは、当該ＶＣに対するＦＣアップデートＤＬＬＰが最も早い機会に送信されるように、この場合に限って、ＦＣアップデートＤＬＬＰを最も高い優先度に引き上げる必要がある。
【００２７】
典型的には、ＦＣアップデートＤＬＬＰは、所定のタイムアウトインターバル（最大２１５シンボル倍以下など）により利用可能な各ＶＣに個別に送信されてもよい。しかしながら、大変大きなＴＬＰが各アクティブＶＣに対するＦＣアップデートＤＬＬＰ間で送信される可能性がある。これは、タイムアウトインターバルを超過するようにＦＣアップデートＤＬＬＰの送信を遅延させ、これにより、クレジット関連のスタベーションが生じる可能性があり、例えば、可能性のあるパケットの欠落が利用可能なクレジット情報の欠落によりリンクパートナーから送信される。
【００２８】
一実施例では、すべてのアクティブＶＣに対するＦＣアップデートＤＬＬＰが、ＦＣアップデートＤＬＬＰと対応するクレジット関連パフォーマンス問題との間のＴＬＰの挿入を回避するよう連続して送信されるようにしてもよい。当該技術は、リンクパートナーに割り当てられた期間内にアップデートされたクレジット値が通知されることを保証するかもしれない。このＦＣアップデートＤＬＬＰ送信技術に係る追加的なオーバーヘッドが、利用可能なクレジット情報の欠落によりリンクパートナーから送信されるパケットの可能な欠落と比較してオフセットされてもよい。
【００２９】
図５は、一実施例によるＦＣクレジットアップデート処理を説明するフローチャートである。スタートアップ後（ブロック５０２）、リンクパートナーは、バーチャルチャネルの最大公約数を交渉する（ブロック５０４）。ＶＣの交渉は、２段階のプロセスであるかもしれない。第１段階では、リンクパートナーは、ＢＶＣの最大セットを検出し、ＢＶＣに対する初期的なＦＣクレジット値を提供するため、初期化ＤＬＬＰを送信するようにしてもよい。第２段階では、リンクパートナーは、ＯＶＣ及びＭＶＣの最大公約セットを検出及び初期化するようにしてもよい。その後、ＢＶＣからＯＶＣへの変換が実行されるかもしれない。
【００３０】
アップデートクロックは、指定された最大値である２１５シンボル倍以下の値となるアップデートタイムアウト期間をカウントダウンする（ブロック５０６）。アップデートの間、リンクパートナーは、リンク状態ＤＬＬＰ、リンク管理、ＤＬＬＰなどのリンクに関するＴＬＰ及び非ＦＣクレジットアップデートＤＬＬＰの送信を通常処理する（ブロック５０８）。タイムアウト期間が経過すると、すべてのアクティブＶＣに対するＦＣアップデートＤＬＬＰが連続的に送信されるＦＣクレジットアップデート処理が実行される（ブロック５１０）。
【００３１】
リンクパートナーは、図６に示されるような状態マシーン６００を利用して、ＦＣクレジットアップデートＤＬＬＰのシーケンスを準備及び送信する。状態マシーンは、セットアップ（ＩＤＬＥ６０１）後にＮＯＦＣ（又は「ホールド」）状態６０２に入り、タイムアウト期間の間（通常の送信中など）、ＮＯＦＣ状態６０７に留まる。タイムアウトイベントが発生すると、リンクパートナーは、それが状態マシーンの状態を移動するとき、ＦＣアップデートＤＬＬＰを準備及び送信するかもしれない。
【００３２】
図６に示されるような状態マシーン６００は、４つのＢＶＣと１つのＭＶＣをネイティブにサポートするローカル装置に対応する。また、状態マシーンは、４つのＢＶＣ  ＶＣＩ（ＶＣＩ０〜ＶＣＩ３）と、２つのＯＶＣ  ＶＣＩ（ＶＣＩ８及びＶＣＩ９）と、１つのＭＶＣ  ＶＣＩ（ＶＣＩ１２）に対する可能性のある状態を含む。４つのＢＶＣのうちの３つは初期化中に、おそらくＯＶＣにダウングレードされる可能性があるため、２つのＯＶＣ  ＶＣＩ（４つまでのＯＶＣ  ＦＣクレジットアップデートを処理可能な）が提供される。ＶＣの他のセットをネイティブにサポートする装置は、異なる状態マシーンコンフィギュレーションを有する可能性があるが、ＡＳ仕様によると、各ＡＳポートは少なくとも１つのＢＶＣ（ＶＣ０）をサポートしなければならない。状態マシーンは、必要に応じて、各ＶＣＩに対する状態を有するよう拡張されるかもしれない。
【００３３】
状態マシーン６００はまず、状態６０３から状態６０４（ＶＣＩ０）に遷移し、ＢＶＣ  ＶＣ０に対するＦＣアップデートＤＬＬＰを生成及び送信する。さらなるアクティブなＢＶＣが存在する場合、状態マシーンは、状態６０５から状態６０６（ＶＣＩ１）に遷移し、ＢＶＣ  ＶＣ１に対するＦＣアップデートＤＬＬＰを生成及び送信する。さらなるＢＶＣがなく、１以上のアクティブなＯＶＣ（ネイティブにサポート又はダウングレードされるＢＶＣ）が存在する場合、状態マシーンは、状態６０７から状態６０８（ＶＣＩ８）に遷移し、ＯＶＣ及びＭＶＣに対するＶＣＩが２つの連続するＶＣに対するクレジット値を有する可能性があるため、ＯＶＣ  ＶＣ８及びＶＣ９（アクティブである場合には）に対するＦＣアップデートＤＬＬＰ（ＶＣＩ８）を送信する。状態６０４から、さらなるアクティブなＢＶＣがなく、さらなるアクティブＯＶＣがなく、及び１以上のアクティブＭＶＣがある場合、状態マシーンは、状態６０９から直接状態６１０（ＶＣＩ１２）に遷移し、ＶＣ１６及びＶＣ１７（アクティブである場合）に対するＦＣアップデートＤＬＬＰ（ＶＣＩ１２）を生成する。状態６０４から、さらなるアクティブなＢＶＣがなく、アクティブなＯＶＣ又はＭＶＣがない場合、状態マシーンは、状態６１１からＮＯＦＣ６０２に遷移する。
【００３４】
各状態は、必要に応じて、それのタイプの次の状態に移動し、又はＶＣＩ又はＮＯＦＣ６０２の次のセットにスキップする状態６０４（ＶＣＩ０）と同様の個数のオプションを有するようにしてもよい。一実施例では、送信対象となるＦＣアップデートＤＬＬＰのすべてが生成されるまで、ＦＣアップデートＤＬＬＰがバッファされ、その後、リンクパートナーに連続的に送信されてもよい。
【００３５】
例えば、４つのＢＶＣと１つのＭＶＣをネイティブにサポートする状態マシーン６００によるローカル装置に対するリンクパートナーが、２つのＢＶＣと、２つのＯＶＣと、１つのＭＶＣをネイティブにサポートするリンクパートナーを有する場合、同意したアクティブＶＣは、２つのＢＶＣと、２つのＯＶＣと、１つのＭＶＣとなるであろう。検出及び初期化中、ローカル装置のＢＶＣの２つがＯＶＣにダウングレードされ、ＶＣ８及びＶＣ９（ＶＣＩ８）にマップされる。タイムアウト（アップデート）イベントが発生すると、ＮＯＦＣ６０２のローカル装置の状態マシーンは、状態６０３から状態６０４（ＶＣＩ０）に遷移し、ＢＶＣ  ＶＣ０に対するバイパス及びオーダードキューのクレジット値を有するＦＣアップデートＤＬＬＰを生成し、リンクパートナーに送信する。その後、状態マシーンは、状態６０５から状態６０６（ＶＣＩ１）に遷移し、ＢＶＣ  ＶＣ１に対するクレジット値を有するＦＣアップデートＤＬＬＰを生成し、リンクパートナーに送信する。さらなるアクティブなＢＶＣが存在しないため、状態マシーンは状態６１２から状態６０８（ＶＣＩ８）に遷移し、ＯＶＣ  ＶＣ８及びＶＣ９に対するクレジット値を有するＦＣアップデートＤＬＬＰを生成及び送信する。さらなるアクティブなＯＶＣがないため、その後、状態マシーンは、状態６１４から状態６１０（ＶＣＩ１２）に遷移し、ＭＶＣ  ＶＣ１７に対するクレジット値を有するＦＣアップデートＤＬＬＰを生成及び送信する。非アクティブなＭＶＣ  ＶＣ１８に対して確保されているＦＣアップデートＤＬＬＰの部分は、エンプティであるかもしれない（例えば、すべてゼロなど）。ＶＣＩ１２に対するＦＣアップデートＤＬＬＰを送信した後、状態マシーンは、次のタイムアウトイベントまで状態６１５をＮＯＦＣ６０２に遷移してもよい。
【００３６】
中断なく（連続的など）すべてのアクティブＶＣに対するＦＣアップデートＤＬＬＰをリンクパートナーに送信することは、クレジット値が指定された期間内に当該装置のリンクパートナーに到達することを保証し、ＦＣクレジットアップデートロジックの簡単化を実現するかもしれない。
【００３７】
いくつかの実施例が説明された。にもかかわらず、本発明の趣旨及び範囲から逸脱することなく、様々な改良が可能であるということが理解されるであろう。例えば、フローチャートのいくつかのブロックは、スキップ又は異なる順序により実行されてもよく、さらに望ましい結果をもたらすかもしれない。従って、以下の請求項の範囲内に他の実施例が属する。
【図面の簡単な説明】
【００３８】
【図１】図１は、一実施例によるスイッチドファブリックネットワークのブロック図である。
【図２】図２は、ＰＣＩエキスプレス及びアドバンスト・スイッチング（ＡＳ）アーキテクチャのプロトコルスタックを示す。
【図３】図３は、ＡＳトランザクションレイヤパケット（ＴＬＰ）フォーマットを示す。
【図４】図４は、ＡＳルートヘッダフォーマットを示す。
【図５】図５は、一実施例によるＦＣクレジットアップデート処理を記載するフローチャートである。
【図６】図６は、ＦＣクレジットアップデートデータリンクレイヤパケット（ＤＬＬＰ）のシーケンスを準備及び送信する状態マシーンを示す。
【図１】
2008511911.tif 000005
【図２】
2008511911.tif 000006
【図３】
2008511911.tif 000007
【図４】
2008511911.tif 000008
【図５】
2008511911.tif 000009
【図６】
2008511911.tif 000010
【国際調査報告】
2008511911.tif 000011
2008511911.tif 000012