(57)【要約】【課題】インフィニバンドで定義されたクレジット・ベースのフロー制御を無効にすることにより、送信機及び受信機の間の伝送距離を延長可能にする。【解決手段】  インフィニバンドで定義されたクレジット・ベースのフロー制御は、往復遅延時間が増加するために、伝送レートが低下するという欠点を有する。この欠点を解決して送信機及び受信機の間の伝送距離を延長することができるように、クレジット・ベースのフロー制御を無効にする。クレジット・ベースのフロー制御を無効にすると、クレジット・カウントが無視されるので、データ・パケットを連続的に伝送することが可能になる。しかし、受信機内のバッファのオーバーランに起因してデータ・パケットが消失することがあるので、パケット消失検出機構が設けられる。消失パケットを検出すると、インフィニバンドの受信機は、インフィニバンドの送信機に対し、そのデータ・パケットの伝送レートを一時的に減少させるための要求を送信することができる。【選択図】  図６
2008172795.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のノードを結合するインフィニバンド通信リンクを管理する方法であって、前記第１及び第２のノードの各々は、送信装置及び受信装置をそれぞれ備え、前記第１及び第２のノードは、他方のノードの前記リンク上のデータ・パケットの伝送レートを制御するために前記リンクを介してクレジット・データを交換し、前記受信装置の各々は、他方のノードから送信されたデータを格納するためのデータ・バッファを有し、
前記方法は、
他方のノードから前記リンクを介して送信された前記クレジット・データを送信装置が受け入れることを無効にするステップと、
他方のノードから送信されたデータ・パケットのうち前記データ・バッファ内の空間の不足に起因して消失するデータ・パケットについて前記受信装置がモニタするステップと、
前記データ・バッファ内の空間の不足に起因して消失したデータ・パケットを検出することに応答して、前記受信装置が他方のノードに対し前記伝送レートを減少させるための第１の要求を送信するステップとを含む、方法。
【請求項２】
前記無効にするステップは、前記送信装置がクレジット・データを無視するように前記送信装置内にモード・ビットをセットするステップを含む、請求項１に記載の方法。
【請求項３】
前記無効にするステップは、オペレータが前記モード・ビットを制御可能にセットするか、又は構成プログラムが前記モード・ビットを自動的にセットするステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記送信装置は、前記第１の要求に応答して、パケット間遅延を制御可能に増加させることにより、前記伝送レートを減少させる、請求項１に記載の方法。
【請求項５】
前記送信装置は、前記伝送レートを減少させた後、予め選択された時間間隔中に前記第１の要求が受信されないことに応答して、当該時間間隔の経過後に前記伝送レートを増加させる、請求項４に記載の方法。
【請求項６】
前記送信装置は、前記伝送レートを減少させた後、前記受信装置から前記伝送レートを増加させるための第２の要求を受信することに応答して、前記伝送レートを増加させる、請求項４に記載の方法。
【請求項７】
受信機であって、
着信インフィニバンド・パケット（以下「ＩＢパケット」と表記）を第１の伝送レートで受信するためにインフィニバンド・リンク（以下「ＩＢリンク」と表記）に結合された入力と、
前記着信ＩＢパケットを格納するために前記入力に結合されたデータ・バッファと、
前記ＩＢリンクを介してクレジット・データを送信することにより前記データ・バッファ内の空間の量を指示するために前記ＩＢリンクに結合された出力と、
前記データ・バッファ内の空間の不足に起因して消失するＩＢパケットを検出するために前記データ・バッファに結合されたモニタ回路と、
前記第１の伝送レートをより遅い伝送レートに減少させるための第１の要求を前記ＩＢリンクを介して送信するために前記出力に接続された第１の出力回路とを備える、受信機。
【請求項８】
前記より遅い伝送レートを増加させるための第２の要求を前記ＩＢリンクを介して送信するために前記出力に接続された第２の出力回路をさらに備える、請求項７に記載の受信機。
【請求項９】
送信機であって、
制御された伝送レートでインフィニバンド・リンク（以下「ＩＢリンク」と表記）を介してインフィニバンド・パケット（以下「ＩＢパケット」と表記）を送信するために前記ＩＢリンクに結合された出力と、
クレジット・データ及び現在の伝送レートをより遅い伝送レートへ減少させるための第１の要求を受信するために前記ＩＢリンクに接続された入力と、
前記クレジット・データを解釈し且つその解釈結果に応答して前記ＩＢリンクを介して送信すべきＩＢパケットの前記現在の伝送レートを制御するために前記入力に結合された第１の回路と、
前記送信機が無制限の伝送レートで動作するように前記第１の回路を無効にするための第２の回路と、
前記第１の要求を受信することに応答して前記無制限の伝送レートを減少させるために前記入力に結合された第３の回路とを備える、送信機。
【請求項１０】
前記入力は、前記より遅い伝送レートを増加させるための第２の要求を受信することができ、前記送信装置は、前記第２の要求を受信することに応答して、前記第３の回路によって減少された前記より遅い伝送レートを増加させるための第４の回路をさらに備える、請求項９に記載の送信機。
【請求項１１】
前記第３の回路によって前記現在の伝送レートが前記より遅い伝送レートに減少された後の時間間隔中に前記第１の要求が受信されないことに応答して、当該時間間隔の経過後に前記より遅い伝送レートを増加させるための第４の回路をさらに備える、請求項９に記載の送信機。
【請求項１２】
前記第２の回路は、前記第１の回路を無効にすべきか否かを指示する前記送信装置内のモード・ビットの状態を検出するための回路を含む。 請求項９に記載の送信機。
【請求項１３】
前記モード・ビットの状態を選択的にセットするためにオペレータによって制御可能な回路をさらに備える、請求項１２に記載の送信機。
【請求項１４】
前記モード・ビットの状態を選択的にセットするために構成プログラムによって制御可能な回路をさらに備える、請求項１２に記載の送信機。
【請求項１５】
前記第３の回路は、前記送信装置のパケット間遅延を増加させるための回路を含む、請求項９に記載の送信機。
【請求項１６】
請求項１〜６の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、専有的なシステム間チャンネル・リンクに置き換わるべき、インフィニバンド（商標）・ベースの長距離リンクの解決策に係り、さらに詳細に説明すれば、インフィニバンドで定義されたクレジット交換を使用しないフロー制御機構を提供することにより、伝送距離を延長可能にすることに係る。
業界団体の「InfiniBand Trade Association」から入手可能な「InfiniBand Architecture Specification」と称する規格書は、本発明の主題と或る程度は関連する主題を含んでいる。本明細書では、この規格書の全体を援用する。
【背景技術】
【０００２】
クレジット・ベースのフロー制御は、データの送信機と受信機との間の通信交換に基礎を置いている。一般に、受信機は、送信機に対し、当該受信機が現に或る量のデータを受信できることを通知する。クレジット・ベースのプロトコルの下では、送信機は、かかる通知を受信しない限り、データを送信しない。また、かかる通知は、受信機のバッファがアンロードされる際に、受信機がどれだけのデータを受信できるかを（おそらくは累積的に）指定することができる。送信機と受信機との間のこれらの必要な交換は、移動時間を消費するので、これらの交換が行われている間、大量のデータ（例えば、メガバイト程度のデータ）をバッファしなければならない。伝送距離が長くなると、往復遅延時間が増加するから、クレジット交換が行われている間、バッファは伝送中のパケットを収容しなければならず、従ってそのサイズも増加することになる。
【０００３】
インフィニバンド（以下「ＩＢ」と略記）インタフェース及びプロトコルは、帯域幅要件に依存して、リピータ又は中間のスイッチを使用することなく、ほぼ数百メートルにわたってデータ・パケットを伝送するのに有用である。リピータを使用すると、これらの距離を数百ｋｍ程度まで延長可能であるが、クレジット交換によって消費される前述の往復遅延時間が増加することになる。ＩＢインタフェースの伝送距離を延長するための１つの解決策は、帯域幅を浪費する傾向があるＩＢフロー制御を無視又は無効にすることである。フロー制御は、データのオーバーランを回避するのに有用であるが、それらは受信機においてバッファ資源を必要とする。フロー制御が無効にされる場合は、遅くなったメモリ・サブシステム及びバッファ・オーバーランに起因する消失パケットを検出し且つデータ・パケットの伝送レートを減少させるためには、消失パケット検出機構及びスロットリング機構が必要である、これらの状況では、要求パケットを送信装置に送信することにより、例えばそれらのデータ・パケットの伝送レートを減少させるように指令することができる。
【０００４】
各クレジット・パケットは、種々の量のクレジットを通信することができ、従って各クレジット・パケットを、必要に応じて、時折又は頻繁に送信することができる。各クレジット・パケットは、受信機内で使用可能なバッファ空間の絶対量を表すか、又は使用可能になったバッファ・メモリの増分を表すことができる。通常、ＩＢは、各パケットにおいて絶対的な表現を実装する。
【非特許文献１】業界団体の「InfiniBand Trade Association」から入手可能な「InfiniBand Architecture Specification」と称する規格書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、本発明の目的は、ＩＢで定義されたクレジット交換を使用しないフロー制御機構を提供することにより、ＩＢ送信機とＩＢ受信機との間の伝送距離を延長可能にすることにある。
【課題を解決するための手段】
【０００６】
ＩＢリンクは、各々が送信装置及び受信装置を備える第１及び第２のノードを結合する、２地点間接続とすることができる。本発明に従った方法及び装置によれば、第１及び第２のノードは、他方のノードのＩＢリンク上のデータ・パケットの伝送レートを制御するために、ＩＢリンクを介してクレジット・データを交換する。各ノード内の受信装置は、他方のノードからの送信データを格納するためのデータ・バッファを備え、一方、各ノード内の送信装置は、他方のノードの受信バッファ内で使用可能なバッファ空間を追跡するためのクレジット制御論理を備える。他方のノードからＩＢリンクを介して送信され且つクレジット制御論理内で追跡されるクレジット・データを送信装置が受け入れることを無効にすると、データ・パケットの伝送レートをより大きくすることができる。本発明のかかる特徴は、他方のノードによって送信されたパケットのうち受信装置内のバッファ空間の不足により消失したパケットを、受信装置がモニタすることを必要とする。かかる状況では、受信装置は、データ・パケットの伝送レートを減少させるための第１の要求を他方のノードに送信する。
【０００７】
本発明の他の実施形態は、ＩＢリンクを介して通信中の第１及び第２のノードのうち１つのノード内に設けられた受信機（受信装置）に係る。この受信機は、ＩＢリンクに結合された入力と、着信ＩＢパケットを格納するためのデータ・バッファと、当該データ・バッファ内の使用可能な空間の量を指示するクレジット・データを送信するためにＩＢリンクに結合された出力とを備える。また、バッファ空間の不足により消失したパケットについて前記データ・バッファをモニタするための回路が設けられる。消失パケットが検出される場合、当該ノードは、伝送レートを減少させるための第１の要求をＩＢリンクを介して送信する。
【０００８】
本発明の他の実施形態は、ＩＢリンクを介して通信中の第１及び第２のノードのうち１つのノード内に設けられた送信機（送信装置）に係る。この送信機は、ＩＢパケットを送信するためにＩＢリンクに結合された出力と、クレジット・データ及び現在の伝送レートを減少させるための第１の要求を受信機から受信するための入力と、クレジット・データを解釈し且つ第１の要求に応答して現在の伝送レートを減少させるための回路とを備える。クレジット・データが無視される場合、この送信機は、第１及び第２のノードの間の距離には関係なしに、データ・パケットを連続的に送信することができる。
【発明を実施するための最良の形態】
【０００９】
図１は、２つのサイト１０５及び１０６の間の２地点間ネットワーク構成の例を示す。これらのサイトの各々に含まれる中央電子処理装置（ＣＥＣ）１０１は、短距離の双方向ＩＢリンク１０３を介して、対応するカップリング・ファシリティ１０２と通信する。これらのノード間の２地点間通信は、長距離の双方向ＩＢリンク１０４を横断する。通信リンクの一端にある各装置１１０は、送信機及び受信機（ｔ／ｒ）１０８を備えている。というのは、各装置１１０は、双方向リンク上のデータ・パケットの伝送レートを制御できるように、当該装置の受信バッファでどれだけの空間が使用可能であるかを追跡して、クレジット・パケットを他方の装置に通信しなければならないからである。一般に、これらの装置１１０は、ＣＥＣ１０１又はカップリング・ファシリティ１０２及びＩＢリンク１０４又は１０３に結合されたＩＢチャネル・アダプタである。
【００１０】
各装置１１０内のコンピュータ・コード１０７は、本発明を実施する方法の特徴及び機能性に従って、ハードウェアを制御するように動作する。ローカル・サイト１０５及びリモート・サイト１０６の各々は、ＩＢＭ社から入手可能なｚ９メインフレームから成る、システムｚシスプレックスとして構成することができる。この例示的な構成は、他の構成を排除することを意図するものではない。ローカル・サイト１０５及びリモート・サイト１０６の各々は、複数のＣＥＣ１０１及び複数のカップリング・ファシリティ１０２を備えることもできるからである。また、これらのＣＥＣ１０１は、図示のような外部カップリング・ファシリティ１０２ではなく、内部カップリング・ファシリティを備えることができる。この同じマシンは、一のＣＥＣ及び一のカップリング・ファシリティとして動作するように構成することができる。カップリング・ファシリティ１０２が提供する一般的な機能性は、複数のＣＥＣ１０１を結合することを含む。現在の技術の複雑さ及びＩＢリンク１０３又は１０４の物理的特性に依存して、長距離という用語の意味は変わることがあるが、本発明の説明の便宜上、例えば、ほぼ１ｋｍ又はそれ以上の距離が「長距離」に相当すると見なすことができる。また、これらのリンクは、数ｋｍまで延長することができるが、それも長距離リンクと見なされるであろう。
【００１１】
図２は、図１に示す装置の各々、すなわちＣＥＣ１０１及びカップリング・ファシリティ１０２の各々に含まれる、代表的な送信機及び受信機を示す。しかし、図２の受信機２０９と送信機２０８との間のカップリング、例えば、送信機２０８から受信機２０９の仮想レーン入力（ＶＬｉｎ）バッファ２０３に送信されるデータ・パケット２０７及び受信機２０９から送信機２０８に送信されるクレジット・パケット２０６は、「長距離」通信を説明する便宜上、図１のサイト１０５及び１０６のうち一方のサイトにおける送信機及びこの送信機と通信中の他方のサイトにおける受信機を例示するものとする。
【００１２】
動作中、送信機２０８は、受信機２０９のＶＬｉｎバッファ２０３内に十分な空間がある場合に限り、データ・パケット２０７を送信する。受信機２０９のＶＬｉｎバッファ２０３内で使用可能な空間の量は、そのクレジット制御論理（クレジット・カウント）２０５によって、送信機２０８に知らされる。送信機２０８は、受信機２０９からクレジット・パケット２０６を受信すると、クレジット制御論理２０５内にクレジットを累積する。ＩＢプロトコルでは一般的であるように、受信機２０９のＶＬｉｎバッファ２０３内で使用可能な空間の総計を表す指示は、累積的なカウントとしてではなく、各クレジット・パケットとともに送信される。但し、そのどちらを使用しても、正確に実装することができる。例えば、１つのクレジットは６４バイトと等価であり、その量のバッファ空間が受信機２０９内で使用可能であることを指示する。送信機２０８が一のデータ・パケット２０７を送信するとき、送信機２０８は、その送信パケットのサイズに従ってそのクレジット制御論理２０５内のクレジット・カウントをデクリメントする。受信機２０９のＶＬｉｎバッファ２０３からのデータがシステム・メモリ２０２において受け取られると、ＶＬｉｎバッファ２０３に結合された受信機２０９のクレジット制御論理２０４は、そのＶＬｉｎバッファ２０３からのかかるデータの移動を検出し、累積的又は全体情報の何れかを保持するクレジット・パケット２０６を周期的に生成し且つこれを送信することにより、より多くのバッファ空間が受信機２０９のＶＬｉｎバッファ内で使用可能であることを送信機２０８に通知する。次に、送信機２０８は、受信機２０９からクレジット・パケット２０６を受信し、これに応じて、（累積的な通信について漸増的にインクリメントするか又は絶対的なクレジット・カウントについてそのクレジット・カウントを置換するかに拘わらず）そのクレジット制御論理２０５内のクレジット・カウントをインクリメントする。送信機２０８内の制御レジスタ２１０は、クレジット・データを利用する送信機内の回路を無効にするためのモード・ビットを含む。このモード・ビットが無効状態にセットされている場合、送信機２０８は、受信機２０９から伝送レートを減少させるための第１の要求を受信しない限り、クレジット・データを無視し且つ無制限のレート、すなわち最大のレートでデータ・パケットを送信する。モード・ビットは、ハードウェアに対し、クレジット制御論理２０５内のクレジット・カウンタを検査せずに送信データを送信するように指令するものである。一般に、構成ソフトウェア（ファームウェア）が、このモード・ビットの状態を制御する。代替的に、オペレータのコマンドによってこのモード・ビットの状態を制御することができる。
【００１３】
図３は、送信機３０１から受信機３０２に送信されるデータ・パケット１〜１１（３０３）と、受信機３０２から送信機３０１に送信されるクレジット・パケット１〜１１（３０４）との交換を示す。これは、本発明の１つの実施形態に従った、典型的なクレジット・ベースのフロー制御交換である。時間間隔３０７は、ＶＬｉｎバッファ２０３（図２）を部分的にアンロードするのに必要な時間を示し、データ・パケットが受信され、処理され、アンロードされる時点から、このアンロードに応じて生成されたＶＬｉｎバッファ２０３内の使用可能なバッファ空間のサイズを指示するクレジット・パケットが送信される時点まで測定される。データ・パケット３０３及びクレジット・パケット３０４を受信する場合、送信機３０１及び受信機３０２の各々は、或る量の処理時間を使い果たす。この送信機３０１と受信機３０２との間の短距離通信交換の例では、送信機３０１は、受信機３０２からクレジット・パケット３０４を受信するのを待機する遅延を伴うことなく、データ・パケット３０３を連続的に送信している。時間間隔３０６は、送信機３０１が一のデータ・パケット３０３を送信するのに必要は時間を示す。この例では、データ・パケット３０３の送信相互間の待機時間は存在しないか又は無視することができる。説明の便宜上、それぞれのデータ・パケット３０３は、ほぼ等しい長さを有し、一定の間隔で送信されるものとする。同様に、それぞれのクレジット・パケット３０４は、送信されたクレジット・パケット３０４を表す線の等距離の間隔によって示されるように、一定の間隔で送信されるものとする。実際の動作では、データ・パケット３０３及びクレジット・パケット３０４を、不規則な間隔で送信することができ、その各々は種々の量のデータを搬送することができる。すなわち、クレジット・パケット３０４の場合は、種々の量の使用可能なバッファ空間を指示することができる。
【００１４】
この例は、クレジット・パケット３０４を待機するための過度の往復遅延時間により送信機３０１がそれに使用可能な帯域幅を浪費しないという、送信機３０１の短距離特性を例証する。この往復遅延時間とは、送信機３０１から送信される一のデータ・パケット３０３が一の距離を横断して受信機３０２に到達し、受信機３０２がこのデータ・パケット３０３をアンロードし、受信機３０２がこのアンロードに起因して使用可能になったバッファ空間を指示する一のクレジット・パケット３０４を送信するのに要する時間と、このクレジット・パケット３０４が前記距離を横断して送信機３０１に到達するのに要する時間とを合計した時間である。このことは、参照番号３０５の箇所に示されている。すなわち、この箇所では、データ・パケット６を送信するのに必要なクレジット・パケット４が受信されているが、データ・パケット５は送信機３０１によってまだ送信されていない。
【００１５】
図４は、クレジット・ベースのフロー制御交換を示す。しかし、図４の例では、送信機と受信機との間の距離がより長くなっていて、送信機は受信機からクレジット・パケット４０２を受信するのを待機しなければならないので、送信機によるデータ・パケット４０１の伝送レートに遅延が導入されている。この状況では、送信機及び受信機は、両者の距離がより長いことだけを除けば、図３に示す短距離の例と同じレートで動作することができる。データ・パケット４０１及びクレジット・パケット４０２の横断を表す線の傾斜は、図３及び図４において同じであり、従って移動速度は同じである。図３の時間間隔３０７及び図４の時間間隔４０４は、同じであり、従って図３及び図４の受信機は、同じレートで受信データ・パケットを処理している。クレジット・ベースのフロー制御プロトコルの制限に起因して、図４の送信機は、一のデータ・パケット４０１を送信する前に、クレジット・パケット４０２を受信するのを待機しなければならないので、そのターン・アラウンド時間４０３は、図３の短距離の例におけるターン・アラウンド時間３０５よりも短い。図４の送信機は、図３の短距離の例と同じレートで同等のデータ・パケット４０１を送信することができる。図４の送信機は、図３の短距離の例のように、データ・パケット４０１を連続的に送信していない。データ・パケット４０１を送信するのに必要なクレジット・パケット４０２は、間に合うように到着していないので、たとえ受信機がデータ・パケット４０１をアンロードするのに必要な時間４０４及び送信機が一のデータ・パケット４０１を送信するのに必要な時間４０６が図３の短距離の例における時間３０６と同じに留まるとしても、図４の送信機は、データ・パケット４０１及びクレジット・パケット４０２の移動時間に起因する浪費帯域幅の量を指示する時間４０５だけ遅延されることになる。受信機が一のデータ・パケット４０１をアンロードし且つ一のクレジット・パケット４０２を送信するのに要する時間は、送信機と受信機との間の距離に依存しない。この例は、送信機と受信機との間の距離がより長くなると、パケットが送信機から受信機まで移動するのにより多くの時間がかかることを示す。浪費時間４０５は、送信機と受信機との間の距離に起因する往復遅延時間の増加によって引き起こされる。
【００１６】
図５は、クレジット・ベースのフロー制御が無効にされることを除くと、図４の例と同じ距離だけ離れて配置された送信機及び受信機を示す。図５の例では、距離がより長いことを除けば、図３の短距離の例と同じレートでパケットを交換することができる。というのは、この例における送信機は、着信クレジット・パケット５０２を無視しているために、無視できる程度の遅延で且つクレジット・パケット５０２を待機することなく、データ・パケット５０１を連続的に送信しているからである。しかし、受信機は、送信機がクレジット・パケット５０２を無視しているという知識を有していない。受信機のバッファをアンロードするのに必要な時間５０３は、パケットを送信するのに必要な時間５０４と同様に、図４の例と同じに留まる。従って、クレジット・ベースのフロー制御を無効にすることにより、長距離におけるパケット伝送のレートは、短距離における伝送レートと同等になる。
【００１７】
図６は、送信機から連続的に送信されるデータ・パケット６０１が、ＶＬｉｎバッファの充満状態に起因して、受信機６０３において消失する例を示す。この例では、送信機は、クレジット・パケット６０２を待機せず、着信クレジット・パケット６０９を無視する。この条件（すなわち、予め選択された数の消失パケット）を検出することに応答して（６０４を参照）、スローダウン・パケット６０７が受信機から送信機に送信される。この検出機構は、受信機のプロセッサに対する周知のハードウェア割り込みを含み、それに応じて、プログラム・コードは、送信機に送信されるスローダウン・パケット６０７を生成する。一般に、このスローダウン・パケット６０７は、ＩＢ管理データグラムのフォーマットを有する。このスローダウン・パケット６０７は、送信機で受信され、そこで発信データ・パケットのためのパケット間遅延が増加するように処理される。ＩＢプロトコルは、周知の静的なレート制御機構を実装する（例えば、前掲の「InfiniBand Architecture Specification」のセクション９．１１を参照）。標準的なＩＢ装置は、データ送信機内に消失パケットを検出するための機構と、静的なレートを制御するための機構（パケット間遅延機構）を備えている。パケット間遅延機構の通常の使用法は、（交換網内のように）異なる速度を有する複数のリンクから成るパスにおけるパケットの注入レートを制御するというものであるが、かかるパケット間遅延機構は、クレジット・ベースのフロー制御がバイパスされる場合に、本明細書で説明する使用法にも適用することができる。同様に、受信機におけるパケットの消失が無くなれば、受信機は、送信機に対しスピードアップ・コマンド・パケットを送信することができる。
【００１８】
受信機のバッファをアンロードするのに必要な時間６０５は、データ・パケットを送信するのに必要な時間６０６と同様に、図４の例と同じままに留まる。送信機は、スローダウン・パケット６０７を受信することに応答して、一のパケット間遅延を導入することにより、データ・パケットの伝送レートを減少させる（６０８を参照）。本発明の１つの利点は、スローダウン・パケット６０７を送信することにより、送信機に対し、データ・パケットが消失しない程度に伝送レートを増分的に減少させることを指令すると同時に、図４のクレジット・ベースのフロー制御で生じ得るような、大量の浪費帯域幅を導入しないように指令することができる、いうことである、この点を理解するには、図４及び図６の浪費帯域幅の量を比較すればよい。
【００１９】
図７は、各方向に単一ファイバを有する代表的な双方向リンクの性能メトリックスを例示する。「ＱＤＲ  クレジットなし」の性能は、１ＧＢ／ｓの帯域幅に相当する、水平線７０１によって示される。「ＤＤＲ  クレジットなし」の性能は、０．５ＧＢ／ｓの帯域幅に相当する、水平線７０２によって示される。「ＱＤＲ  ｗ／最大バッファ」の性能は、ほぼ１２ｋｍの距離まで、１ＧＢ／ｓの帯域幅に相当する水平線７０１上にあり、ほぼ１２ｋｍの距離を過ぎると、点線７０４に示すように低下し始める。「ＤＤＲ  ｗ／最大バッファ」の性能は、ほぼ２７ｋｍの距離まで、０．５ＧＢ／ｓの帯域幅に相当する水平線７０２上にあり、ほぼ２７ｋｍの距離を過ぎると、線７０６に示すように低下し始める。「ＱＤＲ  ｗ／３２ｋ  ＶＬｉｎバッファ」の性能は、ほぼ３ｋｍの距離まで、１ＧＢ／ｓの帯域幅に相当する水平線７０１上にあり、ほぼ３ｋｍの距離を過ぎると、点線７０３に示すように低下し始める。また、「ＤＤＲ  ｗ／３２ｋ  ＶＬｉｎバッファ」の性能は、ほぼ３ｋｍの距離まで、０．５  ＧＢ／ｓの帯域幅に相当する水平線７０２上にあり、ほぼ３ｋｍの距離を過ぎると、線７０５に示すように低下し始める。
【００２０】
図７から分かるように、「クレジットなし」のＩＢリンクの動作は、１ＧＢ／ｓの伝送レート７０１又は０．５ＧＢ／ｓのレート７０２において、どんな距離でも低下を伴わない一貫した伝送レートに帰着する。これらは、クワッド・データ・レート伝送（ＱＤＲ）及びダブル・データ・レート伝送（ＤＤＲ）にそれぞれ相当する。クレジット・ベースのフロー制御は、伝送距離が増加するにつれて、伝送レートが低下することに帰着する。図７に示すように、受信機内のより大きなバッファ、例えば「最大バッファ」は、３２ｋＢのＶＬｉｎバッファよりも大きいほぼ１３１ｋＢの容量を有し、より小さなＶＬｉｎバッファを使用する場合の性能低下特性７０３及び７０５と比較すると、その性能低下特性７０４及び７０６が顕著になる前まで伝送距離を延長するのを可能にする。図７から推定することができる１つの結論は、クレジット・ベースのフロー制御が実装される場合は、０．５ＧＢ／ｓの能力を有する送信機／受信機ペアの代わりに１ＧＢ／ｓの能力を有する送信機／受信機ペアを使用しても、ほぼ２７ｋｍの距離において性能上の利点は得られない、ということである。すなわち、ほぼ２７ｋｍの距離では、１ＧＢ／ｓの帯域幅を有するリンクの性能低下特性７０４が０．５ＧＢ／ｓの帯域幅に相当する水平線７０２に接近し且つこれに交差した後、線７０６に示すように低下し始めるからである。
【００２１】
以上では、本発明の特定の実施形態を説明したが、本発明の精神及び範囲から逸脱することなく、種々の修正をなし得ることは明らかであろう。特に、本明細書に記載の技術は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア又はそれらの任意の組合せを含む、方法、装置又は製品として実装することができる。ここで、「製品」という用語は、媒体内に実装されるコード又は論理を指し、かかる媒体は、ハードウェア論理（例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）又はコンピュータ可読媒体（例えば、磁気記憶媒体、光学式記憶装置、揮発性及び不揮発性メモリ装置等）を含むことができる。コンピュータ可読媒体内のコードは、プロセッサによってアクセス及び実行される。また、その内部にコード又は論理が符号化される媒体は、空間又は（光ファイバ、銅線等の）伝送媒体を伝播する伝送信号を含むことができる。さらに、その内部にコード又は論理が符号化される伝送信号を送信局から受信局に伝送し、受信局においてこの伝送信号内の符号化コード又は論理を復号した後、その復号結果を送信局は受信局内のハードウェア又はコンピュータ可読媒体に格納することができる。さらに、「製品」は、その内部でコードが具体化、処理及び実行される、ハードウェア及びソフトウェア・コンポーネントの組み合わせを含むことができる。もちろん、当業者は、本発明の範囲から逸脱することなく、多くの修正をなし得ること、そして製品が任意の情報担持媒体を含み得ることを理解するであろう。例えば、製品は、マシンによって実行されるときマシンに所定の動作を行わせるような命令を格納する、記憶媒体を含む。
【００２２】
或る実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態又はハードウェア及びソフトウェア要素の両方を含む実施形態の形式を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含む、ハードウェア及びソフトウェアの形式で実装される。さらに、或る実施形態は、コンピュータ又は任意の命令実行システムによる又はそれらに関連して使用するためにプログラム・コードを提供する、コンピュータが使用可能な媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形式を取ることができる。ここで、コンピュータが使用可能な媒体又はコンピュータ可読媒体は、命令実行システム、装置等による又はそれらに関連して使用するためのプログラムを保持し、格納し、通信し、伝播し又は伝達することができる、任意の装置とすることができる。媒体は、電子、磁気、光学、電磁気、赤外線、又は半導体システム（又は装置）又は伝播媒体とすることができる。コンピュータ可読媒体の例は、半導体又は固体メモリ、磁気テープ、取外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、磁気ハード・ディスク及び光ディスクを含む。光ディスクの現在の例は、読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスク、読み書き可能なＣＤ−Ｒ／Ｗ及びＤＶＤを含む。
【図面の簡単な説明】
【００２３】
【図１】ＩＢノードの２地点間接続の例を示す図である。
【図２】１つのＩＢサイト内にある送信機及び他のＩＢサイト内にある受信機を示す図である。
【図３】クレジット・ベースのフロー制御を使用した場合の、短距離における２つのＩＢノード間の通信遅延時間を示す図である。
【図４】クレジット・ベースのフロー制御を使用した場合の、長距離における２つのＩＢノード間の通信遅延時間を示す図である。
【図５】フロー制御を使用した場合の、長距離における２つのＩＢノード間の通信遅延時間を示す図である。
【図６】遅延ベースのフロー制御を使用した場合の、長距離における２つのＩＢノード間の通信遅延時間を示す図である。
【図７】バッファ・サイズ、フロー制御及び帯域幅の関係において、２つのノード間のデータ伝送レートの減少特性を示す図である。
【符号の説明】
【００２４】
２０２  システム・メモリ
２０３  仮想レーン入力（ＶＬｉｎ）バッファ
２０４  クレジット制御論理
２０５  クレジット制御論理（クレジット・カウント）
２０６  クレジット・パケット
２０７  データ・パケット
２０８  送信機
２０９  受信機
２１０  制御レジスタ
【図１】
2008172795.tif 000003
【図２】
2008172795.tif 000004
【図３】
2008172795.tif 000005
【図４】
2008172795.tif 000006
【図５】
2008172795.tif 000007
【図６】
2008172795.tif 000008
【図７】
2008172795.tif 000009