(57)【特許請求の範囲】
【請求項１】
パケットを処理する方法であり、
少なくとも１つの電子プロセッシングシステムを介して、第１のレートが第２のレートより小さいか否かを判断する段階を備え、
前記第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であって、ジュール／バイトで表され、
前記第２のレートは、前記パケットの前記一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であって、ジュール／バイトで表され、
前記第１のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
前記第２のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
前記第２のプロセッサは前記第１のプロセッサとは異なり、
前記方法はさらに、
前記少なくとも１つの電子プロセッシングシステムを介して、前記少なくとも１つの電子プロセッシングシステムにより消費されるエネルギーの量を低減させるやり方で、前記パケットに関するネットワーキング処理を実行するための信号をユーザから受信する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のプロセッサの負荷がフルロードより小さいか否かを判断する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記負荷が前記フルロードよりも小さい場合に、前記パケットに関する前記ネットワーキング処理を前記第１のプロセッサに実行させる段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記負荷が前記フルロードに実質的に等しい場合に、前記パケットに関する前記ネットワーキング処理を前記第２のプロセッサに実行させる段階と
を備える方法。
【請求項２】
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項１に記載の方法。
【請求項３】
前記第１のレートと前記第２のレートとのうち少なくとも一方の少なくとも１つの予め定められた値はメモリに格納され、
前記方法は、前記少なくとも１つの電子プロセッシングシステムを介して、前記メモリから前記少なくとも１つの予め定められた値を取得する段階をさらに備える、請求項１又は２に記載の方法。
【請求項４】
コンピューティングデバイスに、請求項１から３のいずれか１項に記載の方法を実行させるプログラム。
【請求項５】
パケットを処理する方法であり、
少なくとも１つの電子プロセッシングシステムを介して、第１のレートが第２のレートより小さいか否かを判断する段階を備え、
前記第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であって、ジュール／バイトで表され、
前記第２のレートは、前記パケットの前記一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であって、ジュール／バイトで表され、
前記第１のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
前記第２のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
前記第２のプロセッサは、前記第１のプロセッサとは異なり、
前記方法は、
前記少なくとも１つの電子プロセッシングシステムを介して、所望される最大処理時間を設定するための信号をユーザから受信する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のプロセッサの処理時間が前記所望される最大処理時間よりも短いか否かを判断する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記処理時間が前記所望される最大処理時間よりも短い場合に、前記パケットに関するネットワーキング処理を前記第１のプロセッサに実行させる段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記処理時間が、前記所望される最大処理時間と等しい、およびそれよりも長いの一方である場合に、前記パケットに関する前記ネットワーキング処理を前記第２のプロセッサに実行させる段階と
をさらに備える、方法。
【請求項６】
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項５に記載の方法。
【請求項７】
コンピューティングデバイスに、請求項５又は６に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
ネットワーキング技術の向上により、より高い送信速度が促進され、アプリケーションプログラムを介して情報を処理するだけではなく、コンピュータはますます、ネットワークから取得した情報を処理するために用いられてきている。このことの結果として、他の処理のために利用可能な処理能力を損ないつつも、情報のパケットに関するネットワーキング処理のために用いられる中央処理装置の処理能力の量が増大している。ヘッダおよびフッタに対する処理を実行すること、並びにカプセル化されたデータを抽出することに加えて、そのようなネットワーキング処理は、探している情報が取得され得るようにネットワークへの接続を確立することも含み得る。
【０００２】
この状況を緩和するべく、中央処理装置からネットワークインタフェースコントローラへネットワーキング処理をシフトするオフロードエンジンが開発されてきた。中央処理装置を他の処理のために解放することに加えて、オフロードは、例えばＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ規格で動作するものなどローカルな入出力インターコネクトを通じたトラヒックも低減する。インターネットプロトコル群に従って動作するよう意図されたオフロードエンジンは、Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ）オフロードエンジンとして知られる。
【０００３】
ＴＣＰオフロードエンジンは一般的に、２つのカテゴリに分類され得る。部分的なＴＣＰオフロードエンジンは、中央処理装置からネットワークインタフェースコントローラへデータ経路をシフトし、データ送信および受信を処理することから中央処理装置を解放する。しかし中央処理装置は依然として、ネットワークへの接続を確立するよう処理を実行する。中央処理装置からネットワークインタフェースコントローラへのオフロードは、ネットワーク接続が確立された後に起こる。Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎにより開発されたＴＣＰ  Ｃｈｉｍｎｅｙ  Ｏｆｆｌｏａｄ技術は、部分的なＴＣＰオフロードエンジンの例である。対照的に、完全なＴＣＰオフロードエンジンにより、パケット処理およびネットワーク接続の確立の両方の実行は、ネットワークインタフェースコントローラへシフトされる。
【０００４】
ＴＣＰオフロードエンジンが部分的なものであれ、または完全なものであれ、現在の実装において考慮される基準は、ネットワークインタフェースコントローラの負荷のみである。処理において、現在のＴＣＰオフロードエンジンは、ネットワークインタフェースコントローラの負荷がフルロードより小さいものである限り、中央処理装置からネットワークインタフェースコントローラへネットワーキング処理を自動的にシフトする。
【図面の簡単な説明】
【０００５】
【図１】実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。
【図２】実施形態に係る、方法１００のソフトウェアまたはファームウェア実施形態の例のブロック図である。
【図３】実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。
【図４】実施形態に係る、方法３００のソフトウェアまたはファームウェア実施形態の例のブロック図である。
【図５】実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。
【図６】実施形態に係る、方法５００のソフトウェアまたはファームウェア実施形態の例のブロック図である。
【図７】実施形態に係るパケットを処理する例示的なシステムのブロック図である。
【図８】実施形態に係るパケットを処理する例示的なシステムのブロック図である。
【図９】実施形態に係るパケットを処理する例示的なシステムのブロック図である。
【図１０】オフロードエンジンの現在の実装と、本明細書に説明される実施形態を組み込んだオフロードエンジンのネットワーキング処理のための時間を比較する棒グラフである。
【図１１】オフロードエンジンの現在の実装、および本明細書に説明される実施形態を組み込んだオフロードエンジンのネットワーキング処理のためのエネルギー効率を比較する棒グラフである。図面において、参照番号の左端の桁は、その参照番号が最初に登場する図面を識別する。
【発明を実施するための形態】
【０００６】
図面を参照して実施形態を説明する。図中において同様の参照番号は同一の、または機能的に同様の要素を示す。特定の構造および構成が説明されるが、このことは例示的な目的のみのために行われていることを理解されるべきである。当業者は、説明の思想および態様から逸脱することなく他の構造および構成が用いられ得ることを認識されよう。このことが、本明細書に説明されるものの他に他の様々なシステムおよびアプリケーションでも採用され得ることが当業者には明らかであろう。
【０００７】
本明細書には、パケットを処理する方法、システムおよびコンピュータプログラム製品が開示される。パケットを処理するシステムは、ネットワークインタフェースコントローラと中央処理装置とのうちそれぞれに関して、処理時間の測定、パケットの一の情報単位を処理するために消費されるエネルギーの量の判断、および負荷の測定を含み得る。ユーザは、好ましいやり方でネットワーキング処理を実行するための信号をシステムに提供し得る。システムの一部は、当該測定、判断、および信号のうち少なくとも１つを受信し得、パケットに関するネットワーキング処理をネットワークインタフェースコントローラと中央処理装置とのうち一方に実行させ得る。ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。本明細書に説明される実施形態は単一のパケットを処理することに関して説明されるが、当業者は、これらの実施形態が、集合として処理されることが意図される一連のパケットなど、パケットフローに対しても動作し得ることを理解されよう。したがって、本明細書に説明される実施形態は、単一のパケットに適用されるのと同じやり方でパケットフローに適用される。
【０００８】
ユーザはシステムに対し、全体的なシステムの処理時間を短縮するやり方で、パケットに関するネットワーキング処理を実行するための信号を提供し得る。例えば、ネットワーキング処理の実行は、ネットワークインタフェースコントローラと中央処理装置との間で分散され得る。
【０００９】
代替的にユーザは、システムに対し、パケットを処理するために全体的なシステムにより消費されるエネルギーの量を低減させるやり方で、ネットワーキング処理を実行するための信号を提供し得る。例えば、ネットワークインタフェースコントローラと中央処理装置との間で選択出来るのであれば、選択されたプロセッサの負荷がフルロードに実質的に等しくなるまで、それら２つのうちよりエネルギー効率のよい方がネットワーキング処理を実行するよう選択され得る。
【００１０】
代替的にユーザは、システムに対し、所望される最大処理時間に達するまで、パケットを処理するために全体的なシステムにより消費されるエネルギーの量を低減させるやり方でネットワーキング処理を実行するための信号を提供し得る。例えば最初は、ネットワークインタフェースコントローラと中央処理装置とのうちよりエネルギー効率のよい方が、ネットワーキング処理を実行するよう選択され得る。新たな接続が開始し、処理時間が所望される最大処理時間より短い場合、選択されたプロセッサが新たな接続のためにネットワーキング処理を実行し得る。
【００１１】
さらにシステムは、継続中の接続の間、ネットワークインタフェースコントローラと中央処理装置との間でネットワーキング処理をシフトするために動的に用いられ得る。例えば、いくつかのパケットに関するネットワーキング処理がネットワークインタフェースコントローラにより完了され、ネットワークインタフェースコントローラの負荷がフルロードより少ない場合、中央処理装置により実行されている他のパケットに関する継続中のネットワーキング処理は、ネットワークインタフェースコントローラにシフトされ得る。このことは、全体的なシステムの性能、全体的なシステムのエネルギー効率、または他の優先事項を最適化するために行われ得る。
【００１２】
本明細書に説明される実施形態は、全体的なシステムの性能の考慮が欠如していることに起因する、ＴＣＰオフロードエンジンの現在の実装における不足を認識している。追加的に、ＴＣＰオフロードエンジンの現在の実装は、全体的なシステムのエネルギー効率を考慮しない。現在のＴＣＰオフロードエンジンは、全体的なシステムの性能または全体的なシステムエネルギー効率を最適化するために、ネットワークインタフェースコントローラと中央処理装置との間でネットワーキング処理をシフトし、プロセッサ間の接続のバランスをとるよう設計されていない。さらに現在のＴＣＰオフロードエンジンは、ネットワーキング処理が、システムの処理時間を短縮するやり方で実行されること、または、パケットを処理するためにシステムにより消費されるエネルギーの量を低減させるやり方で実行されることを優先するよう、全体的なシステムのユーザが示すためのメカニズムを提供しない。
【００１３】
これらの不足は所望されない影響を生じさせる。例えば、大きな負荷が与えられたネットワークインタフェースコントローラは、パケットを処理するために長い時間を要し得、このことは、全体的なシステムの性能を低下させ得る。追加的に、ネットワークインタフェースコントローラおよび中央処理装置のエネルギー効率の差の考慮が欠如していることの結果として、ネットワーキング処理は、効率のよい中央処理装置ではなく効率のよくないネットワークインタフェースコントローラにより実行されることとなり得、このことは、全体的なシステムの冷却系に重い負担を与え得、そのバッテリの任意のサイクル間に全体的なシステムにより実行され得る処理数を制限し得る。
【００１４】
図１は、実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。図１の方法１００は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせを動作させる電子プロセッシングシステムを用いて実行され得る。
【００１５】
方法１００において任意選択的に、１０２において、電子プロセッシングシステムは、電子プロセッシングシステムにより消費されるエネルギーの量を低減させるやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信し得る。
【００１６】
任意選択的に１０４において、電子プロセッシングシステムは、メモリから少なくとも１つの予め定められた値を取得し得る。少なくとも１つの予め定められた値は、第１のレート、第２のレート、または両方のものであり得る。第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であり得る。第２のレートは、パケットの当該一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であり得る。第１および第２のレートは、例えばジュール／バイトで表され得る。第１のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは第１のプロセッサとは異なる。
【００１７】
１０６において、電子プロセッシングシステムは第１のレートが第２のレートより小さいか否かを判断し得る。
【００１８】
１０８において、電子プロセッシングシステムは、第１のプロセッサの負荷がフルロードより小さいか否かを判断し得る。
【００１９】
１１０において、第１のレートが第２のレートより小さく、第１のプロセッサの負荷がフルロードより小さい場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第１のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００２０】
任意選択的に１１２において、第１のレートが第２のレートより小さく、第１のプロセッサの負荷がフルロードと実質的に等しい場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第２のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００２１】
図２は、実施形態に係る、方法１００のソフトウェアまたはファームウェア実施形態の例のブロック図である。図２において、電子プロセッシングシステム２００は例えば、２またはそれより多くのプログラマブルプロセッサ２０２、２０４、メモリ２０６、コンピュータプログラムロジック２０８、１または複数のＩ／Ｏポートおよび／またはＩ／Ｏデバイス２１０、第１の比較ロジック２１２、並びに、第２の比較ロジック２１４、スイッチロジック２１６を含み得る。任意選択的に、電子プロセッシングシステム２００は信号処理ロジック２１８も含み得る。任意選択的に、電子プロセッシングシステム２００はメモリ取得ロジック２２０も含み得る。
【００２２】
２またはそれより多くのプログラマブルプロセッサ２０２、２０４は、上述したような方法１００の機能を実行するよう構成され得る。２またはそれより多くのプログラマブルプロセッサ２０２、２０４は、ネットワークインタフェースコントローラ（ＮＩＣ）、並びに、中央処理装置（ＣＰＵ）および／またはグラフィクスプロセッシングユニット（ＧＰＵ）を含み得る。メモリ２０６は、コンピュータプログラムロジック２０８を格納し得る１または複数のコンピュータ可読媒体を含み得る。メモリ２０６は、ハードディスクドライブ、例えばコンパクトディスク、読取専用メモリ（ＲＯＭ）、またはランダムアクセスメモリ（ＲＡＭ）デバイスなどの取り外し可能な媒体、若しくはこれらの何らかの組み合わせとして実装され得る。２またはそれより多くのプログラマブルプロセッサ２０２、２０４およびメモリ２０６は、バスなど、当業者に公知のいくつかの技術のうちいずれかを用いて通信を行い得る。メモリ２０６に含まれるコンピュータプログラムロジック２０８は２またはそれより多くのプログラマブルプロセッサ２０２、２０４により読み取られ実行され得る。１または複数のＩ／Ｏポートおよび／またはＩ／Ｏデバイス２１０は、２またはそれより多くのプログラマブルプロセッサ２０２、２０４およびメモリ２０６にも接続され得る。
【００２３】
図２の実施形態において、コンピュータプログラムロジック２０８は、第１のレートが第２のレートより小さいか否かを判断するよう構成され得る第１の比較ロジック２１２を含み得る。第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であり得る。第２のレートは、パケットの当該一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であり得る。第１および第２のレートは、例えばジュール／バイトで表され得る。第１のプロセッサはネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサはネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは第１のプロセッサとは異なる。
【００２４】
コンピュータプログラムロジック２０８は、第１のプロセッサの負荷がフルロードより小さい、またはフルロードと実質的に等しいか否かを判断するよう構成され得る第２の比較ロジック２１４も含み得る。
【００２５】
コンピュータプログラムロジック２０８は、第１のレートが第２のレートより小さく、第１のプロセッサの負荷がフルロードより小さい場合に、パケットに関するネットワーキング処理を第１のプロセッサに実行させるよう構成され得るスイッチロジック２１６も含み得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、スイッチロジック２１６は、第１のレートが第２のレートより小さく、第１のプロセッサの負荷がフルロードに実質的に等しい場合に、パケットに関するネットワーキング処理を第２のプロセッサに実行させるようにも構成され得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００２６】
任意選択的に、コンピュータプログラムロジック２０８は、電子プロセッシングシステム２００により消費されるエネルギーの量を低減させるやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信するよう構成され得る信号処理ロジック２１８も含み得る。
【００２７】
任意選択的にコンピュータプログラムロジック２０８は、メモリから少なくとも１つの予め定められた値を取得するよう構成され得るメモリ取得ロジック２２０も含み得る。少なくとも１つの予め定められた値は、第１のレート、第２のレート、または両方のものであり得る。
【００２８】
図３は、実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。図３の方法３００は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせを動作させる電子プロセッシングシステムを用いて実行され得る。
【００２９】
方法３００において任意選択的に、３０２において、電子プロセッシングシステムは、電子プロセッシングシステムの処理時間を短縮するやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信し得る。
【００３０】
３０４において、電子プロセッシングシステムは、第１のプロセッサの処理時間を判断し得る。第１のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。
【００３１】
３０６において、電子プロセッシングシステムは、第２のプロセッサの処理時間を判断し得る。第２のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは第１のプロセッサとは異なる。
【００３２】
３０８において、第１のプロセッサの処理時間が第２のプロセッサの処理時間より短い場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第１のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００３３】
任意選択的に３１０において、第１のプロセッサの処理時間が第２のプロセッサの処理時間に等しい、またはそれよりも長い場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第２のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００３４】
図４は、実施形態に係る、方法３００のソフトウェアまたはファームウェア実施形態の例のブロック図である。図４において、電子プロセッシングシステム４００は例えば、２またはそれより多くのプログラマブルプロセッサ４０２、４０４、メモリ４０６、コンピュータプログラムロジック４０８、１または複数のＩ／Ｏポートおよび／またはＩ／Ｏデバイス４１０、第１の測定ロジック４１２、第２の測定ロジック４１４、並びにスイッチロジック４１６を含み得る。任意選択的に、電子プロセッシングシステム４００は信号処理ロジック４１８も含み得る。
【００３５】
２またはそれより多くのプログラマブルプロセッサ４０２、４０４は、上述したような方法３００の機能を実行するよう構成され得る。２またはそれより多くのプログラマブルプロセッサ４０２、４０４は、ネットワークインタフェースコントローラ（ＮＩＣ）、並びに、中央処理装置（ＣＰＵ）および／またはグラフィクスプロセッシングユニット（ＧＰＵ）を含み得る。メモリ４０６は、コンピュータプログラムロジック４０８を格納し得る１または複数のコンピュータ可読媒体を含み得る。メモリ４０６は、ハードディスクドライブ、例えばコンパクトディスク、読取専用メモリ（ＲＯＭ）、またはランダムアクセスメモリ（ＲＡＭ）デバイスなどの取り外し可能な媒体、若しくはこれらの何らかの組み合わせとして実装され得る。２またはそれより多くのプログラマブルプロセッサ４０２、４０４およびメモリ４０６は、バスなど、当業者に公知のいくつかの技術のうちいずれかを用いて通信を行い得る。メモリ４０６に含まれるコンピュータプログラムロジック４０８は２またはそれより多くのプログラマブルプロセッサ４０２、４０４により読み取られ実行され得る。１または複数のＩ／Ｏポートおよび／またはＩ／Ｏデバイス４１０は、２またはそれより多くのプログラマブルプロセッサ４０２、４０４およびメモリ４０６にも接続され得る
【００３６】
図４の実施形態において、コンピュータプログラムロジック４０８は、第１のプロセッサの処理時間を判断するよう構成され得る第１の測定ロジック４１２を含み得る。第１のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。
【００３７】
コンピュータプログラムロジック４０８は、第２のプロセッサの処理時間を判断するよう構成され得る第２の測定ロジック４１４も含む。第２のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは第１のプロセッサとは異なる。
【００３８】
コンピュータプログラムロジック４０８は、第１のプロセッサの処理時間が第２のプロセッサの処理時間より短い場合に、パケットに関するネットワーキング処理を第１のプロセッサに実行させるよう構成され得るスイッチロジック４１６も含み得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、スイッチロジック４１６は、第１のプロセッサの処理時間が第２のプロセッサの処理時間に等しい、またはそれよりも長い場合に、パケットに関するネットワーキング処理を第２のプロセッサに実行させるようにも構成され得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００３９】
任意選択的に、コンピュータプログラムロジック４０８は、電子プロセッシングシステム４００の処理時間を短縮するやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信するよう構成され得る信号処理ロジック４１８も含み得る。
【００４０】
図５は、実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。図５の方法５００は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせを動作させる電子プロセッシングシステムを用いて実行され得る。
【００４１】
方法５００において任意選択的に、５０２において、電子プロセッシングシステムは、所望される最大処理時間を設定するための信号をユーザから受信し得る。
【００４２】
５０４において、電子プロセッシングシステムは第１のレートが第２のレートより小さいか否かを判断し得る。第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であり得る。第２のレートは、パケットの当該一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であり得る。第１および第２のレートは、例えばジュール／バイトで表され得る。第１のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは第１のプロセッサとは異なる。
【００４３】
５０６において、電子プロセッシングシステムは、第１のプロセッサの処理時間が所望される最大処理時間より短いか否かを判断し得る。
【００４４】
５０８において、第１のレートが第２のレートより小さく、第１のプロセッサの処理時間が所望される最大処理時間より短い場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第１のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００４５】
任意選択的に５１０において、第１のレートが第２のレートより小さく、第１のプロセッサの処理時間が所望される最大処理時間に等しい、またはそれよりも長い場合、電子プロセッシングシステムはパケットに関するネットワーキング処理を第２のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００４６】
図６は、実施形態に係る、方法５００のソフトウェアまたはファームウェア実施形態の例のブロック図である。図６において、電子プロセッシングシステム６００は例えば、２またはそれより多くのプログラマブルプロセッサ６０２、６０４、メモリ６０６、コンピュータプログラムロジック６０８、１または複数のＩ／Ｏポートおよび／またはＩ／Ｏデバイス６１０、第１の比較ロジック６１２、第２の比較ロジック６１４、並びにスイッチロジック６１６を含み得る。任意選択的に、電子プロセッシングシステム６００は信号処理ロジック６１８も含み得る。
【００４７】
２またはそれより多くのプログラマブルプロセッサ６０２、６０４は、上述したような方法５００の機能を実行するよう構成され得る。２またはそれより多くのプログラマブルプロセッサ６０２、６０４は、ネットワークインタフェースコントローラ（ＮＩＣ）、並びに、中央処理装置（ＣＰＵ）および／またはグラフィクスプロセッシングユニット（ＧＰＵ）を含み得る。メモリ６０６は、コンピュータプログラムロジック６０８を格納し得る１または複数のコンピュータ可読媒体を含み得る。メモリ６０６は、ハードディスクドライブ、例えばコンパクトディスク、読取専用メモリ（ＲＯＭ）、またはランダムアクセスメモリ（ＲＡＭ）デバイスなどの取り外し可能な媒体、若しくはこれらの何らかの組み合わせとして実装され得る。２またはそれより多くのプログラマブルプロセッサ６０２、６０４およびメモリ６０６は、バスまたはインターコネクトなど、当業者に公知のいくつかの技術のうちいずれかを用いて通信を行い得る。メモリ６０６に含まれるコンピュータプログラムロジック６０８は２またはそれより多くのプログラマブルプロセッサ６０２、６０４により読み取られ実行され得る。１または複数のＩ／Ｏポートおよび／またはＩ／Ｏデバイス６１０は、２またはそれより多くのプログラマブルプロセッサ６０２、６０４およびメモリ６０６にも接続され得る。
【００４８】
図６の実施形態において、コンピュータプログラムロジック６０８は、第１のレートが第２のレートより小さいか否かを判断するよう構成され得る第１の比較ロジック６１２を含み得る。第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であり得る。第２のレートは、パケットの当該一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であり得る。第１および第２のレートは、例えばジュール／バイトで表され得る。第１のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第２のプロセッサは第１のプロセッサとは異なる。
【００４９】
コンピュータプログラムロジック６０８は、第１のプロセッサの処理時間が所望される最大処理時間より短いか否かを判断するよう構成され得る第２の比較ロジック６１４も含み得る。
【００５０】
コンピュータプログラムロジック６０８は、第１のレートが第２のレートより小さく、第１のプロセッサの処理時間が所望される最大処理時間より短い場合に、パケットに関するネットワーキング処理を第１のプロセッサに実行させるよう構成され得るスイッチロジック６１６も含み得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、スイッチロジック６１６は、第１のレートが第２のレートより小さく、第１のプロセッサの処理時間が所望される最大処理時間に等しい、またはそれよりも長い場合に、パケットに関するネットワーキング処理を第２のプロセッサに実行させるようにも構成され得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。
【００５１】
任意選択的に、コンピュータプログラムロジック６０８は、所望される最大処理時間を設定するための信号をユーザから受信するよう構成され得る信号処理ロジック６１８も含み得る。
【００５２】
図７、８および９は、実施形態に係るパケットを処理する例示的なシステムのブロック図である。図７において、システム７００は例えば、第１の電子システム７０２、第２の電子システム７０４および第３の電子システム７０６を含む。任意選択的にシステム７００は、第４の電子システム７０８も含み得る。任意選択的にシステム７００は、第５の電子システム７１０および第６の電子システム７１２も含み得る。
【００５３】
第１の電子システム７０２は、第１の測定を判断し、第１の測定を送信するよう構成され得る。第１の測定は、ネットワークインタフェースコントローラ７１４の処理時間の測定である。任意選択的に第１の電子システム７０２は、タイムスタンプ技術を用いて処理時間の測定を判断し得る。タイムスタンプ技術を用いて、処理時間の測定は、ネットワークインタフェースコントローラ７１４がパケットを処理し終える時点と、ネットワークインタフェースコントローラ７１４がパケットを受信する時点との間の差として判断され得る。代替的に、処理時間の測定は、当業者には明らかである他のやり方で判断され得る。任意選択的に第１の電子システム７０２は、パケットを受信するよう構成されたネットワークソケット７１６に位置付けられ得る。代替的に第１の電子システム７０２は、図８に図示されるように、ネットワークインタフェースコントローラドライバ８０２に位置付けられ得る。代替的に第１の電子システム７０２は、図９に図示されるように、ネットワークインタフェースコントローラ７１４に位置付けられ得る。任意選択的に、第１の電子システム７０２がネットワークインタフェースコントローラ７１４に位置付けられる場合、システム７００はさらに、ネットワークソケット７１６とネットワークインタフェースコントローラドライバ８０２とのうち少なくとも１つを通る、第１の電子システム７０２と第３の電子システム７０６との間の通信パス９０２を備え得る。
【００５４】
第２の電子システム７０４は、第２の測定を判断し、第２の測定を送信するよう構成され得る。第２の測定は、中央処理装置の処理時間の測定である。中央処理装置についての情報は、例えばカーネル／ソケット７１８を介して受信され得る。任意選択的に第２の電子システム７０４は、タイムスタンプ技術を用いて処理時間の測定を判断し得る。タイムスタンプ技術を用いて、処理時間の測定は、中央処理装置がパケットを処理し終える時点と、中央処理装置がパケットを受信する時点との間の差として判断され得る。代替的に、処理時間の測定は、当業者には明らかである他のやり方で判断され得る。
【００５５】
第３の電子システム７０６は、第１の測定および第２の測定を受信し、ネットワークインタフェースコントローラ７１４と中央処理装置とのうちパケットに関するネットワーキング処理を実行する一方を選択するよう構成され得る。任意選択的に第３の電子システム７０６はさらに、パケットを処理するシステム７００の処理時間を短縮するやり方でパケットに関するネットワーキング処理を実行するための信号７２０をユーザから受信するよう構成され得る。任意選択的に第３の電子プロセッシングシステム７０６はさらに、所望される最大処理時間を設定するための信号７２２をユーザから受信するよう構成され得る。
【００５６】
第４の電子システム７０８は、第１のレートおよび第２のレートを送信するよう構成され得る。第１のレートは、パケットの一の情報単位を処理するためにネットワークインタフェースコントローラ７１４により消費されるエネルギーの量である。第２のレートは、パケットの当該一の情報単位を処理するために中央処理装置により消費されるエネルギーの量である。第１および第２のレートは、例えばジュール／バイトで表され得る。第３の電子システム７０６はさらに、第１のレートおよび第２のレートを受信するよう構成され得る。任意選択的に第３の電子プロセッシングシステム７０６はさらに、パケットを処理するためにシステム７００により消費されるエネルギーの量を低減させるやり方で、パケットに関するネットワーキング処理を実行するための信号７２４をユーザから受信するよう構成され得る。任意選択的に、第１のレート、第２のレートまたは両方は、ネットワークインタフェースコントローラ７１４、中央処理装置または両方のハードウェアの仕様、ファームウェアの仕様、または両方に基づき知られ得る。第１のレートと第２のレートとのうち少なくとも一方が予め定められている場合、システム７００はさらに、第１のレートと第２のレートとのうち少なくとも一方の少なくとも１つの予め定められた値を格納するよう構成されたメモリ７２６を備え得る。代替的に第４の電子システム７０８はさらに、当業者には明らかである他のやり方で、第１のレートと第２のレートとのうち少なくとも一方を判断するよう構成され得る。
【００５７】
第５の電子システム７１０は、第３の測定を判断し、第３の測定を送信するよう構成され得る。第３の測定は、ネットワークインタフェースコントローラ７１４の負荷の測定である。第３の電子システム７０６はさらに、第３の測定を受信するよう構成され得る。任意選択的に第５の電子システム７１０は、カウンタを用いて負荷の測定を判断し得る。カウンタはネットワークインタフェースコントローラ７１４により実行される処理の数をカウントし得る。一般的に、ネットワークインタフェースコントローラ７１４への接続がより多くあるということは、より高いパケットレートおよびより長い処理時間を示唆する。代替的に負荷の測定は、当業者には明らかであるように他のやり方で判断され得る。任意選択的に第５の電子システム７１０は、ネットワークソケット７１６に位置付けられ得る。代替的に第５の電子システム７１０は、図８に図示されるように、ネットワークインタフェースコントローラドライバ８０２に位置付けられ得る。代替的に第５の電子システム７１０は、図９に図示されるように、ネットワークインタフェースコントローラ７１４に位置付けられ得る。任意選択的に、第５の電子システム７１０がネットワークインタフェースコントローラ７１４に位置付けられる場合、システム７００はさらに、ネットワークソケット７１６とネットワークインタフェースコントローラドライバ８０２とのうち少なくとも１つを通る、第５の電子システム７１０と第３の電子システム７０６との間の通信パス９０４を備え得る。
【００５８】
第６の電子システム７１２は、第４の測定を判断し、第４の測定を送信するよう構成され得る。第４の測定は、中央処理装置の負荷の測定である。中央処理装置についての情報は、例えばカーネル／ソケット７１８を介して受信され得る。第３の電子システム７０６はさらに、第４の測定を受信するよう構成され得る。任意選択的に第６の電子システム７１２は、カウンタを用いて負荷の測定を判断し得る。カウンタは、中央処理装置により実行される処理の数をカウントし得る。一般的に、中央処理装置への接続がより多いということは、より高いパケットレートおよびより長い処理時間を示唆する。代替的に負荷の測定は、当業者には明らかであるように他のやり方で判断され得る。
【００５９】
図１０は、オフロードエンジンの現在の実装（静的なポリシー）と、本明細書に説明される実施形態を組み込んだオフロードエンジン（適合的なポリシー）のネットワーキング処理のための時間を比較する棒グラフである。図１０に図示される結果をもたらしたシミュレーションは、ネットワークインタフェースコントローラの負荷がフルロードより小さいものである限り中央処理装置からネットワークインタフェースコントローラへネットワーキング処理を自動的にシフトするオフロードエンジン（静的なポリシー）を仮定した。合計２，０４８の接続が確立された場合、ネットワークインタフェースコントローラの負荷は、フルロードと実質的に等しかった。シミュレーションは、これらの条件において、ネットワークインタフェースコントローラが、パケットに関するネットワーキング処理を完了するためにほぼ１ミリ秒要したことを示した。そのような長い遅延は、全体的な性能を実質的に低下させ得る。
【００６０】
対照的に、本質的にサービス品質情報を考慮する本明細書に説明される実施形態を組み込んだオフロードエンジン（適合的なポリシー）に関しては、およそ１，０００の接続のみがネットワークインタフェースコントローラへシフトされた。このことにより、ネットワーキング処理のための処理時間がおよそ２０マイクロ秒まで短縮された。追加的に、およそ１，０００の接続に関連付けられたネットワーキング処理をネットワークインタフェースコントローラに実行させることにより、中央処理装置を他の処理を実行するために実質的に解放した。処理時間の短縮により測定される、このシミュレーションに関する性能の向上は、およそ５０倍である。この因数は、新たなネットワークインタフェースコントローラがより多くの接続のための能力を有するよう開発されているので、さらに大きくなり得る。多くの仮想マシンが同時に動作している、大きな負荷がかかるデータセンターのサーバにおいては、７，０００〜１０，０００の同時のネットワーク接続があることは珍しくないので、本明細書に説明される実施形態を組み込んだオフロードエンジンを有することは、ネットワーキング処理のための処理時間を制御するために重要であり得る。
【００６１】
図１１は、オフロードエンジンの現在の実装（静的なポリシー）と、本明細書に説明される実施形態を組み込んだオフロードエンジン（適合的なポリシー）のネットワーキング処理のためのエネルギー効率を比較する棒グラフである。図１１に図示される結果をもたらしたシミュレーションは、中央処理装置のエネルギー効率が０．１ジュール／メガバイトであり、ネットワークインタフェースコントローラのエネルギー効率が０．２ジュール／メガバイトであるものと仮定した（つまりシミュレーションは、中央処理装置の方が、ネットワークインタフェースコントローラよりエネルギー効率のよいことを仮定した）。シミュレーションは１００メガバイト／秒のスループットも仮定した。ネットワーキング処理を中央処理装置からネットワークインタフェースコントローラへ自動的にシフトするオフロードエンジン（静的なポリシー）に関して、シミュレーションは、ネットワーキング処理の総電力消費がおよそ２０ワットであると判断した。本明細書に説明される実施形態を組み込んだオフロードエンジン（適合的なポリシー）に関して、ネットワークインタフェースコントローラの負荷が十分に小さく、ネットワークインタフェースコントローラがネットワーキング処理のうちいくつかを実行出来るはずである場合であってもネットワーキング処理は殆ど中央処理装置によって実行された。
【００６２】
シミュレーションは、中央処理装置がその他の処理に加えて、処理時間をそれ程増加させることなく８０メガバイト／秒のスループット率でネットワーキング処理を実行できるものと仮定した。１００メガバイト／秒の全体的なスループットを満たすべく、ネットワーキング処理を実行するためにネットワークインタフェースコントローラに要求されるスループット率は、２０メガバイト／秒のみであった。このことにより、ネットワーキング処理のために消費される電力がおよそ１２ワットまで低減された。このシミュレーションに関するエネルギー効率の向上は、およそ４０％であった。このことはサービス品質を維持しながら達成された。
【００６３】
方法１００、３００、５００、およびシステム２００、４００、６００、７００は、例えば、Ｉｎｔｅｌにより開発されているＳｐｒｉｎｇｖｉｌｌｅ、ＢｒｏａｄｗｅｌｌまたはＳｋｙｌａｋｅアーキテクチャを組み込んだプロセッサを含む、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせにより実装され得る。
【００６４】
実施形態において、方法１００、３００、５００、およびシステム２００、４００、６００、７００は、有線通信システム、無線通信システム、または両方の組み合わせの一部として実装され得る。  実施形態において、例えば、方法１００、３００、５００、およびシステム２００、４００、６００、７００は、無線機能を有するモバイルコンピューティングデバイスで実装され得る。モバイルコンピューティングデバイスとは、電子プロセッシングシステム、および例えば１または複数のバッテリなどモバイルの電源または電力供給装置を有する何らかのデバイスを指し得る。
【００６５】
モバイルコンピューティングデバイスの例には、ラップトップコンピュータ、ウルトラモバイルパーソナルコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータ、ノートブック、タブレット、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、スマートフォン、ポケベル、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、データ通信デバイス、モバイルインターネットデバイス、ＭＰ３プレーヤなどが含まれ得る。
【００６６】
実施形態において、例えば、モバイルコンピューティングデバイスは、コンピュータアプリケーション、並びに音声通信および／またはデータ通信を実行可能な、スマートフォンとして実装され得る。いくつかの実施形態は、例としてスマートフォンとして実装されるモバイルコンピューティングデバイスを用いて説明され得るが、他の実施形態は、他の無線モバイルコンピューティングデバイスを用いても実装され得ることが理解され得よう。実施形態はこの点に関して限定されない。
【００６７】
方法およびシステムが、機能、特徴およびそれらの関係を示す機能的な構成要素単位を用いて本明細書に開示された。これらの機能的な構成要素単位の境界のうち少なくともいくつかは、説明の便宜のために本明細書において適宜規定された。特定された機能およびそれらの関係が適切に実装され得る限り代替の境界が規定され得る。
【００６８】
本明細書に開示される１または複数の特徴は、個別回路論理および集積回路論理、特定用途向け集積回路（ＡＳＩＣ）ロジック、並びにマイクロコントローラを含むハードウェア、ソフトウェア、ファームウェア、およびこれらの組み合わせで実装され得、領域特化型の集積回路パッケージの一部、または集積回路パッケージの組み合わせとして実装され得る。本明細書で用いられるソフトウェアという用語は、格納されたコンピュータプログラムロジックを有して、コンピュータシステムに、本明細書に開示される１または複数の特徴、および／または特徴の組み合わせを実行させるコンピュータ可読媒体を含むコンピュータプログラム製品を指す。コンピュータ可読媒体は一時的、または非一時的であり得る。一時的なコンピュータ可読媒体の例は、無線周波数または電気伝導体で、ローカルまたはワイドエリアネットワークを通じて、若しくはインターネットなどのネットワークを通じて送信されるデジタル信号であり得る。非一時的コンピュータ可読媒体の例は、コンパクトディスク、フラッシュメモリ、または他のデータ記憶デバイスであり得る。
【００６９】
本明細書には様々な実施形態が開示されているが、それらは限定ではなく例としてのみ提示されてきたことを理解されるべきである。当業者には、本明細書に開示される方法およびシステムの思想および態様から逸脱することなく形態および詳細の様々な変更が実施形態に対して加えられ得ることが明らかであろう。したがって、請求項の範囲および態様は、本明細書に開示される例示的な実施形態のいずれによっても限定されない。
［項目１］
パケットを処理する方法であり、
少なくとも１つの電子プロセッシングシステムを介して、第１のレートが第２のレートより小さいか否かを判断する段階を備え、
前記第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であり、
前記第２のレートは、前記パケットの前記一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であり、
前記第１のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
前記第２のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
前記第２のプロセッサは前記第１のプロセッサとは異なり、
前記方法はさらに、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のプロセッサの負荷がフルロードより小さいか否かを判断する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記負荷が前記フルロードよりも小さい場合に、前記パケットに関するネットワーキング処理を前記第１のプロセッサに実行させる段階と
を備える方法。
［項目２］
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、項目１に記載の方法。
［項目３］
前記第１のレートと前記第２のレートとのうち少なくとも一方の少なくとも１つの予め定められた値はメモリに格納され、
前記方法は、前記少なくとも１つの電子プロセッシングシステムを介して、前記メモリから前記少なくとも１つの予め定められた値を取得する段階をさらに備える、項目１または２に記載の方法。
［項目４］
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記負荷がフルロードに実質的に等しい場合に、前記パケットに関する前記ネットワーキング処理を前記第２のプロセッサに実行させる段階をさらに備える、項目１または２に記載の方法。
［項目５］
前記少なくとも１つの電子プロセッシングシステムを介して、前記少なくとも１つの電子プロセッシングシステムにより消費されるエネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する段階をさらに備える、項目１または２記載の方法。
［項目６］
コンピューティングデバイスに、項目１から５のいずれか１項に記載の方法を実行させるプログラム。
［項目７］
パケットを処理する方法であり、
少なくとも１つの電子プロセッシングシステムを介して、ネットワークインタフェースコントローラと中央処理装置とのうち一方である第１のプロセッサの処理時間を判断する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり前記第１のプロセッサとは異なる第２のプロセッサの処理時間を判断する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のプロセッサの前記処理時間が前記第２のプロセッサの前記処理時間より短い場合に、前記パケットに関するネットワーキング処理を前記第１のプロセッサに実行させる段階と
を備える方法。
［項目８］
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、項目７に記載の方法。
［項目９］
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のプロセッサの前記処理時間が前記第２のプロセッサの前記処理時間と等しい、およびそれよりも長いの一方である場合、前記パケットに関する前記ネットワーキング処理を前記第２のプロセッサに実行させる段階をさらに備える、項目７または８に記載の方法。
［項目１０］
前記少なくとも１つの電子プロセッシングシステムを介して、前記少なくとも１つの電子プロセッシングシステムの処理時間を短縮するやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する段階をさらに備える、項目７または８に記載の方法。
［項目１１］
コンピューティングデバイスに、項目７から１０のいずれか１項に記載の方法を実行させるプログラム。
［項目１２］
パケットを処理する方法であり、
少なくとも１つの電子プロセッシングシステムを介して、第１のレートが第２のレートより小さいか否かを判断する段階を備え、
前記第１のレートは、パケットの一の情報単位を処理するために第１のプロセッサにより消費されるエネルギーの量であり、
前記第２のレートは、前記パケットの前記一の情報単位を処理するために第２のプロセッサにより消費されるエネルギーの量であり、
前記第１のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
前記第２のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
前記第２のプロセッサは、前記第１のプロセッサとは異なり、
前記方法は、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のプロセッサの処理時間が所望される最大処理時間よりも短いか否かを判断する段階と、
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記処理時間が前記所望される最大処理時間よりも短い場合に、前記パケットに関するネットワーキング処理を前記第１のプロセッサに実行させる段階とをさらに備える、方法。
［項目１３］
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、項目１２に記載の方法。
［項目１４］
前記少なくとも１つの電子プロセッシングシステムを介して、前記第１のレートが前記第２のレートよりも小さく、前記第１のプロセッサの前記処理時間が、前記所望される最大処理時間と等しい、およびそれよりも長いの一方である場合に、前記パケットに関する前記ネットワーキング処理を前記第２のプロセッサに実行させる段階をさらに備える、項目１２または１３に記載の方法。
［項目１５］
前記少なくとも１つの電子プロセッシングシステムを介して、前記所望される最大処理時間を設定するための信号をユーザから受信する段階をさらに備える、項目１２または１３に記載の方法。
［項目１６］
コンピューティングデバイスに、項目１２から１５のいずれか１項に記載の方法を実行させるプログラム。
［項目１７］
パケットを処理するシステムであり、
ネットワークインタフェースコントローラの処理時間の測定である第１の測定を判断し、前記第１の測定を送信する第１の電子システムと、
中央処理装置の処理時間の測定である第２の測定を判断し、前記第２の測定を送信する第２の電子システムと、
前記第１の測定および前記第２の測定を受信し、前記ネットワークインタフェースコントローラと前記中央処理装置のうち前記パケットに関するネットワーキング処理を実行する一方を選択する第３の電子システムと
を備える、システム。
［項目１８］
前記第３の電子システムはさらに、前記パケットを処理する前記システムの処理時間を短縮するやり方で前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する、項目１７に記載のシステム。
［項目１９］
前記第３の電子システムはさらに、所望される最大処理時間を設定するための信号をユーザから受信する、項目１７または１８に記載のシステム。
［項目２０］
前記第１の電子システムと前記第２の電子システムとのうち少なくとも一方は、前記処理時間の前記測定を判断するためにタイムスタンプ技術を用いる、項目１７から１９のいずれか１項に記載のシステム。
［項目２１］
第１のレートおよび第２のレートを送信する第４の電子システムをさらに備え、
前記第１のレートは前記パケットの一の情報単位を処理するために前記ネットワークインタフェースコントローラにより消費されるエネルギーの量であり、
前記第２のレートは、前記パケットの前記一の情報単位を処理するために前記中央処理装置により消費されるエネルギーの量であり、
前記第３の電子システムはさらに、前記第１のレートおよび前記第２のレートを受信する、項目１７から２０のいずれか１項に記載のシステム。
［項目２２］
前記第３の電子システムはさらに、前記パケットを処理するために前記システムにより消費されるエネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する、項目２１に記載のシステム。
［項目２３］
前記第１のレートと前記第２のレートとのうち少なくとも一方の少なくとも１つの予め定められた値を格納するメモリをさらに備える、項目２１または２２に記載のシステム。
［項目２４］
第３の測定を判断し、前記第３の測定を送信する第５の電子システムをさらに備え、
前記第３の測定は、前記ネットワークインタフェースコントローラの負荷の測定であり、
前記第３の電子システムはさらに、前記第３の測定を受信し、
前記システムはさらに、第４の測定を判断し、前記第４の測定を送信する第６の電子システムを備え、
前記第４の測定は、前記中央処理装置の負荷の測定であり、
前記第３の電子システムはさらに、前記第４の測定を受信する、項目２１または２２に記載のシステム。
［項目２５］
前記第５の電子システムと前記第６の電子システムとのうち少なくとも一方は、前記負荷の前記測定の判断にカウンタを用いる、項目２４に記載のシステム。