(57)【特許請求の範囲】
【請求項１】
複数のパケット処理エンジンを有するネットワークプロセッサにおいて使用される処理レートを制御する方法であって、
ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレートを決定するステップと、
ネットワークプロセッサによって受信されるすべての遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するステップと、
時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るステップと、
パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを得るステップと、
総和されたレートを累積的な最適なレートと比較するステップと、
総和されたレートが累積的な最適なレートよりも大きいことに応答して、各パケット処理エンジンの最小の処理レートの総和が総和されたレート以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するステップと、
遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするステップとを含む、方法。
【請求項２】
時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートを得るステップと、
総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するステップと、
遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするステップとをさらに含み、パケット処理エンジンのうちの２つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、パケット処理エンジンの最小のサブセットを決定するステップが、２つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最適なレートを使用してサブセットの最小のサイズを決定することを含む、請求項１に記載の方法。
【請求項３】
パケット処理エンジンのうちの２つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、各パケット処理エンジンのそれぞれの最小の処理レートを決定するステップが、２つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最小の処理レートを決定することを含む、請求項１に記載の方法。
【請求項４】
スケジューリングするステップが、総計の最小のレートの中で遅延を許容するフローを公平にスケジューリングすることを含む、請求項１に記載の方法。
【請求項５】
時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートを得るステップと、
総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するステップと、
遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするステップとをさらに含み、パケット処理エンジンのうちの２つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、パケット処理エンジンの最小のサブセットを決定するステップが、２つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最適なレートを使用してサブセットの最小のサイズを決定することを含む、請求項３に記載の方法。
【請求項６】
総計の最小のレートの中で遅延を許容するフローを公平にスケジューリングするステップと、
ネットワークプロセッサによって受信される時間の制約が厳しいフローの変化に応答して、時間の制約が厳しいフローの総計のレートを決定するステップに戻るステップと、
ネットワークプロセッサによって受信される遅延を許容するフローの変化に応答して、総計の最小のレートを決定するステップに戻るステップと、
時間の制約が厳しいフローまたは遅延を許容するフローのうちのどちらかの変化に応答して、時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートを得るステップに戻るステップとをさらに含む、請求項５に記載の方法。
【請求項７】
複数のパケット処理エンジンと、
ネットワークプロセッサによって受信されるＩＰパケットのフローから、
ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、および
ネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器と、
各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、
遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとを含み、各パケット処理エンジンが、パケット処理エンジンのそれぞれの最小の処理レートでパケットを処理するように動作可能であり、
レート推定器が、時間の制約が厳しいフローの総計のレートと遅延を許容するフローの総計のレートとの総和を含む総計の入力レートを決定し、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るように動作可能であり、レートコントローラが、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを取得し、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを取得し、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するように動作可能であり、ディスパッチャが、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするように動作可能である、レートを制御できるネットワークプロセッサ。
【請求項８】
ディスパッチャが、総計の最小のレートの中で遅延を許容するフローの公平なスケジューリングを実行するようにさらに動作可能であり、パケット処理エンジンのうちの２つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、レート推定器が、２つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最小の処理レートを決定するようにさらに動作可能であり、パケット処理エンジンのうちの２つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、レートコントローラが、２つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最適なレートを使用してサブセットの最小のサイズを決定するようにさらに動作可能であり、レート推定器が、ネットワークプロセッサによって受信される時間の制約が厳しいフローの変化に応答して、時間の制約が厳しいフローの総計のレートを決定し、ネットワークプロセッサによって受信される遅延を許容するフローの変化に応答して、総計の最小のレートを決定し、時間の制約が厳しいフローまたは遅延を許容するフローのうちのどちらかの変化に応答して、時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定するようにさらに動作可能である、請求項７に記載のネットワークプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパケットネットワークを対象とし、特に、特定のデータパケットトラフィックを処理するネットワークプロセッサのエネルギー効率に同時に対処しながら、本明細書においてはサービス品質（ＱｏＳ）を意識した方法と呼ばれる、当該データパケットトラフィックのＱｏＳの約束を尊重する方法で、ネットワークにおいてデータパケットを処理することを対象とする。
【背景技術】
【０００２】
現在のインターネットの使用の大部分は、コンテンツが発信元からいくらかのユーザに広められることからなる。増大する需要を満たすために、サービスプロバイダ（たとえば、Ｇｏｏｇｌｅ）は、異なる地理的地域に分散された何十万台ものマシンを有する大きなデータセンターに投資させられている。同様に、ネットワークプロバイダは、多数の高速ルータおよびファイバーケーブルを設置することによってネットワーク容量を増大させてきた。この大規模なコンテンツ配信に関わるサーバ、コア／エッジルータ、およびアクセスデバイスなどのネットワーキングデバイスは、膨大なエネルギーを消費し、例えば、米国環境保護庁（ＥＰＡ）は、データセンターが２０１１年までに毎年７４億ドルのコストで１０００億キロワット時を消費する可能性があると推定する。
【０００３】
このエネルギーの大量消費を考慮すると、そのコンテンツ配信チェーンで重要な役割を担う現在の高速ルータのエネルギー効率に注目することが望ましい。概して、現在のルータは、データプレーンのタスク（例えば、ルーティング、パケットの分類、暗号化、ＱｏＳなど）の高速な処理のために数百のネットワークプロセッサを備える。それらのネットワークプロセッサ（ＮＰ）のエネルギー消費が有線のパケット転送のエネルギー消費の中心であるので、エネルギー消費を削減する１つの方法は、時間によって変動するトラフィックの量の需要に基づいてネットワークプロセッサを動的にプロビジョニングすることである。例えば、現在のトラフィックの量をルーティングするためのルータの利用率が７０％である場合、ルータは、そのルータの処理レートをそのルータのピークレートの７０％に設定する。この目的で、現在のネットワークプロセッサは、ＮＰがそれらのＮＰの動作周波数（またはレート）を遅くし、それらのＮＰの動作電圧を下げてエネルギーを節約することを可能にする動的電圧スケーリング（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｓｃａｌｉｎｇ）（ＤＶＳ）を使用する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、現在のＤＶＳ技術は、ルーティングされているトラフィックのＱｏＳの約束を考慮に入れておらず、それらの約束は、守られない場合、ネットワークプロバイダの収益に影響を与える可能性がある。したがって、サービス品質保証契約（ＳＬＡ）などのＱｏＳの約束を同時に尊重しながら、ネットワークルータにおけるより優れたエネルギー効率を実現する手段を有することが望ましい。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、遅延を許容するデータパケットトラフィックのエネルギー効率の良いネットワーク処理を対象とする。
【０００６】
本発明の一部の実施形態は、時間的制約が厳しいトラフィックフローのレートと、遅延を許容するトラフィックフローのＱｏＳの要件を満足するための最小のレートとの総計が、ネットワークプロセッサ内のパケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートの総和を超えるかどうかを判定する。肯定的な場合、実施形態は、パケット処理エンジンの累積的なレートが総計のレート（ａｇｇｒｅｇａｔｅ  ｒａｔｅ）を満足するように個々のパケット処理エンジンの処理レートをそれぞれの最小の処理レートに設定し、遅延を許容するフローのそれぞれの最小のレートを満たすようにそれらの遅延を許容するフローをスケジューリングする。
【０００７】
上述の条件を満たさない場合の本発明の一部の実施形態は、時間の制約が厳しいトラフィックフローのレートと遅延を許容するフローのレートとの合計を満たすために必要とされる最小の数のパケット処理エンジンを決定し、その後、使用する。
【０００８】
有利なことに、現在のトラフィックの量の需要に基づいて単純に処理レートを調節する動的なリソースプロビジョニング方法と異なり、遅延を許容するトラフィックのみの処理レートを調整して、集合的トラフィックを処理しているパケット処理エンジンのエネルギー効率の良いレートをもたらすことにより、遅延を許容するトラフィックおよび時間の制約が厳しいトラフィックのＱｏＳの要件が同時に満たされることができつつ、ネットワークプロセッサのエネルギー消費が削減されることができる。
【０００９】
本発明の態様によれば、複数のパケット処理エンジンを有するネットワークプロセッサにおいて使用される処理レートを制御する方法が提供される。方法は、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレートを決定するステップと、ネットワークプロセッサによって受信されるすべての遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレート（ａｇｇｒｅｇａｔｅ  ｍｉｎｉｍｕｍ  ｒａｔｅ）を決定するステップと、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るステップと、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを得るステップと、総和されたレートを累積的な最適なレートと比較するステップと、総和されたレートが累積的な最適なレートよりも大きいことに応答して、各パケット処理エンジンの最小の処理レートの総和が総和されたレート以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するステップと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするステップとを含む。
【００１０】
有利なことに、方法は、時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レート（ａｇｇｒｅｇａｔｅ  ｉｎｐｕｔ  ｒａｔｅ）を得るステップと、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するステップと、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするステップとをさらに含み得る。
【００１１】
本発明の別の態様によれば、レートを制御できるネットワークプロセッサが提供される。ネットワークプロセッサは、複数のパケット処理エンジンと、ネットワークプロセッサによって受信されるＩＰパケットのフローから、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、およびネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器とを含む。ネットワークプロセッサは、各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとをさらに含み、各パケット処理エンジンは、そのパケット処理エンジンのそれぞれの最小の処理レートでパケットを処理するように動作可能である。
【００１２】
有利なことに、レート推定器が、時間の制約が厳しいフローの総計のレートと遅延を許容するフローの総計のレートとの総和を含む総計の入力レートを決定し、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るようにさらに動作可能である可能性がある。レートコントローラが、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを取得し、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを取得し、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するようにさらに動作可能である可能性がある。ディスパッチャが、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするようにさらに動作可能である可能性がある。
【００１３】
本発明のさらに別の態様によれば、複数のパケット処理エンジンを有するネットワークプロセッサのためのコントローラが提供される。コントローラは、ネットワークプロセッサによって受信されるＩＰパケットのフローから、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、およびネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器を含む。コントローラは、各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとをさらに含む。
【００１４】
本発明の上述のおよびその他の目的、特徴、および利点は、添付の図面に示される好ましい実施形態の以下のより具体的な説明から明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】単一のパケット処理エンジンの電力プロファイルを示す図である。
【図２】本発明の実施形態によるレートを制御できるネットワークプロセッサを示す図である。
【図３】図２のネットワークプロセッサで使用される処理レートを制御する方法を示す図である。
【発明を実施するための形態】
【００１６】
図面において、同様の特徴は、同様の参照記号によって表される。
【００１７】
本発明の実施形態は、遅延を許容するパケットデータトラフィックのエネルギー効率の良いネットワーク処理を対象とする。そのようなトラフィックの例は、映像配信（ＮｅｔＦｌｉｘ）、学術データのやり取り（高解像度画像）、データセンターの同期などの幅広い遅延を許容するコンテンツ配信アプリケーションに当てはまる遅延を許容する大容量データ（ｄｅｌａｙ  ｔｏｌｅｒａｎｔ  ｂｕｌｋ  ｄａｔａ）（ＤＴＢ）である。現在の需要に基づいて処理レートを調節する既存の動的なリソースプロビジョニング方法とは異なり、本発明は、ＤＴＢトラフィックを意図的に調整して（引き続きアプリケーションレベルのＱｏＳを満足して）中間ルータにおける総計のデータレート（ａｇｇｒｅｇａｔｅ  ｄａｔａ  ｒａｔｅ）全体を引き下げる。結果として、ネットワークプロセッサの動作電圧を下げ、それによって、エネルギー消費を大幅に削減することができる。
【００１８】
本発明の実施形態は、データプレーンのタスクの高速な処理のために数百のネットワークプロセッサを通常備える現在の高速ルータに応用される。
【００１９】
図１は、通常のネットワークプロセッサによって数百個が使用され得る単一のパケット処理エンジン（ＰＰＥ）の電力プロファイル１００のグラフである。グラフは、処理されるパケット当たりの処理エネルギー対処理レートを示す。ここで、レートに依存しない電力Ｐｗが原因で、電力プロファイル１００が、最適なレートＲＯで最小の処理されるパケット当たりのエネルギーを有し、この最適なレートＲＯ未満ではいかなるエネルギーの節約も達成されることができないことが分かる。結論として、この最適なレートＲＯが、パケットを転送するために最も少ないエネルギーを消費する。測定によって、各ＰＰＥに関して最適なレートＲＯを見つけることができる。
【００２０】
所与のルータに関して、そのルータの総計された受信トラフィックは、２種類のトラフィック、すなわち、時間の制約が厳しいパケットおよび遅延を許容するパケットから構成される。ＲＡと表される総計されたレートは、（１）ＲＴと表される時間の制約が厳しいパケットのレートと、（２）ＲＤと表される遅延を許容するパケットのレートとの総和である。
【００２１】
所与のルータに関して、遅延を許容するトラフィックの総計されたレートＲＤを測定することができる。しかし、コアルータにおいて、フローごとの情報を保持することは、難しい可能性がある。この問題に対処するために、本発明者らは、フローのパケットのうちの１つまたは複数にフローの必要とされる最小のレートを含めることを提案する。例えば、入口ルータ（ｉｎｇｒｅｓｓ  ｒｏｕｔｅｒ）が、この情報をパケットヘッダに挿入するか、または、入口ルータにおいて利用可能でない場合は、この情報は、そうではなくて別のルータ、アクセスデバイス、ホストノードなどにおいて挿入され得る。さらに、このパケットごとのレート情報は、中間ルータにおいて公平な帯域幅のスケジューリングをサポートすることができるように、コアステートレスフェアキューイング（Ｃｏｒｅ−Ｓｔａｔｅｌｅｓｓ  Ｆａｉｒ  Ｑｕｅｕｉｎｇ）（ＣＳＦＱ）アルゴリズムにおけるような公平なレート情報で増強され得る。
【００２２】
図２は、本発明の実施形態によるレートを制御できるネットワークプロセッサ２００を示す。ネットワークプロセッサ２００は、ＩＰデータパケットの入力フロー２０４を受信し、それらのパケットのＩＰヘッダを抽出し、抽出されたＩＰパケットヘッダの第１のフロー２０６をレート推定器２１０に出力し、ＩＰパケットの第２のフロー２０８をパケットバッファ２１２に出力するパケットヘッダ抽出器２０２を含む。レート推定器２１０およびパケットバッファ２１２は、この目的でパケットヘッダ抽出器２０２にそれぞれ接続される。入力フロー２０４は、時間の制約が厳しいデータパケットトラフィックの１つまたは複数のフローＦＴと、遅延を許容するデータパケットトラフィックの１つまたは複数のフローＦＤとを含み得る。
【００２３】
レート推定器２１０は、抽出されたＩＰヘッダの第１のフロー２０６を受信し、時間の制約が厳しいフローＦＴおよび遅延を許容するフローＦＤのヘッダを含む抽出されたＩＰヘッダを用いて第１のフロー２０６の総計のレートＲＡを推定する。総計のレートＲＡは、時間窓指数移動平均を用いて決定され、例えば、１０ミリ秒から２秒までの範囲の窓が使用される。時間窓中に到着するパケットの、それらのパケットのそれぞれのヘッダに指定されたパケットサイズの総和を時間窓の継続時間で割ったものがサンプルの総計のレートをもたらし、このサンプルが、総計のレートＲＡの指数移動平均を得るために、周期的に取得され、それぞれが計算のための時間によって変わる重みを有するその他のそのようなサンプルと平均される。同様に、時間の制約が厳しいフローの総計のレートＲＴだけの指数移動平均が計算される。
【００２４】
パケットヘッダ抽出器２０２によって実行される機能は、レート推定器がネットワークプロセッサ２００によって受信されたＩＰデータパケットの入力フロー２０４にその上述の機能を実行するようにレート推定器２１０に含まれ得ることに留意されたい。
【００２５】
また、レート推定器２１０は、遅延を許容するフローＦＤに関するＱｏＳの約束を満たすために必要とされる最小のレートＲＤ＿ＱＯＳを決定する。この決定は、それぞれの遅延を許容するフローＦＤの抽出されたヘッダから最小のレートの指示を読み取り、これらのレートの指示を総和して最小のレートＲＤ＿ＱＯＳを得ることによってなされる。ＩＰヘッダ内のサービスの種類（Ｔｙｐｅ−ｏｆ−Ｓｅｒｖｉｃｅ）バイトが、ＩＰヘッダで最小のレートの指示を行うために使用される。例えば、仮数に４ビットを用い、指数に４ビットを用いる浮動小数点表現を使用することによって、１Ｋｂｐｓから６５Ｍｂｐｓまでの間の任意のレートが、６．２５％の精度で表現され得る。最小のレートの指示を行うその他の方法は、ＩＰバージョン４（ＩＰｖ４）の場合にはＩＰオプション（ＩＰ  ｏｐｔｉｏｎ）を、またはＩＰバージョン６（ＩＰｖ６）の場合にはホップバイホップ拡張ヘッダ（ｈｏｐ−ｂｙ−ｈｏｐ  ｅｘｔｅｎｓｉｏｎ  ｈｅａｄｅｒ）を使用することである。
【００２６】
最小のレートＲＤ＿ＱＯＳは、ネットワーク処理２００によって処理されている遅延を許容するフローのすべてを、例えば、それぞれのそのようなフローに関連する対応する最小のレートの指示のリストまたはテーブルで追跡することによって最新に保たれる。新しい遅延を許容するフローのデータパケットがネットワークプロセッサ２００によって受信されるか、または既存のフローのデータパケットがネットワークプロセッサ２００によって受信されなくなるとき、この追跡メカニズムが、そのような変化を反映するために更新され、最小のレートＲＤ＿ＱＯＳが、それに応じて再計算される。例えば、ネットワークプロセッサ２００が任意の遅延を許容するフローの最小のレートの指示の逆数に等しい継続時間の間そのフローから新しいパケットを受信しなかった場合のように、少なくともその最小のレートの指示の逆数に等しい継続時間の間非アクティブであった任意の遅延を許容するフローは、レート推定器２１０によるそのような非アクティブ状態の検出によって引き起こされる、最小のレートＲＤ＿ＱＯＳのその後の再計算からそのフローの最小のレートの指示を除外させる。
【００２７】
レート推定器２１０は、総計のレートＲＡ、時間の制約が厳しいフローの総計のレートＲＴ、および最小のレートＲＤ＿ＱＯＳをレートコントローラ２１６へのコネクション２１４を介してレートコントローラ２１６に提供し、抽出されたＩＰパケットヘッダをディスパッチャ２２４とレート推定器２１０の間のコネクション２１８を介してディスパッチャ２２４に転送する。
【００２８】
レートコントローラ２１６は、最適なレートＲＯを得るための手段２２０を有する。そのような手段２２０は、メモリから最適なレートＲＯの値を読み取ることを含み、値は、そのメモリに記憶されており、ある範囲の処理レートにわたるエネルギー利用率の測定によって手動か、または同様の手順、およびネットワークプロセッサによって使用されるパケット処理エンジンの最適なレートＲＯを決定するための、ネットワークプロセッサ２００の内部もしくは外部の回路によって自動的にかのいずれかで決定されている。
【００２９】
レートコントローラ２１６は、ディスパッチャ２２４へのコネクション２２２と、マルチコア処理エンジン２２６へのコネクション２３４とを有する。マルチコア処理エンジンは、ディスパッチャからＩＰパケットヘッダを受信するための、ディスパッチャへの複数の入力コネクション２３６と、処理されたＩＰパケットをパケットアグリゲータ２３８に送信するための、パケットアグリゲータ２３８への複数の出力コネクション２４０とを有する。マルチコア処理エンジン２２６は、第１のパケット処理エンジン（ＰＰＥ）２２８、第２のＰＰＥ２３０、および第ＮのＰＰＥ２３２が図に示されているＮ個の複数のＰＰＥを含む。ＰＰＥ２２８から２３２は、マルチコア処理エンジン２２６によって受信されたデータパケットヘッダを処理する目的で並列に構成される。各ＰＰＥは、複数の入力コネクション２３６のうちのそれぞれのコネクションと、複数の出力コネクション２４０のうちのそれぞれのコネクションとに結合される。各ＰＰＥは、マルチコア処理エンジン２２６とレートコントローラ２１６の間のコネクション２３４を介してレートコントローラ２１６によってマルチコア処理エンジン２２６に提供されるＰＰＥのレートＲＰＰＥを受信するための入力を有する。各ＰＰＥは、ＩＰパケットヘッダに対してさまざまなデータ処理のタスクを実行して、パケットの処理、パケットの分類、パケットの転送などのデータプレーンのタスクを行うことができる。
【００３０】
ディスパッチャ２２４は、レート推定器２１０からＩＰパケットヘッダを受信するか、または代替的に、ディスパッチャ２２４は、パケットヘッダ抽出器２０２からＩＰパケットヘッダを直接受信し、各ＩＰパケットヘッダをＰＰＥのうちの１つに選択的に転送する可能性がある。どのＰＰＥが所与のＩＰパケットヘッダに対して選択されるか、および遅延を許容するフローＦＤに関する転送が行われるレートが、その選択およびレートに影響を与えるレートコントローラ２１６の機能が説明された後でさらに説明される。
【００３１】
図３を参照して後でより詳細に説明されるように、場合によっては、総計のレートＲＡ、時間の制約が厳しいフローの総計のレートＲＴ、最小のレートＲＤ＿ＱＯＳ、および最適なレートＲＯに応じて、レートコントローラ２１６は、ディスパッチャ２２４がＩＰパケットヘッダを転送する先のＰＰＥをディスパッチャ２２４がそこから選択することができるＫ個のＰＰＥを決定する。レートコントローラ２１６は、ディスパッチャ２２４へのそのレートコントローラ２１６のコネクション２２２を介してディスパッチャ２２４に数Ｋを知らせる。Ｎ−Ｋ個ある残りのＰＰＥは、数Ｋが増やされるまでいかなるＩＰパケットヘッダも受信せず、ＰＰＥのそれぞれに設けられたクロックゲーティング機能によってエネルギーを節約するアイドル状態に入る。クロックゲーティング機能は、ＰＰＥが、アクティブであればＩＰパケットヘッダを受信しているそのＰＰＥのデータ入力の非アクティブ状態を検出し、データ処理動作をしていないときにもクロック信号のサイクルによって引き起こされる電力消費を最小化するためにＰＰＥへのクロック信号を止めることを可能にする回路である。数Ｋが決定されていないか、またはディスパッチャ２２４に送信されていない場合、ディスパッチャ２２４は、Ｎ個の複数のＰＰＥすべてからＰＰＥを選択する。
【００３２】
また、図３を参照して後でより詳細に説明されるように、場合によっては、時間の制約が厳しいフローの総計のレートＲＴ、最小のレートＲＤ＿ＱＯＳ、および最適なレートＲＯに応じて、レートコントローラ２１６は、マルチコア処理エンジン２２６に提供されるべきＰＰＥのレートＲＰＰＥを決定する。そのような場合、レートコントローラ２１６は、ディスパッチャ２２４に最小のレートＲＤ＿ＱＯＳをさらに提供するか、または代替的に、最小のレートＲＤ＿ＱＯＳは、そのような場合に使用するためにレート推定器２１０によってディスパッチャ２２４に提供される可能性がある。ＰＰＥのレートＲＰＰＥがマルチコア処理エンジン２２６に提供されない場合、最適なレートＲＯが、デフォルトの処理レートとしてＰＰＥによって代わりに使用され、この最適なレートＲＯは、レートコントローラ２１６によって、または代替的に、最適なレートＲＯを取得するための上述の手段２２０によって提供される。この実施形態においては、同じＰＰＥのレートＲＰＰＥがＰＰＥのそれぞれに与えられる。しかし、その他の実施形態において、ＰＰＥのうちの１つまたは複数はそれぞれのＰＰＥのレートを受信する可能性があり、そのそれぞれのＰＰＥのレートは、１つまたは複数のその他のＰＰＥのレートと比較して一意的であり、ディスパッチャ２２４が、そのＰＰＥへのＩＰヘッダパケットのそのディスパッチャ２２４の対応するディスパッチのレートをそれに応じて調節するために知らされる。
【００３３】
ディスパッチャ２２４の動作に戻ると、ディスパッチャ２２４は、遅延を許容するトラフィックフローＦＤのＩＰパケットヘッダの公平なスケジューリング（ｆａｉｒ  ｓｃｈｅｄｕｌｉｎｇ）を、上述のようにそれぞれのそのようなフローの対応するＩＰパケットヘッダにおいて指定されるそれぞれのそのようなフローの必要とされる最小のレートに基づいて実行するように動作可能である。ディスパッチャ２２４がそのようなスケジューリングを実行するようにレートコントローラ２１６によって指示される場合、ディスパッチャ２２４は、そのように動作し、そのようなフローの累積的なレートを最小のレートＲＤ＿ＱＯＳ内に保つ。そうでない場合、ディスパッチャ２２４は、遅延を許容するフローＦＤのＩＰパケットヘッダを、そのディスパッチャ２２４がそれらのＩＰパケットヘッダを受信するときにディスパッチする。どちらの場合も、この実施形態においては、ディスパッチャ２２４は、時間の制約が厳しいフローＦＴに関するスケジューリングは実行しないが、そのようなスケジューリングは、それらのフローのＱｏＳの要件がそのようなスケジューリングが実行されることによって満たされている限り、その他の実施形態においては行われる可能性がある。ＰＰＥの選択に関して、ディスパッチャ２２４は、上述のように、Ｎ個の複数のＰＰＥすべてか、またはＫ個のＰＰＥのサブセットかのいずれかからＩＰパケットヘッダを転送すべきＰＰＥを選択する。選択は、ラウンドロビン式に行われる。１つまたは複数のＰＰＥが異なる処理レートを有する場合、ディスパッチャ２２４は、現在のラウンドロビンサイクルで利用可能なＰＰＥの処理レートと、ＩＰパケットヘッダが属するフローの必要とされる最小のレートとに基づいて、所与のＩＰパケットヘッダのための適切なＰＰＥを選択する。
【００３４】
パケットアグリゲータ２３８は、マルチコア処理エンジン２２６から処理されたＩＰパケットヘッダを受信し、パケットバッファへのコネクション２４２を介してパケットバッファからＩＰパケットを受信し、各ＩＰパケットを、そのＩＰパケットの既存のＩＰパケットヘッダを対応する処理されたＩＰパケットヘッダで置き換えることによって再構築する。次に、パケットアグリゲータ２３８は、結果として得られた処理されたＩＰパケットを、例えば、ルーティングのためにルータのスイッチングファブリック（ｓｗｉｔｃｈｉｎｇ  ｆａｂｒｉｃ）に、またはさらなる処理のために別のネットワークプロセッサに出力する。
【００３５】
パケットバッファ２１２によって提供される機能はパケットアグリゲータ２３８によって実行される可能性があり、またはディスパッチャ２２４が上述のようにＩＰパケットヘッダだけではなく、ＩＰパケット全体を処理するとした場合、パケットバッファ２１２は必要とされないことに留意されたい。さらに、パケットバッファ２１２の機能で強化されるかまたは強化されないかのいずれかのパケットアグリゲータ２３８によって提供される機能は、マルチコア処理エンジン２２６によって実行され得る。その上さらに、複数のパケット処理エンジンを有するネットワークプロセッサのためのコントローラが、レート推定器２１０、レートコントローラ２１６、およびディスパッチャ２２４だけを含む可能性がある。その場合、およびコントローラがＩＰパケット全体を処理するとした場合、パケットヘッダ抽出器２０２、パケットバッファ２１２、およびパケットアグリゲータ２３８の機能は必要とされない。
【００３６】
図３を参照して、以降、ネットワークプロセッサ２００で使用される処理レートを制御する方法３００が説明される。開始３０２の後、方法３００は、ネットワークプロセッサによって受信される時間の制約が厳しいフローのレートＲＴおよび遅延を許容するフローと時間の制約が厳しいフローとの総計のレートＲＡを決定する（３０４）。次に、方法３００は、すべての遅延を許容するフローＦＤのＱｏＳの要件を満たす総計の最小のレートＲＤ＿ＱＯＳを決定する（３０６）。これらの決定３０４、３０６の順序は方法３００の結果に影響することなく逆にされ得ることに留意されたい。次いで、時間の制約が厳しいフローのレートＲＴと最小のレートＲＤ＿ＱＯＳとのレートの総和が、最適なレートＲＯのＮ倍以下であるか否かの判定３０８が行われ、ここで、ＮはネットワークプロセッサのＰＰＥの数である。総計のレートＲＡは、この判定３０６が肯定的な結果を生じない場合は必要とされず、したがって、総計のレートＲＡの決定は、決定３０４から省略され、この判定３０８の結果が肯定的であることに応じてなされる可能性があることに留意されたい。
【００３７】
判定３０８が肯定的な結果を生じる場合、最小の数であるＫ個のＰＰＥが、総計のレートＲＡが最適なレートＲＯのＫ倍以下であるように決定される（３１０）。そして、ディスパッチャ２２４が、ＩＰパケットヘッダを転送すべきＰＰＥを選択するときに、複数のＰＰＥのうちのサイズＫのＰＰＥのサブセットを使用するように指示される（３１２）。それから、方法３００は終了する（３１４）が、方法３００は、通常、ある期間の後、またはネットワークプロセッサへのＩＰパケットの入力フロー２０４の変化に応じて開始３０２に戻る。
【００３８】
判定３０８が否定的な結果を生じる場合、最小のＰＰＥのレートＲＰＰＥが、その最小のＰＰＥのレートＲＰＰＥのＮ倍が時間の制約が厳しいフローのレートＲＴと最小のレートＲＤ＿ＱＯＳとの総和を超えるように決定される（３１６）。そして、ディスパッチャ２２４が、遅延を許容するフローに対して、それらのフローのそれぞれの最小のレートにしたがい、最小のレートＲＤ＿ＱＯＳに沿って公平なスケジューリングを実行するように指示される。それから、ＰＰＥの処理レートが、ＰＰＥのレートＲＰＰＥに設定され（３２０）、方法３００は終了する（３１４）。通常、方法３００は、ある期間の後、またはネットワークプロセッサへのＩＰパケットの入力フロー２０４の変化に応じて開始３０２に戻ることによって再開する。
【００３９】
有利なことに、本発明の実施形態は、遅延を許容する大容量データの転送のＱｏＳを意識した処理レートの調整によって中間ルータのエネルギー消費を大幅に下げることができる。これらの実施形態は、通信媒体を介した物理的な送信／受信レートを引き下げる等、大容量データの転送のエネルギー消費を低減して遅延を許容する大容量データの配信のエネルギー効率をさらに向上させるためのその他の技術と併せて使用され得る。
【００４０】
多くの修正、変更、および適応が、特許請求の範囲において定義されている本発明の範囲を逸脱することなく上述の発明の実施形態に対してなされ得る。
【図１】
0005596225.tif 000002
【図２】
0005596225.tif 000003
【図３】
0005596225.tif 000004