(57)【特許請求の範囲】
【請求項１】
コンピュータシステム内の構成要素のネットワークを使いやすくするための、コンピュータにより実行される方法であって、
前記ネットワーク上の構成要素に、前記構成要素から前記ネットワークへの未処理書き込みトランザクションを制限する書き込みトランザクション制限を設けることと、
前記構成要素からの書き込みトランザクションの完了を検出すると、前記書き込みトランザクションの完了通知を提供することであって、前記完了通知は前記構成要素による前記書き込みトランザクション制限内での追加書き込みトランザクションの送信を可能にする、完了通知を提供することと、
を含み、
前記書き込みトランザクションの前記完了通知を提供することが、
前記構成要素と関連付けられた情報を用いて前記書き込みトランザクションから前記完了通知を生成することと、
前記完了通知を前記構成要素に送信することと、
を伴う方法。
【請求項２】
前記構成要素に前記書き込みトランザクション制限を設けることが、
負荷分散技法を用いて前記書き込みトランザクション制限を決定することと、
前記書き込みトランザクション制限を前記構成要素に送信することと、
を伴う、請求項１に記載のコンピュータにより実行される方法。
【請求項３】
前記情報が、
構成要素識別情報と、
ペイロードサイズと、
書き込みトランザクション制限識別情報と、
のうちの少なくとも１つを含む、請求項１に記載のコンピュータにより実行される方法。
【請求項４】
前記構成要素が、ディスクコントローラと、入出力（Ｉ／Ｏ）機器と、プロセッサとのうちの少なくとも１つである、請求項１に記載のコンピュータにより実行される方法。
【請求項５】
前記書き込みトランザクション制限が、
未処理書き込みトランザクションの最大数と、
前記未処理書き込みトランザクションに対するメモリ制限と、
のうちの少なくとも１つを指定する、請求項１に記載のコンピュータにより実行される方法。
【請求項６】
前記ネットワークがＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）ネットワークである、請求項１に記載のコンピュータにより実行される方法。
【請求項７】
コンピュータシステムにおける構成要素のネットワークを経由した書き込みトランザクションの送信を管理するためのコンピュータにより実行される方法であって、
前記ネットワーク上の構成要素のために、前記構成要素から前記ネットワークへの未処理書き込みトランザクションを制限する書き込みトランザクション制限を取得することと、
前記構成要素から前記ネットワークへの書き込みトランザクションを検出すると、
前記書き込みトランザクション制限を前記構成要素の１組の未処理書き込みトランザクションと比較することと、
前記書き込みトランザクションが前記１組の未処理書き込みトランザクションに前記書き込みトランザクション制限を超えさせる場合、前記ネットワーク経由での前記書き込みトランザクションの送信を制限することと、
前記書き込みトランザクションが前記１組の未処理書き込みトランザクションに前記書き込みトランザクション制限を超えさせない場合、前記書き込みトランザクションを前記ネットワーク経由で送信することと、
前記書き込みトランザクションを前記ネットワーク経由で送信する前に、前記構成要素と関連付けられた情報であって、後続の完了通知の受信を可能にする当該情報を前記書き込みトランザクションに追加することと、
を含む方法。
【請求項８】
前記書き込みトランザクションを前記１組の未処理書き込みトランザクションに追加することと、
を含む、請求項７に記載のコンピュータにより実行される方法。
【請求項９】
前記書き込みトランザクションの完了通知を受信すると、前記１組の未処理書き込みトランザクションから前記書き込みトランザクションを削除することを更に含み、前記完了通知は前記構成要素による前記書き込みトランザクション制限内での追加書き込みトランザクションの送信を可能にする、請求項８に記載のコンピュータにより実行される方法。
【請求項１０】
前記情報が、
構成要素識別情報と、
ペイロードサイズと、
書き込みトランザクション制限識別情報と、
のうちの少なくとも１つを含む、請求項７に記載のコンピュータにより実行される方法。
【請求項１１】
前記書き込みトランザクション制限が、
前記コンピュータシステム内のプロセッサと、
前記ネットワーク内のスイッチと、
のうちの少なくとも１つから取得される、請求項７に記載のコンピュータにより実行される方法。
【請求項１２】
コンピュータシステムにおける構成要素のネットワークを使いやすくするためのシステムであって、
前記ネットワーク上の構成要素に、前記構成要素から前記ネットワークへの未処理書き込みトランザクションを制限する書き込みトランザクション制限を設けるように構成された帯域幅割り当て装置と、
トランザクション管理装置であって、前記構成要素から前記ネットワークへの書き込みトランザクションを検出すると、
前記書き込みトランザクション制限を前記構成要素の１組の未処理書き込みトランザクションと比較し、
前記書き込みトランザクションが前記１組の未処理書き込みトランザクションに前記書き込みトランザクション制限を超えさせる場合、前記ネットワーク経由での前記書き込みトランザクションの送信を制限し、
前記書き込みトランザクションが前記１組の未処理書き込みトランザクションに前記書き込みトランザクション制限を超えさせない場合、前記トランザクション管理装置が、
前記書き込みトランザクションを前記ネットワーク経由で送信し、
前記書き込みトランザクションを前記１組の未処理書き込みトランザクションに追加し、
前記帯域幅割り当て装置が、前記書き込みトランザクションの完了を検出すると、前記書き込みトランザクションの完了通知を提供する、
ように構成されている、トランザクション管理装置と、
を備え、
前記書き込みトランザクションの前記完了通知を提供することが、
前記構成要素と関連付けられた情報を用いて前記書き込みトランザクションから前記完了通知を生成することと、
前記トランザクション管理装置によって受信される前記完了通知を前記構成要素に送信することとを伴うシステム。
【請求項１３】
前記完了通知は、前記構成要素による前記書き込みトランザクション制限内での追加書き込みトランザクションの送信を可能にし、
前記トランザクション管理装置が、前記完了通知を受信すると、前記１組の未処理書き込みトランザクションから前記書き込みトランザクションを削除する、ように更に構成されている、請求項１２に記載のシステム。
【請求項１４】
前記トランザクション管理装置が、
前記書き込みトランザクションを前記ネットワーク経由で送信する前に、前記情報を前記書き込みトランザクションに追加するように更に構成されている、請求項１２に記載のシステム。
【請求項１５】
前記構成要素に前記書き込みトランザクション制限を設けることが、
負荷分散技法を用いて前記書き込みトランザクション制限を決定することと、
前記トランザクション管理装置によって受信される前記書き込みトランザクション制限を前記構成要素に送信することと、
を伴う、請求項１２に記載のシステム。
【請求項１６】
前記帯域幅割り当て装置が、
プロセッサと、
前記ネットワーク内のスイッチと、のうちの少なくとも１つによって提供される、請求項１２に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
開示の実施形態は、コンピュータシステム内の構成要素のネットワークに関するものである。更に具体的には、開示の実施形態は、それらの構成要素によってネットワーク経由で送信される書き込みトランザクション用帯域幅を制限するための技法に関するものである。
【０００２】
［関連技術］
現代のコンピュータシステムは、典型的には、プロセッサ及びメモリを含むマザーボードを、様々なインターフェースを介してマザーボードに接続された１組の周辺構成要素と共に含む。例えば、シリアルＡＴＡ（ＳＡＴＡ）インターフェースが、記憶装置（例えば、ハードディスクドライブ、光学ドライブ、ソリッドステートドライブ、ハイブリッドハードドライブなど）とマザーボードとの間でのデータ転送をしやすくし得る一方で、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスは、マザーボードといくつかの統合及び／又はアドオン周辺構成要素との間での通信を可能にし得る。
【０００３】
更に、インターフェースのスループット及び／又はレイテンシは、コンピュータシステム内の構成要素間でデータが転送される速度に影響を及ぼすことがある。例えば、ＰＣＩｅインターフェースは、１組のスイッチを使用してコンピュータシステム内の１組の構成要素を接続するネットワークに対応し得る。これらのスイッチは、周辺構成要素からのトランザクションを、そのコンピュータシステムのルートコンプレックス、即ちチップセットにマージし得る。その結果、活発な周辺構成要素からルートコンプレックスへのトランザクションが、周辺構成要素とルートコンプレックスとの間のスイッチにおいて利用可能な帯域幅を消費し得ることにより、そのスイッチに接続された他の周辺構成要素にそのネットワーク上のレイテンシを増加、ひいてはパフォーマンスの低下を経験させる。
【０００４】
そのため、帯域幅を制限するため、及び／又はコンピュータシステム内の構成要素のネットワーク全体で送信されるトランザクションの負荷分散を実行するためのメカニズムが求められている。
【発明の概要】
【０００５】
開示の実施形態は、コンピュータシステムにおける構成要素のネットワークを使いやすくするシステムを提供する。このシステムは、ネットワーク上の構成要素に書き込みトランザクション制限を設ける帯域幅割り当て装置を含む。このシステムは、構成要素からネットワークへの書き込みトランザクションを検出すると、書き込みトランザクション制限をその構成要素の１組の未処理書き込みトランザクションと比較するトランザクション管理装置も含む。その書き込みトランザクションがその１組の未処理書き込みトランザクションに書き込みトランザクション制限を超えさせた場合、トランザクション管理装置が、ネットワーク経由でのその書き込みトランザクションの送信を制限する。
【０００６】
いくつかの実施形態では、その書き込みトランザクションがその１組の未処理書き込みトランザクションに書き込みトランザクション制限を超させない場合、トランザクション管理装置はその書き込みトランザクションをネットワーク経由で送信し、その書き込みトランザクションをその１組の未処理書き込みトランザクションに追加する。次に、書き込みトランザクションの完了を検出すると、帯域幅割り当て装置が、その書き込みトランザクションの完了通知を提供する。最後に、トランザクション管理装置は、完了通知を受信すると、その１組の未処理書き込みトランザクションからその書き込みトランザクションを削除する。
【０００７】
いくつかの実施形態において、帯域幅管理装置は、その書き込みトランザクションから、構成要素と関連付けられた情報を用いて書き込みトランザクションの完了通知を生成し、その完了通知を構成要素に送信することにより、その書き込みトランザクションの完了通知を提供する。完了通知はトランザクション管理装置によって受信される。
【０００８】
いくつかの実施形態において、この情報は、ネットワーク経由で書き込みトランザクションを送信される前に、トランザクション管理装置によって書き込みトランザクションに追加される。この情報は、構成要素の識別情報、書き込みトランザクションのペイロードサイズ、及び／又はその書き込みトランザクションを書き込みトランザクション制限と関連付ける書き込みトランザクション制限識別情報を含み得る。
【０００９】
いくつかの実施形態において、書き込みトランザクション制限は、その構成要素の未処理書き込みトランザクションの最大数及び／又は未処理書き込みトランザクションのメモリ制限を指定する。
【００１０】
いくつかの実施形態において、帯域幅割り当て装置は、プロセッサ及び／又はネットワーク内のスイッチによって提供される。例えば、帯域幅割り当て装置は、ネットワーク内のルート（例えばルートコンプレックス）によって実装され得る。このルートが書き込みトランザクション制限を指定すること、及び／又は完了通知を提供することができない場合、帯域幅割り当て装置は、代替として、ルートに接続されたスイッチによって実装され得る。
【００１１】
いくつかの実施形態において、トランザクション管理装置は、構成要素、及び／又はネットワーク内の異なるスイッチによって提供される。例えば、トランザクション管理装置は、ネットワークのエンドポイント（例えば、ディスクコントローラ、入出力（Ｉ／Ｏ）機器）によって提供され得る。その一方で、エンドポイントが書き込みトランザクション制限を使用してエンドポイントからの書き込みトランザクションの帯域幅を制限することができない場合、トランザクション管理装置は、そのエンドポイントに接続されたスイッチによって提供され得る。
図面において、類似の参照数字が同じ図要素を指す。
【図面の簡単な説明】
【００１２】
【図１】開示の実施形態に係るシステムの概要を示す図である。
【図２】開示の実施形態に係るコンピュータシステム内の構成要素のネットワーク経由で書き込みトランザクションの送信を管理するためのシステムを示す図である。
【図３】開示の実施形態に係るコンピュータシステム内の構成要素のネットワーク経由で書き込みトランザクションの送信を管理するためのシステムを示す図である。
【図４】開示の実施形態に係るコンピュータシステム内の構成要素のネットワークを使いやすくするためのプロセスを表すフローチャートである。
【図５】開示の実施形態に係るコンピュータシステム内の構成要素のネットワーク経由で書き込みトランザクションの送信を管理するプロセスを表すフローチャートである。
【図６】開示の実施形態に係るコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１３】
下掲の記述は、あらゆる当業者が実施形態を製作し使用できるように提示されており、特殊用途及びその要件のコンテキストにおいて提供されている。開示される実施形態に対する様々な改良は、当業者にはすぐ分かるであろう。本明細書において定義されている一般原理は、本開示の精神や範囲から逸脱することなく他の実施形態及び応用に適用可能である。したがって、本発明は、示されている実施形態のみに限定されるものではなく、本明細書で開示されている原理及び特徴と整合する最も広い範囲を許容するものとする。
【００１４】
この「発明を実施するための形態」に記述されているデータ構造及びコードは典型的に、コンピュータ可読記憶媒体上に記憶される。このコンピュータ可読記憶媒体は、コンピュータシステムで使用されるコード及び／又はデータを記憶できる任意のデバイス又は媒体であってよい。コンピュータ可読記憶媒体には、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク、若しくは、ディジタルビデオディスク）等の磁気光学記憶デバイス、又は現在公知とされるか、あるいは、今後開発されるコード、及び／又はデータを記憶可能とする他の媒体が含まれるが、これらに限定されるものではない。
【００１５】
上述したように、「発明を実施するための形態」の項に記載されている方法及びプロセスは、コンピュータ可読記憶媒体に記憶され得るコード及び／又はデータとして具体化され得る。コンピュータシステムが、コンピュータ可読記憶媒体上に記憶されたコード及び／又はデータを読み取り、実行すると、コンピュータシステムは、データ構造及びコードとして具現化され、並びにコンピュータ可読記憶媒体内に記憶された方法及びプロセスを実行する。
【００１６】
更にその上、本明細書に記載されている方法及びプロセスは、ハードウェアモジュール又は装置に含まれているものであってもよい。これらのモジュール又は装置には、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定時刻において特定のソフトウェア・モジュール若しくはコード部を実行する専用、あるいは、共有プロセッサ、及び／又は、現在公知とされるか、あるいは、今後開発される他のプログラマブルロジックデバイスを含むことが可能であるが、これらに限定されるものではない。ハードウェアモジュール又は装置が動作すると、その内部に含まれている方法及びプロセスを実行する。
【００１７】
開示の実施形態は、パーソナルコンピュータ、ラップトップコンピュータ、ポータブル電子機器、ワークステーション、及び／又は相互接続された構成要素を含んでいる他の電子機器などのコンピュータシステム内でデータを転送するための方法及びシステムを提供する。図１に示すとおり、コンピュータシステムは、プロセッサ１１０（例えば中央処理装置（ＣＰＵ））とメモリ１２０とを含むホスト１００、並びにネットワーク１２２によって相互及びホスト１００に接続された１組の構成要素１３２〜１４０を含み得る。
【００１８】
例えば、ネットワーク１２２は、プロセッサ１１０と関連付けられ、並びに／又はプロセッサ１１０を格納しているＰＣＩｅルートコンプレックスに記憶装置、グラフィックスカード、ネットワークカード、及び／若しくはサウンドカードなどの１組の周辺構成要素（例えば構成要素１３２〜１４０）を接続するＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）ネットワークに対応し得る。ネットワーク１２２に接続された構成要素（例えば、構成要素１３２〜１４０、プロセッサ１１０、ルートコンプレックスなど）間での通信を可能にするために、構成要素からのＰＣＩｅトランザクションは、ネットワーク１２２内のスイッチの階層を経て、それらのトランザクションと関連付けられた宛先に先着順でルーティングされる。その後、ＰＣＩｅトランザクションの一部又は全部の完了が宛先から送信され、スイッチによって構成要素に返送され得る。
【００１９】
当業者であれば、ネットワーク１２２の帯域幅が、構成要素１３２〜１４０によって不均一に消費され、活発でない構成要素でレイテンシの増大及び／又はパフォーマンスの低下が生じ得ることを理解するであろう。例えば、ネットワーク１２２内の各ホップにより、そのホップが受容し得るトランザクションの数を制限する１組のフロー制御クレジット（例えば、ポストされたトランザクションレイヤパケット（ＴＬＰ）フロー制御クレジット）が指定され得る。加えて、これらのホップは、構成要素１３２〜１４０からのトランザクションをホスト１００の単一ポートにマージする１つ以上のファンアウトスイッチを形成し得る。その結果、活発な周辺構成要素（例えば構成要素１３２〜１４０）が、宛先までの一部又は全部のホップのフロー制御クレジットを使い果たすトランザクションをポストし得るため、それらのホップに接続された他の周辺構成要素をスターブ（starve）させ、これらの周辺構成要素にネットワーク１２２で受けるレイテンシを増加させ、及び／又はパフォーマンスが低下させることになり得る。
【００２０】
１つ以上の実施形態において、図１のシステムは、構成要素１３２〜１４０からネットワーク１２２への書き込み（例えばポストされた）トランザクションの送信を制限することによってネットワーク１２２を使いやすくする機能を含む。以下に詳述するとおり、このシステムは、ネットワーク１２２上の構成要素（例えば、構成要素１３２〜１４０、プロセッサ１１０）に書き込みトランザクション制限を設ける帯域幅割り当て装置を含み得る。このシステムは、構成要素からネットワーク１２２への書き込みトランザクションを検出すると、書き込みトランザクション制限をその構成要素の１組の未処理書き込みトランザクションと比較するトランザクション管理装置も含み得る。その書き込みトランザクションがその１組の未処理書き込みトランザクションに書き込みトランザクション制限を超えさせる場合、トランザクション管理装置は、例えば、ネットワーク１２２上にある次のホップへの書き込みトランザクションの送信を遅らせることによって、ネットワーク１２２経由でその書き込みトランザクションの送信を制限し得る。
【００２１】
書き込みトランザクションがその１組の未処理書き込みトランザクションに書き込みトランザクション制限を超えさせない場合、トランザクション管理装置はその書き込みトランザクションをネットワーク１２２経由で送信し、その書き込みトランザクションを１組の未処理書き込みトランザクションに追加し得る。帯域幅割り当て装置はその後、書き込みトランザクションの完了を検出すると、その書き込みトランザクションの完了通知を提供し得る。そしてトランザクション管理装置は、完了通知を受け取ると、その１組の未処理書き込みトランザクションから書き込みトランザクションを削除し得る。換言すれば、帯域幅割り当て装置及びトランザクション管理装置は、ネットワーク１２２上の構成要素間の書き込みトランザクションの送信元−宛先間フロー制御及び／又は負荷分散を提供し得る。
【００２２】
図２は、開示の実施形態に係るコンピュータシステム内の構成要素のネットワーク（例えば図１のネットワーク１２２）経由で書き込みトランザクション２１４（例えばポストされたトランザクション）の送信を管理するためのシステムを示す。書き込みトランザクション２１４は、ディスクコントローラ、入出力（Ｉ／Ｏ）機器、及び／又は他の周辺構成要素など、ネットワークのエンドポイント２０２によって生成され得る。加えて、書き込みトランザクション２１４は、ＰＣＩｅネットワークのルートコンプレックスなど、ネットワークのルート２１０を宛先とし得る。
【００２３】
図２に示すとおり、書き込みトランザクション２１４は、ネットワーク内のブリッジ２２２〜２３２及び／又はスイッチ２１８〜２２０の階層を経てルート２１０にルーティングされ得る。特に、エンドポイント２０２は、スイッチ２１８のブリッジ２２２への書き込みトランザクション２１４の送信２３８を行い、ブリッジ２２２は、スイッチ２１８のブリッジ２２６への書き込みトランザクション２１４の送信２４０を行い得る。次に、ブリッジ２２６がスイッチ２２０のブリッジ２２８への書き込みトランザクション２１４の送信２４２を行い得る。そしてブリッジ２２８がスイッチ２２０のブリッジ２３２への書き込みトランザクション２１４の送信２４４を行い得る。最後に、ブリッジ２３２が、ルート２１０への書き込みトランザクション２１４の送信２４６を行い得る。
【００２４】
上記のとおり、ネットワークの構成要素からの書き込みトランザクションの積極的送信により、ネットワーク上の他の構成要素をスターブさせ得る例えば、各ブリッジ２２２〜２３２を、先着順処理ベースで消費され得る１組のフロー制御クレジットと関連付けることにより、ネットワークにおけるフロー制御が実装され得る。その結果、エンドポイント２０２は、ブリッジ２２２、２２６、２２８、及び２３２上の利用可能フロー制御クレジットを全て消費する、書き込みトランザクションの連続ストリームを、ルート２１０に送信でき得る。その後、エンドポイント２０４がトランザクションの別個のストリームをルート２１０に送信する場合には、エンドポイント２０４からのトランザクションが、ブリッジ２３２でエンドポイント２０２からの書き込みトランザクションの後ろでキューに入れられ得るため、エンドポイント２０４からのトランザクションのレイテンシが増大し、及び／又はエンドポイント２０４におけるパフォーマンスが低下し得る。
【００２５】
エンドポイント２０２〜２０４間でネットワーク上の帯域幅を共有しやすくするために、ルート２１０は、エンドポイント２０２に対する未処理書き込みトランザクションの最大数及び／又は未処理書き込みトランザクションに対するメモリ制限を指定する書き込みトランザクション制限２１２を提供する帯域幅割り当て装置２３６として動作し得る。例えば、帯域幅割り当て装置２３６は、そのネットワークにおいて利用可能な帯域幅及び／又はネットワーク上の構成要素（例えば、ルート２１０、エンドポイント２０２〜２０４など）による、ネットワークの使用状況（例えば、量、周波数、パターンなど）に基づいて、書き込みトランザクション制限２１２、及び／又はそのネットワーク上の構成要素に対する他の書き込みトランザクション制限を決定し得る。その後、帯域幅割り当て装置２３６が、書き込みトランザクション制限２１２及び／又は他の書き込みトランザクション制限をネットワーク上のそれぞれの構成要素に送信し得る。換言すれば、帯域幅割り当て装置２３６は、負荷分散技法を用いてネットワーク経由で、構成要素による書き込みトランザクションの送信を制限し得る。
【００２６】
書き込みトランザクション制限２１２を実施するために、エンドポイント２０２は、エンドポイント２０２からネットワークへの未処理書き込みトランザクションを追跡するトランザクション管理装置２３４を提供し得る。書き込みトランザクション２１４を検出すると、トランザクション管理装置２３４は、書き込みトランザクション制限２１２をエンドポイント２０２の未処理書き込みトランザクションと比較する。例えば、トランザクション管理装置２３４は、未処理書き込みトランザクション及び書き込みトランザクション制限２１２を用いて、未処理書き込みトランザクションの数及び／又はエンドポイント２０２からの後続の書き込みトランザクションに利用可能なバイト数を判定する。書き込みトランザクション２１４が未処理書き込みトランザクションに書き込みトランザクション制限２１２を超えさせる場合、トランザクション管理装置２３４は、ネットワーク経由で書き込みトランザクション２１４の送信を制限する。例えば、トランザクション管理装置２３４は、書き込みトランザクション２１４が未処理書き込みトランザクションに書き込みトランザクション制限２１２によって指定された最大数及び／又はメモリ制限を超させなくなるまで、ブリッジ２２２への書き込みトランザクション２１４の送信を遅らせ得る。
【００２７】
その一方で、書き込みトランザクション２１４が未処理書き込みトランザクションに書き込みトランザクション制限２１２を超させない場合、トランザクション管理装置２３４は、書き込みトランザクション２１４をネットワーク経由で（例えば送信２３８〜２４６を用いて）ルート２１０に送信し得る。書き込みトランザクション２１４を送信する前に、トランザクション管理装置２３４は、エンドポイント２０２と関連付けられた情報を書き込みトランザクション２１４に追加し得る。例えば、トランザクション管理装置２３４は、エンドポイント２０２の構成要素識別情報、書き込みトランザクション２１４のペイロードサイズ、及び／又は書き込みトランザクション２１４を書き込みトランザクション制限（例えば書き込みトランザクション制限２１２）と関連付ける書き込みトランザクション制限識別情報で以って書き込みトランザクション２１４を更新し得る。
【００２８】
その後、ルート２１０が書き込みトランザクション２１４を受信し、例えば、書き込みトランザクション２１４のペイロードをコンピュータシステム上のメモリに書き込むことにより、書き込みトランザクション２１４を完了し得る。書き込みトランザクション２１４の完了を検出すると、帯域幅割り当て装置２３６は、書き込みトランザクション２１４の完了通知２１６を提供し得る。帯域幅割り当て装置２３６は特に、トランザクション管理装置２３４によって書き込みトランザクション２１４に追加された情報を使用して、完了通知２１６を生成し得る。例えば、帯域幅割り当て装置２３６は、書き込みトランザクション２１４内の構成要素識別情報及び／又は書き込みトランザクション制限識別情報を用いて、書き込みトランザクション２１４に完了通知２１６が必要であると特定する。帯域幅割り当て装置２３６は、エンドポイント２０２を完了通知２１６の受信側として、及び／又は書き込みトランザクション２１４を先ほど完了したものとして特定できるようにする書き込みトランザクション２１４からの構成要素識別情報及び／又はペイロードサイズも完了通知２１６に含み得る。
【００２９】
次に帯域幅割り当て装置２３６は、１組の送信２４８〜２５６を用いて、ネットワークを介して完了通知２１６をトランザクション管理装置２３４に回送し得る。帯域幅割り当て装置２３６は、送信２４８を行って完了通知２１６をブリッジ２３２に送り得る。ブリッジ２３２は、送信２５０を行って完了通知２１６をブリッジ２２８に送り得る。そしてブリッジ２２８は、ブリッジ２２６への完了通知２１６の送信２５２を可能にし得る。ブリッジ２２６はその後、ブリッジ２２２への完了通知２１６の送信２５４を可能にし得る。そして最後に、ブリッジ２２２が、トランザクション管理装置２３４（例えばエンドポイント２０２）への完了通知２１６の最終送信２５６を行い得る。
【００３０】
トランザクション管理装置２３４が完了通知２１６を受信した後、トランザクション管理装置２３４は、エンドポイント２０２の１組の未処理書き込みトランザクションから書き込みトランザクション２１４を削除し得る。例えば、トランザクション管理装置２３４は、未処理書き込みトランザクションによって消費されたメモリの量から完了通知２１６におけるペイロードサイズを差し引き得る、及び／又はエンドポイント２０２の未処理書き込みトランザクション数を１減じ得る。
【００３１】
帯域幅割り当て装置２３６及びトランザクション管理装置２３４は引き続き、書き込みトランザクション制限２１２及び完了通知を用いて、エンドポイント２０２からの書き込みトランザクションの送信を管理し得る。例えば、帯域幅割り当て装置２３６及びトランザクション管理装置２３４は、完了したエンドポイント２０２からの書き込みトランザクションの完了通知を生成し、完了通知に基づいてその１組の未処理書き込みトランザクションを更新し、更新された１組の未処理書き込みトランザクション及び書き込みトランザクション制限２１２に基づいてネットワーク経由での後続の書き込みトランザクションの送信を可能にし得るか、又は制限し得る。
【００３２】
エンドポイント２０２と関連付けられた情報を書き込みトランザクション２１４に追加し、完了通知２１６を生成することにより、トランザクション管理装置２３４及び帯域幅割り当て装置２３６は、ネットワーク上の帯域幅を制限するための他のメカニズム（例えば読み出しトランザクション用のメカニズム）から独立して、又は連携して、エンドポイント２０２がネットワーク上の利用可能な帯域幅を全て消費するのを防ぐための一意のメカニズムを提供し得る。ひいては、帯域幅割り当て装置２３６及びトランザクション管理装置２３４は、エンドポイント２０４によるネットワークの帯域幅へのアクセスをしやすくし、及び／又はネットワーク上の構成要素（例えば、エンドポイント２０２〜２０４、ルート２１０など）間の負荷分散を提供し得る。
【００３３】
図３は、開示の実施形態に係るコンピュータシステム内の構成要素のネットワークを経由する書き込みトランザクション３１４の送信を管理するためのシステムである。図２のネットワークと同様、書き込みトランザクション３１４は、ネットワークのエンドポイント３０２によって生成され、エンドポイント３０２、１組のブリッジ３２２〜３３２、及び／又はスイッチ３１８〜３２０、及びルート３１０間での１組の送信３３８〜３４６を使用して、ルート３１０にルーティングされ得る。加えて、エンドポイント３０２からの未処理書き込みトランザクションは、エンドポイント３０２の書き込みトランザクション制限３１２を使用して制限され得る。例えば、書き込みトランザクション制限３１２は、エンドポイント３０２に対する未処理書き込みトランザクションの最大数及び／又は未処理書き込みトランザクションに対するメモリ制限を指定し得る。
【００３４】
更に、書き込みトランザクション制限３１２は、ネットワーク内の帯域幅割り当て装置３３６及びトランザクション管理装置３３４によって実施され得る。ただし、図２の帯域幅割り当て装置２３６及びトランザクション管理装置２３４とは異なり、帯域幅割り当て装置３３６及びトランザクション管理装置３３４はそれぞれ、スイッチ３２０のブリッジ３３２及びスイッチ３１８のブリッジ３２２によって提供され得る。ブリッジ３２２及び３３２並びに／又はネットワーク内の他のホップによる帯域幅割り当て装置３３６及びトランザクション管理装置３３４の実装は、書き込みトランザクション制限３１２を用いてエンドポイント３０２からの書き込みトランザクションに対する帯域幅を制限できない古い構成要素（例えば、エンドポイント３０２〜３０４、ルート３１０）がネットワークに含まれている場合でも、そのネットワークにおける発信元から宛先までのフロー制御を可能にし得る。
【００３５】
かかるフロー制御を提供するために、帯域幅割り当て装置３３６は、そのネットワーク用の負荷分散技法を用いて書き込みトランザクション制限３１２を決定し、書き込みトランザクション制限３１２をエンドポイント３０２に送信し得る。ただし、書き込みトランザクション制限３１２は、書き込みトランザクション制限３１２がエンドポイント３０２に到達する前に、トランザクション管理装置３３４によってインターセプトされ得る。トランザクション管理装置３３４はその後、書き込みトランザクション制限３１２を用いて、書き込みトランザクション３１４の送信及び／又はエンドポイント３０２からの他の書き込みトランザクションの送信を管理し得る。
【００３６】
更に具体的には、トランザクション管理装置３３４は、エンドポイント３０２の１組の未処理書き込みトランザクションを追跡し得る。エンドポイント３０２からの書き込みトランザクション３１４の送信３３８を受信した後、トランザクション管理装置３３４は、未処理書き込みトランザクションを書き込みトランザクション制限３１２と比較して、書き込みトランザクション３１４が未処理書き込みトランザクションに書き込みトランザクション制限３１２を超えさせるかどうかを判定し得る。書き込みトランザクション３１４が未処理書き込みトランザクションに書き込みトランザクション制限３１２を超えさせる場合、トランザクション管理装置３３４は、ブリッジ３２６への書き込みトランザクション３１４の送信３４０を、書き込みトランザクション３１４がその未処理書き込みトランザクションに書き込みトランザクション制限３１２を超えさせなくなるまで（例えば、その未処理書き込みトランザクションの１つ以上の完了通知が受信された後へと）遅らせ得る。
【００３７】
書き込みトランザクション３１４が未処理書き込みトランザクションに書き込みトランザクション制限３１２を超えさせない場合、トランザクション管理装置３３４は、スイッチ３１８のブリッジ３２６への書き込みトランザクション３１４の送信３４０を可能にし得る。次に、ブリッジ３２６が、スイッチ３２０におけるブリッジ３２８への書き込みトランザクション３１４の送信３４２を可能にし、ブリッジ３２８が、ブリッジ３３２への書き込みトランザクション３１４の送信３４４を可能にし得る。例えば、ブリッジ３２６〜３２８は、次のホップのフロー制御クレジット（例えばポストされたＴＬＰフロー制御クレジット）が利用可能になり次第、書き込みトランザクション３１４をネットワーク上の次のホップへと回送し得る。
【００３８】
書き込みトランザクション３１４がブリッジ３３２に到達した後、帯域幅割り当て装置３３６は、エンドポイント３０２及び／又はトランザクション管理装置３３４によって書き込みトランザクション３１４に追加された情報（例えば、構成要素識別情報、ペイロードサイズ、書き込みトランザクション制限識別情報）を使用して書き込みトランザクション３１４の完了通知３１６を生成し得る。その後、ブリッジ３３２が、ルート３１０への書き込みトランザクション３１４の送信３４６を可能にし、帯域幅割り当て装置３３６がエンドポイント３０２に完了通知３１６を送信し得る。例えば、帯域幅割り当て装置３３６は、ブリッジ３２８への完了通知３１６の送信３４８を行い得る。ブリッジ３２８は、ブリッジ３２６への完了通知３１６の送信３５０を行い得る。そしてブリッジ３２６は、ブリッジ３２２への完了通知３１６の送信３５２を可能にし得る。トランザクション管理装置３３４は完了通知３１６をインターセプトし、完了通知３１６を用いて、１組の未処理書き込みトランザクションから書き込みトランザクション３１４を削除し得る。トランザクション管理装置３３４はその後、更新された１組の未処理書き込みトランザクション及び／又は帯域幅割り当て装置３３６からの後続の完了通知を用いて、ネットワーク経由でのエンドポイント３０２からの後続の書き込みトランザクションの送信を管理し得る。
【００３９】
当業者であれば、帯域幅割り当て装置３３６及びトランザクション管理装置３３４が様々な方法で実装され得ることを理解するであろう。例えば、帯域幅割り当て装置３３６及び／又はトランザクション管理装置３３４は、エンドポイント３０２〜３０４、ブリッジ３２２〜３３２、スイッチ３１８〜３２０、及び／又はルート３１０の様々な組み合わせによって提供され得る。加えて、エンドポイント３０４及びルート３１０を含む他の構成要素によるネットワーク経由での送信を管理するのに、帯域幅割り当て装置３３６及び／又はトランザクション管理装置３３４の機能が使用され得る。
【００４０】
図４は、開示の実施形態に係るコンピュータシステム内の構成要素のネットワークを使いやすくするためのプロセスを表すフローチャートを示す。１つ以上の実施形態において、１つ以上のステップの省略、繰り返し、及び／又は、異なる順序での実行が可能である。したがって、図４で示すステップの特定の配列は、実施形態の範囲を限定するように解釈すべきでない。
【００４１】
まず、ネットワーク内の構成要素に書き込みトランザクション制限が設けられる（動作４０２）。この書き込みトランザクション制限は、負荷分散技法を用いて決定され得る。例えば、この書き込みトランザクション制限は、ネットワークにおける利用可能な帯域幅及び／又はその構成要素及び／又はネットワーク上の他の構成要素によるネットワークの使用状況に基づいて計算され得る。この書き込みトランザクション制限はその後、ネットワーク経由で構成要素に送信され、その構成要素及び／又はその構成要素と関連付けられたトランザクション管理装置によって受信され得る。
【００４２】
その構成要素からの書き込みトランザクションの完了が検出され得る（動作４０４）。書き込みトランザクションの完了が検出される場合、その書き込みトランザクションの完了通知が提供される（動作４０６）。完了通知は、この構成要素と関連付けられた情報を用いて、書き込みトランザクションから生成され得る。例えば、書き込みトランザクションは、その構成要素の構成要素識別情報、その書き込みトランザクションのペイロードサイズ、及び／又はその書き込みトランザクションを書き込みトランザクション制限と関連付けるための書き込みトランザクション制限識別情報を含み得る。構成要素識別情報及び／又はペイロードサイズはその後、完了通知に追加されて、構成要素に対する未処理書き込みトランザクションの追跡をしやすくし得る。そして完了通知はその構成要素に送信され得る。構成要素からの書き込みトランザクションが完了したと検出されない場合には、書き込みトランザクションの完了通知が提供されない。
【００４３】
その構成要素によってネットワークが使用されている間は、その構成要素からの書き込みトランザクションの送信が引き続き管理され得る（動作４０８）。例えば、その構成要素がネットワークに接続されており、及び／又はその構成要素とネットワーク上の他の構成要素との間での負荷分散が実行されている限りは、その構成要素からの書き込みトランザクション用帯域幅が制限され得る。書き込みトランザクションの送信が管理される場合には、その構成要素に対する書き込みトランザクション制限及び完了した書き込みトランザクションの完了通知が引き続き提供され得る（動作４０２〜４０６）。その一方で、構成要素からの書き込みトランザクション用帯域幅が制限されなくなる場合、書き込みトランザクション制限及び／又は完了通知が提供されなくなり得る。
【００４４】
図５は、開示の実施形態に係るコンピュータシステム内の構成要素のネットワーク経由で書き込みトランザクションの送信を管理するプロセスを表すフローチャートを示す。１つ以上の実施形態において、１つ以上のステップの省略、繰り返し、及び／又は、異なる順序での実行が可能である。したがって、図５で示すステップの特定の構成は、実施形態の範囲を限定するものとして解釈すべきでない。
【００４５】
まず、ネットワークの構成要素に対する書き込みトランザクション制限が取得される（動作５０２）。書き込みトランザクション制限は、その構成要素に対する未処理書き込みトランザクションの最大数及び／又は未処理書き込みトランザクションに対するメモリ制限（例えばバイト）を指定し得る。次に、その構成要素からネットワークへの書き込みトランザクションが検出され得る（動作５０４）。その構成要素からの書き込みトランザクションが検出されない場合、その書き込みトランザクション制限が維持され、及び／又はその構成要素に対する新しい書き込みトランザクション制限が取得され、その構成要素からの書き込みトランザクションの後続処理に使用される（動作５０２）。
【００４６】
その構成要素からの書き込みトランザクションが検出される場合、その書き込みトランザクション制限が、その構成要素の１組の未処理書き込みトランザクションと比較されて（動作５０６）、その書き込みトランザクションが未処理書き込みトランザクションに書き込みトランザクション制限を超えさせるかどうかが判定される（動作５０８）。その書き込みトランザクションが未処理書き込みトランザクションに書き込みトランザクション制限を超えさせる場合には、ネットワーク経由でのその書き込みトランザクションの送信が制限される（動作５１０）。例えば、ネットワーク上の次のホップへの書き込みトランザクションの送信が、その書き込みトランザクションが未処理書き込みトランザクションに書き込みトランザクション制限を超えさせなくなるまで遅延され得る。
【００４７】
書き込みトランザクションが未処理書き込みトランザクションに書き込みトランザクション制限を超させなくなると、その構成要素と関連付けられた情報（例えば、構成要素識別情報、ペイロードサイズ、書き込みトランザクション制限識別情報）が書き込みトランザクション（動作５１２）に追加され、書き込みトランザクションをその構成要素及び／又は書き込みトランザクション制限と関連付ける。逆に、その書き込みトランザクション制限及び／又は構成要素の特定を可能にする情報が、（例えばその構成要素によって）既に書き込みトランザクションに含められている場合、動作５１２は省略され得る。
【００４８】
次にその書き込みトランザクションは、ネットワーク経由で送信され（動作５１４）、その１組の未処理書き込みトランザクションに追加される（動作５１６）。その書き込みトランザクションの完了通知も、その書き込みトランザクション及び／又は他の書き込みトランザクションを発行することと関連付けられた動作（例えば動作５０２〜５１６）から独立して受信され得る（動作５１８）。例えば、この完了通知が、書き込みトランザクションが書き込みトランザクションの宛先によって処理された後に受信され得るのに対し、他の未処理書き込みトランザクションの完了通知は、動作５０２〜５１６の実行前、実行中、又は実行後にも受信され得る。完了通知が受信される場合、対応する書き込みトランザクションがその１組の未処理書き込みトランザクションから削除される（動作５２０）。完了通知が受信されない場合、対応する書き込みトランザクションがその１組の未処理書き込みトランザクションに維持される。
【００４９】
構成要素からの書き込みトランザクションの送信が引き続き管理され得る（動作５２２）。書き込みトランザクションの送信が管理される場合には、構成要素からの書き込みトランザクションが、書き込みトランザクション制限及び未処理書き込みトランザクションを用いて管理され得る（動作５０４〜５１６）。そして、未処理書き込みトランザクションは、書き込みトランザクションの完了通知に基づいて、独立して及び／又は同時に更新され得る（動作５１８〜５２０）。こうして、構成要素からの書き込み送信の管理は、構成要素のネットワーク接続が切り離されるまで、並びに／又はこの構成要素及び／若しくはネットワーク上の他の構成要素間の負荷分散が実行されなくなるまで継続し得る。
【００５０】
図６は、開示の実施形態に係るコンピュータシステム６００を示す。コンピュータシステム６００は、プロセッサ６０２、メモリ６０４、記憶装置６０６、及び／又は、電子計算装置内に見られる他の構成要素を含む装置に対応してもよい。プロセッサ６０２は、コンピュータシステム６００内の他のプロセッサによる並列処理、及び／又はマルチスレッド動作をサポートできる。コンピュータシステム６００はまた、キーボード６０８、マウス６１０、及びディスプレイ６１２等の入出力（Ｉ／Ｏ）装置も含められる。
【００５１】
コンピュータシステム６００は、本実施形態の様々な構成要素を実行する機能を含み得る。具体的には、コンピュータシステム６００は、コンピュータシステム６００上のハードウェア資源、及びソフトウェア資源の使用を調整するオペレーティング・システム（図示せず）、並びに利用者向けに専用タスクを実行する１つ以上のアプリケーションを含むことができる。利用者用のタスクを実行するため、アプリケーションは、オペレーティング・システムからコンピュータシステム６００上のハードウェア資源の使用を取得でき、並びに、オペレーティング・システムによって提供されるハードウェア・フレームワーク、及び／又はソフトウェア・フレームワークを介してユーザと相互作用することも可能である。
【００５２】
１つ以上の実施形態において、コンピュータシステム６００は、構成要素のネットワークをコンピュータシステムで使いやすくするためのシステムを提供する。このシステムは、ネットワーク上の構成要素に書き込みトランザクション制限を設ける帯域幅割り当て装置を含み得る。このシステムは、構成要素からネットワークへの書き込みトランザクションを検出したときに、書き込みトランザクション制限をその構成要素の１組の未処理書き込みトランザクションと比較するトランザクション管理装置も含み得る。その書き込みトランザクションがその１組の未処理書き込みトランザクションに書き込みトランザクション制限を超えさせる場合、トランザクション管理装置は、ネットワーク経由でのその書き込みトランザクションの送信を制限し得る。
【００５３】
書き込みトランザクションがその１組の未処理書き込みトランザクションに書き込みトランザクション制限を超えさせない場合、トランザクション管理装置はその書き込みトランザクションをネットワーク経由で送信し、その書き込みトランザクションを１組の未処理書き込みトランザクションに追加し得る。次に、帯域幅割り当て装置は、書き込みトランザクションの完了を検出すると、その書き込みトランザクションの完了通知を提供し得る。そしてトランザクション管理装置は、完了通知を受け取ると、その１組の未処理書き込みトランザクションから書き込みトランザクションを削除し得る。
【００５４】
加えて、コンピュータシステム６００の１つ以上の構成要素を遠隔配置し、ネットワークを介して他の構成要素に接続することができる。本実施形態の各種部分（例えば、帯域幅割り当て装置、トランザクション管理装置、構成要素など）は、これらの実施形態を実装する分散型システムの各種ノードにも位置し得る。例えば、本実施形態は、１つ以上のコンピュータシステムにおける遠隔構成要素のネットワーク間での書き込みトランザクションの送信を管理するクラウドコンピューティングシステムを用いて実装され得る。
【００５５】
様々な実施形態の以上の説明は、例示と説明のためにのみ提示されてきた。これらは、網羅的とすること、又は本発明を開示形態に制約することを意図するものではない。したがって、多くの改良、及び変形形態は、当業者に明らかであろう。加えて、上記の開示は、本発明を制限することを意図したものではない。
【図１】
0006035641.tif 000002
【図２】
0006035641.tif 000003
【図３】
0006035641.tif 000004
【図４】
0006035641.tif 000005
【図５】
0006035641.tif 000006
【図６】
0006035641.tif 000007