複数のパケット処理エンジンを有するネットワークプロセッサにおいて使用される処理レートを制御する方法であって、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレートを決定するステップと、ネットワークプロセッサによって受信されるすべての遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するステップと、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るステップと、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを得るステップと、総和されたレートを累積的な最適なレートと比較するステップと、総和されたレートが累積的な最適なレートよりも大きいことに応答して、各パケット処理エンジンの最小の処理レートの総和が総和されたレート以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するステップと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするステップとを含む、方法。時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートを得るステップと、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するステップと、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするステップとをさらに含み、パケット処理エンジンのうちの2つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、パケット処理エンジンの最小のサブセットを決定するステップが、2つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最適なレートを使用してサブセットの最小のサイズを決定することを含む、請求項1に記載の方法。パケット処理エンジンのうちの2つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、各パケット処理エンジンのそれぞれの最小の処理レートを決定するステップが、2つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最小の処理レートを決定することを含む、請求項1に記載の方法。スケジューリングするステップが、総計の最小のレートの中で遅延を許容するフローを公平にスケジューリングすることを含む、請求項1に記載の方法。時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートを得るステップと、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するステップと、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするステップとをさらに含み、パケット処理エンジンのうちの2つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、パケット処理エンジンの最小のサブセットを決定するステップが、2つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最適なレートを使用してサブセットの最小のサイズを決定することを含む、請求項2に記載の方法。総計の最小のレートの中で遅延を許容するフローを公平にスケジューリングするステップと、ネットワークプロセッサによって受信される時間の制約が厳しいフローの変化に応答して、時間の制約が厳しいフローの総計のレートを決定するステップに戻るステップと、ネットワークプロセッサによって受信される遅延を許容するフローの変化に応答して、総計の最小のレートを決定するステップに戻るステップと、時間の制約が厳しいフローまたは遅延を許容するフローのうちのどちらかの変化に応答して、時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートを得るステップに戻るステップとをさらに含む、請求項5に記載の方法。複数のパケット処理エンジンと、ネットワークプロセッサによって受信されるIPパケットのフローから、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、およびネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器と、各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとを含み、各パケット処理エンジンが、パケット処理エンジンのそれぞれの最小の処理レートでパケットを処理するように動作可能である、レートを制御できるネットワークプロセッサ。レート推定器が、時間の制約が厳しいフローの総計のレートと遅延を許容するフローの総計のレートとの総和を含む総計の入力レートを決定し、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るように動作可能であり、レートコントローラが、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを取得し、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを取得し、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するように動作可能であり、ディスパッチャが、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするように動作可能である、請求項7に記載のネットワークプロセッサ。ディスパッチャが、総計の最小のレートの中で遅延を許容するフローの公平なスケジューリングを実行するようにさらに動作可能であり、パケット処理エンジンのうちの2つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、レート推定器が、2つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最小の処理レートを決定するようにさらに動作可能であり、パケット処理エンジンのうちの2つ以上が、エネルギー効率に対して実質的に同様の最適なレートを有し、レートコントローラが、2つ以上のパケット処理エンジンのうちの各パケット処理エンジンに対して同じ最適なレートを使用してサブセットの最小のサイズを決定するようにさらに動作可能であり、レート推定器が、ネットワークプロセッサによって受信される時間の制約が厳しいフローの変化に応答して、時間の制約が厳しいフローの総計のレートを決定し、ネットワークプロセッサによって受信される遅延を許容するフローの変化に応答して、総計の最小のレートを決定し、時間の制約が厳しいフローまたは遅延を許容するフローのうちのどちらかの変化に応答して、時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定するようにさらに動作可能である、請求項8に記載のネットワークコントローラ。複数のパケット処理エンジンを有するネットワークプロセッサのためのコントローラであって、ネットワークプロセッサによって受信されるIPパケットのフローから、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、およびネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器と、各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとを含む、コントローラ。しかし、現在のDVS技術は、ルーティングされているトラフィックのQoSの約束を考慮に入れておらず、それらの約束は、守られない場合、ネットワークプロバイダの収益に影響を与える可能性がある。したがって、サービス品質保証契約SLAなどのQoSの約束を同時に尊重しながら、ネットワークルータにおけるより優れたエネルギー効率を実現する手段を有することが望ましい。本発明の実施形態は、遅延を許容するデータパケットトラフィックのエネルギー効率の良いネットワーク処理を対象とする。本発明の一部の実施形態は、時間的制約が厳しいトラフィックフローのレートと、遅延を許容するトラフィックフローのQoSの要件を満足するための最小のレートとの総計が、ネットワークプロセッサ内のパケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートの総和を超えるかどうかを判定する。肯定的な場合、実施形態は、パケット処理エンジンの累積的なレートが総計のレートaggregaterateを満足するように個々のパケット処理エンジンの処理レートをそれぞれの最小の処理レートに設定し、遅延を許容するフローのそれぞれの最小のレートを満たすようにそれらの遅延を許容するフローをスケジューリングする。上述の条件を満たさない場合の本発明の一部の実施形態は、時間の制約が厳しいトラフィックフローのレートと遅延を許容するフローのレートとの合計を満たすために必要とされる最小の数のパケット処理エンジンを決定し、その後、使用する。有利なことに、現在のトラフィックの量の需要に基づいて単純に処理レートを調節する動的なリソースプロビジョニング方法と異なり、遅延を許容するトラフィックのみの処理レートを調整して、集合的トラフィックを処理しているパケット処理エンジンのエネルギー効率の良いレートをもたらすことにより、遅延を許容するトラフィックおよび時間の制約が厳しいトラフィックのQoSの要件が同時に満たされることができつつ、ネットワークプロセッサのエネルギー消費が削減されることができる。本発明の態様によれば、複数のパケット処理エンジンを有するネットワークプロセッサにおいて使用される処理レートを制御する方法が提供される。方法は、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレートを決定するステップと、ネットワークプロセッサによって受信されるすべての遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートaggregateminimumrateを決定するステップと、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るステップと、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを得るステップと、総和されたレートを累積的な最適なレートと比較するステップと、総和されたレートが累積的な最適なレートよりも大きいことに応答して、各パケット処理エンジンの最小の処理レートの総和が総和されたレート以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するステップと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするステップとを含む。有利なことに、方法は、時間の制約が厳しいフローと遅延を許容するフローとの総計のレートを決定して総計の入力レートaggregateinputrateを得るステップと、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するステップと、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするステップとをさらに含み得る。本発明の別の態様によれば、レートを制御できるネットワークプロセッサが提供される。ネットワークプロセッサは、複数のパケット処理エンジンと、ネットワークプロセッサによって受信されるIPパケットのフローから、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、およびネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器とを含む。ネットワークプロセッサは、各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとをさらに含み、各パケット処理エンジンは、そのパケット処理エンジンのそれぞれの最小の処理レートでパケットを処理するように動作可能である。有利なことに、レート推定器が、時間の制約が厳しいフローの総計のレートと遅延を許容するフローの総計のレートとの総和を含む総計の入力レートを決定し、時間の制約が厳しいフローの総計のレートと総計の最小のレートとを総和して総和されたレートを得るようにさらに動作可能である可能性がある。レートコントローラが、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを取得し、パケット処理エンジンのエネルギー効率に対してそれぞれの最適なレートを合計して累積的な最適なレートを取得し、総和されたレートが累積的な最適なレート以下であることに応答して、総計の入力レートがパケット処理エンジンの最小のサブセットのパケット処理エンジンのそれぞれの最適なレートの総和以下であるようにパケット処理エンジンの最小のサブセットを決定するようにさらに動作可能である可能性がある。ディスパッチャが、遅延を許容するフローおよび時間の制約が厳しいフローの処理をサブセットのパケット処理エンジンのみにスケジューリングするようにさらに動作可能である可能性がある。本発明のさらに別の態様によれば、複数のパケット処理エンジンを有するネットワークプロセッサのためのコントローラが提供される。コントローラは、ネットワークプロセッサによって受信されるIPパケットのフローから、ネットワークプロセッサによって受信される時間の制約が厳しいフローの総計のレート、およびネットワークプロセッサによって受信される遅延を許容するフローのそれぞれのサービス品質の要件を満たす総計の最小のレートを決定するためのレート推定器を含む。コントローラは、各パケット処理エンジンの最小の処理レートの総和が時間の制約が厳しいフローの総計のレートと総計の最小のレートとの総和以上であるように各パケット処理エンジンのそれぞれの最小の処理レートを決定するためのレートコントローラと、遅延を許容するフローのそれぞれのサービス品質の要件を満足するようにパケット処理エンジンによる遅延を許容するフローの処理をスケジューリングするためのディスパッチャとをさらに含む。本発明の上述のおよびその他の目的、特徴、および利点は、添付の図面に示される好ましい実施形態の以下のより具体的な説明から明らかになるであろう。図面において、同様の特徴は、同様の参照記号によって表される。本発明の実施形態は、遅延を許容するパケットデータトラフィックのエネルギー効率の良いネットワーク処理を対象とする。そのようなトラフィックの例は、映像配信NetFlix、学術データのやり取り高解像度画像、データセンターの同期などの幅広い遅延を許容するコンテンツ配信アプリケーションに当てはまる遅延を許容する大容量データdelaytolerantbulkdataDTBである。現在の需要に基づいて処理レートを調節する既存の動的なリソースプロビジョニング方法とは異なり、本発明は、DTBトラフィックを意図的に調整して引き続きアプリケーションレベルのQoSを満足して中間ルータにおける総計のデータレートaggregatedatarate全体を引き下げる。結果として、ネットワークプロセッサの動作電圧を下げ、それによって、エネルギー消費を大幅に削減することができる。本発明の実施形態は、データプレーンのタスクの高速な処理のために数百のネットワークプロセッサを通常備える現在の高速ルータに応用される。図1は、通常のネットワークプロセッサによって数百個が使用され得る単一のパケット処理エンジンPPEの電力プロファイル100のグラフである。グラフは、処理されるパケット当たりの処理エネルギー対処理レートを示す。ここで、レートに依存しない電力Pwが原因で、電力プロファイル100が、最適なレートROで最小の処理されるパケット当たりのエネルギーを有し、この最適なレートRO未満ではいかなるエネルギーの節約も達成されることができないことが分かる。結論として、この最適なレートROが、パケットを転送するために最も少ないエネルギーを消費する。測定によって、各PPEに関して最適なレートROを見つけることができる。所与のルータに関して、そのルータの総計された受信トラフィックは、2種類のトラフィック、すなわち、時間の制約が厳しいパケットおよび遅延を許容するパケットから構成される。RAと表される総計されたレートは、1RTと表される時間の制約が厳しいパケットのレートと、2RDと表される遅延を許容するパケットのレートとの総和である。所与のルータに関して、遅延を許容するトラフィックの総計されたレートRDを測定することができる。しかし、コアルータにおいて、フローごとの情報を保持することは、難しい可能性がある。この問題に対処するために、本発明者らは、フローのパケットのうちの1つまたは複数にフローの必要とされる最小のレートを含めることを提案する。例えば、入口ルータingressrouterが、この情報をパケットヘッダに挿入するか、または、入口ルータにおいて利用可能でない場合は、この情報は、そうではなくて別のルータ、アクセスデバイス、ホストノードなどにおいて挿入され得る。さらに、このパケットごとのレート情報は、中間ルータにおいて公平な帯域幅のスケジューリングをサポートすることができるように、コアステートレスフェアキューイングCore-StatelessFairQueuingCSFQアルゴリズムにおけるような公平なレート情報で増強され得る。図2は、本発明の実施形態によるレートを制御できるネットワークプロセッサ200を示す。ネットワークプロセッサ200は、IPデータパケットの入力フロー204を受信し、それらのパケットのIPヘッダを抽出し、抽出されたIPパケットヘッダの第1のフロー206をレート推定器210に出力し、IPパケットの第2のフロー208をパケットバッファ212に出力するパケットヘッダ抽出器202を含む。レート推定器210およびパケットバッファ212は、この目的でパケットヘッダ抽出器202にそれぞれ接続される。入力フロー204は、時間の制約が厳しいデータパケットトラフィックの1つまたは複数のフローFTと、遅延を許容するデータパケットトラフィックの1つまたは複数のフローFDとを含み得る。レート推定器210は、抽出されたIPヘッダの第1のフロー206を受信し、時間の制約が厳しいフローFTおよび遅延を許容するフローFDのヘッダを含む抽出されたIPヘッダを用いて第1のフロー206の総計のレートRAを推定する。総計のレートRAは、時間窓指数移動平均を用いて決定され、例えば、10ミリ秒から2秒までの範囲の窓が使用される。時間窓中に到着するパケットの、それらのパケットのそれぞれのヘッダに指定されたパケットサイズの総和を時間窓の継続時間で割ったものがサンプルの総計のレートをもたらし、このサンプルが、総計のレートRAの指数移動平均を得るために、周期的に取得され、それぞれが計算のための時間によって変わる重みを有するその他のそのようなサンプルと平均される。同様に、時間の制約が厳しいフローの総計のレートRTだけの指数移動平均が計算される。パケットヘッダ抽出器202によって実行される機能は、レート推定器がネットワークプロセッサ200によって受信されたIPデータパケットの入力フロー204にその上述の機能を実行するようにレート推定器210に含まれ得ることに留意されたい。また、レート推定器210は、遅延を許容するフローFDに関するQoSの約束を満たすために必要とされる最小のレートRD_QOSを決定する。この決定は、それぞれの遅延を許容するフローFDの抽出されたヘッダから最小のレートの指示を読み取り、これらのレートの指示を総和して最小のレートRD_QOSを得ることによってなされる。IPヘッダ内のサービスの種類Type-of-Serviceバイトが、IPヘッダで最小のレートの指示を行うために使用される。例えば、仮数に4ビットを用い、指数に4ビットを用いる浮動小数点表現を使用することによって、1Kbpsから65Mbpsまでの間の任意のレートが、6.25の精度で表現され得る。最小のレートの指示を行うその他の方法は、IPバージョン4IPv4の場合にはIPオプションIPoptionを、またはIPバージョン6IPv6の場合にはホップバイホップ拡張ヘッダhop-by-hopextensionheaderを使用することである。最小のレートRD_QOSは、ネットワーク処理200によって処理されている遅延を許容するフローのすべてを、例えば、それぞれのそのようなフローに関連する対応する最小のレートの指示のリストまたはテーブルで追跡することによって最新に保たれる。新しい遅延を許容するフローのデータパケットがネットワークプロセッサ200によって受信されるか、または既存のフローのデータパケットがネットワークプロセッサ200によって受信されなくなるとき、この追跡メカニズムが、そのような変化を反映するために更新され、最小のレートRD_QOSが、それに応じて再計算される。例えば、ネットワークプロセッサ200が任意の遅延を許容するフローの最小のレートの指示の逆数に等しい継続時間の間そのフローから新しいパケットを受信しなかった場合のように、少なくともその最小のレートの指示の逆数に等しい継続時間の間非アクティブであった任意の遅延を許容するフローは、レート推定器210によるそのような非アクティブ状態の検出によって引き起こされる、最小のレートRD_QOSのその後の再計算からそのフローの最小のレートの指示を除外させる。レート推定器210は、総計のレートRA、時間の制約が厳しいフローの総計のレートRT、および最小のレートRD_QOSをレートコントローラ216へのコネクション214を介してレートコントローラ216に提供し、抽出されたIPパケットヘッダをディスパッチャ224とレート推定器210の間のコネクション218を介してディスパッチャ224に転送する。レートコントローラ216は、最適なレートROを得るための手段220を有する。そのような手段220は、メモリから最適なレートROの値を読み取ることを含み、値は、そのメモリに記憶されており、ある範囲の処理レートにわたるエネルギー利用率の測定によって手動か、または同様の手順、およびネットワークプロセッサによって使用されるパケット処理エンジンの最適なレートROを決定するための、ネットワークプロセッサ200の内部もしくは外部の回路によって自動的にかのいずれかで決定されている。レートコントローラ216は、ディスパッチャ224へのコネクション222と、マルチコア処理エンジン226へのコネクション234とを有する。マルチコア処理エンジンは、ディスパッチャからIPパケットヘッダを受信するための、ディスパッチャへの複数の入力コネクション236と、処理されたIPパケットをパケットアグリゲータ238に送信するための、パケットアグリゲータ238への複数の出力コネクション240とを有する。マルチコア処理エンジン226は、第1のパケット処理エンジンPPE228、第2のPPE230、および第NのPPE232が図に示されているN個の複数のPPEを含む。PPE228から232は、マルチコア処理エンジン226によって受信されたデータパケットヘッダを処理する目的で並列に構成される。各PPEは、複数の入力コネクション236のうちのそれぞれのコネクションと、複数の出力コネクション240のうちのそれぞれのコネクションとに結合される。各PPEは、マルチコア処理エンジン226とレートコントローラ216の間のコネクション234を介してレートコントローラ216によってマルチコア処理エンジン226に提供されるPPEのレートRPPEを受信するための入力を有する。各PPEは、IPパケットヘッダに対してさまざまなデータ処理のタスクを実行して、パケットの処理、パケットの分類、パケットの転送などのデータプレーンのタスクを行うことができる。ディスパッチャ224は、レート推定器210からIPパケットヘッダを受信するか、または代替的に、ディスパッチャ224は、パケットヘッダ抽出器202からIPパケットヘッダを直接受信し、各IPパケットヘッダをPPEのうちの1つに選択的に転送する可能性がある。どのPPEが所与のIPパケットヘッダに対して選択されるか、および遅延を許容するフローFDに関する転送が行われるレートが、その選択およびレートに影響を与えるレートコントローラ216の機能が説明された後でさらに説明される。図3を参照して後でより詳細に説明されるように、場合によっては、総計のレートRA、時間の制約が厳しいフローの総計のレートRT、最小のレートRD_QOS、および最適なレートROに応じて、レートコントローラ216は、ディスパッチャ224がIPパケットヘッダを転送する先のPPEをディスパッチャ224がそこから選択することができるK個のPPEを決定する。レートコントローラ216は、ディスパッチャ224へのそのレートコントローラ216のコネクション222を介してディスパッチャ224に数Kを知らせる。N-K個ある残りのPPEは、数Kが増やされるまでいかなるIPパケットヘッダも受信せず、PPEのそれぞれに設けられたクロックゲーティング機能によってエネルギーを節約するアイドル状態に入る。クロックゲーティング機能は、PPEが、アクティブであればIPパケットヘッダを受信しているそのPPEのデータ入力の非アクティブ状態を検出し、データ処理動作をしていないときにもクロック信号のサイクルによって引き起こされる電力消費を最小化するためにPPEへのクロック信号を止めることを可能にする回路である。数Kが決定されていないか、またはディスパッチャ224に送信されていない場合、ディスパッチャ224は、N個の複数のPPEすべてからPPEを選択する。また、図3を参照して後でより詳細に説明されるように、場合によっては、時間の制約が厳しいフローの総計のレートRT、最小のレートRD_QOS、および最適なレートROに応じて、レートコントローラ216は、マルチコア処理エンジン226に提供されるべきPPEのレートRPPEを決定する。そのような場合、レートコントローラ216は、ディスパッチャ224に最小のレートRD_QOSをさらに提供するか、または代替的に、最小のレートRD_QOSは、そのような場合に使用するためにレート推定器210によってディスパッチャ224に提供される可能性がある。PPEのレートRPPEがマルチコア処理エンジン226に提供されない場合、最適なレートROが、デフォルトの処理レートとしてPPEによって代わりに使用され、この最適なレートROは、レートコントローラ216によって、または代替的に、最適なレートROを取得するための上述の手段220によって提供される。この実施形態においては、同じPPEのレートRPPEがPPEのそれぞれに与えられる。しかし、その他の実施形態において、PPEのうちの1つまたは複数はそれぞれのPPEのレートを受信する可能性があり、そのそれぞれのPPEのレートは、1つまたは複数のその他のPPEのレートと比較して一意的であり、ディスパッチャ224が、そのPPEへのIPヘッダパケットのそのディスパッチャ224の対応するディスパッチのレートをそれに応じて調節するために知らされる。ディスパッチャ224の動作に戻ると、ディスパッチャ224は、遅延を許容するトラフィックフローFDのIPパケットヘッダの公平なスケジューリングfairschedulingを、上述のようにそれぞれのそのようなフローの対応するIPパケットヘッダにおいて指定されるそれぞれのそのようなフローの必要とされる最小のレートに基づいて実行するように動作可能である。ディスパッチャ224がそのようなスケジューリングを実行するようにレートコントローラ216によって指示される場合、ディスパッチャ224は、そのように動作し、そのようなフローの累積的なレートを最小のレートRD_QOS内に保つ。そうでない場合、ディスパッチャ224は、遅延を許容するフローFDのIPパケットヘッダを、そのディスパッチャ224がそれらのIPパケットヘッダを受信するときにディスパッチする。どちらの場合も、この実施形態においては、ディスパッチャ224は、時間の制約が厳しいフローFTに関するスケジューリングは実行しないが、そのようなスケジューリングは、それらのフローのQoSの要件がそのようなスケジューリングが実行されることによって満たされている限り、その他の実施形態においては行われる可能性がある。PPEの選択に関して、ディスパッチャ224は、上述のように、N個の複数のPPEすべてか、またはK個のPPEのサブセットかのいずれかからIPパケットヘッダを転送すべきPPEを選択する。選択は、ラウンドロビン式に行われる。1つまたは複数のPPEが異なる処理レートを有する場合、ディスパッチャ224は、現在のラウンドロビンサイクルで利用可能なPPEの処理レートと、IPパケットヘッダが属するフローの必要とされる最小のレートとに基づいて、所与のIPパケットヘッダのための適切なPPEを選択する。パケットアグリゲータ238は、マルチコア処理エンジン226から処理されたIPパケットヘッダを受信し、パケットバッファへのコネクション242を介してパケットバッファからIPパケットを受信し、各IPパケットを、そのIPパケットの既存のIPパケットヘッダを対応する処理されたIPパケットヘッダで置き換えることによって再構築する。次に、パケットアグリゲータ238は、結果として得られた処理されたIPパケットを、例えば、ルーティングのためにルータのスイッチングファブリックswitchingfabricに、またはさらなる処理のために別のネットワークプロセッサに出力する。パケットバッファ212によって提供される機能はパケットアグリゲータ238によって実行される可能性があり、またはディスパッチャ224が上述のようにIPパケットヘッダだけではなく、IPパケット全体を処理するとした場合、パケットバッファ212は必要とされないことに留意されたい。さらに、パケットバッファ212の機能で強化されるかまたは強化されないかのいずれかのパケットアグリゲータ238によって提供される機能は、マルチコア処理エンジン226によって実行され得る。その上さらに、複数のパケット処理エンジンを有するネットワークプロセッサのためのコントローラが、レート推定器210、レートコントローラ216、およびディスパッチャ224だけを含む可能性がある。その場合、およびコントローラがIPパケット全体を処理するとした場合、パケットヘッダ抽出器202、パケットバッファ212、およびパケットアグリゲータ238の機能は必要とされない。図3を参照して、以降、ネットワークプロセッサ200で使用される処理レートを制御する方法300が説明される。開始302の後、方法300は、ネットワークプロセッサによって受信される時間の制約が厳しいフローのレートRTおよび遅延を許容するフローと時間の制約が厳しいフローとの総計のレートRAを決定する304。次に、方法300は、すべての遅延を許容するフローFDのQoSの要件を満たす総計の最小のレートRD_QOSを決定する306。これらの決定304、306の順序は方法300の結果に影響することなく逆にされ得ることに留意されたい。次いで、時間の制約が厳しいフローのレートRTと最小のレートRD_QOSとのレートの総和が、最適なレートROのN倍以下であるか否かの判定308が行われ、ここで、NはネットワークプロセッサのPPEの数である。総計のレートRAは、この判定306が肯定的な結果を生じない場合は必要とされず、したがって、総計のレートRAの決定は、決定304から省略され、この判定308の結果が肯定的であることに応じてなされる可能性があることに留意されたい。判定308が肯定的な結果を生じる場合、最小の数であるK個のPPEが、総計のレートRAが最適なレートROのK倍以下であるように決定される310。そして、ディスパッチャ224が、IPパケットヘッダを転送すべきPPEを選択するときに、複数のPPEのうちのサイズKのPPEのサブセットを使用するように指示される312。それから、方法300は終了する314が、方法300は、通常、ある期間の後、またはネットワークプロセッサへのIPパケットの入力フロー204の変化に応じて開始302に戻る。判定308が否定的な結果を生じる場合、最小のPPEのレートRPPEが、その最小のPPEのレートRPPEのN倍が時間の制約が厳しいフローのレートRTと最小のレートRD_QOSとの総和を超えるように決定される316。そして、ディスパッチャ224が、遅延を許容するフローに対して、それらのフローのそれぞれの最小のレートにしたがい、最小のレートRD_QOSに沿って公平なスケジューリングを実行するように指示される。それから、PPEの処理レートが、PPEのレートRPPEに設定され320、方法300は終了する314。通常、方法300は、ある期間の後、またはネットワークプロセッサへのIPパケットの入力フロー204の変化に応じて開始302に戻ることによって再開する。有利なことに、本発明の実施形態は、遅延を許容する大容量データの転送のQoSを意識した処理レートの調整によって中間ルータのエネルギー消費を大幅に下げることができる。これらの実施形態は、通信媒体を介した物理的な送信/受信レートを引き下げる等、大容量データの転送のエネルギー消費を低減して遅延を許容する大容量データの配信のエネルギー効率をさらに向上させるためのその他の技術と併せて使用され得る。多くの修正、変更、および適応が、特許請求の範囲において定義されている本発明の範囲を逸脱することなく上述の発明の実施形態に対してなされ得る。