"パケットを処理する方法であり、少なくとも1つの電子プロセッシングシステムを介して、第1のレートが第2のレートより小さいか否かを判断する段階を備え、前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり、前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費される前記エネルギーの量であり、前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、前記第2のプロセッサは前記第1のプロセッサとは異なり、前記方法はさらに、前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの負荷がフルロードより小さいか否かを判断する段階と、前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷が前記フルロードよりも小さい場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階とを備える方法。前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項1に記載の方法。前記第1のレートと前記第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値はメモリに格納され、前記方法は、前記少なくとも1つの電子プロセッシングシステムを介して、前記メモリから前記少なくとも1つの予め定められた値を取得する段階をさらに備える、請求項1に記載の方法。前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷がフルロードに実質的に等しい場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階をさらに備える、請求項1に記載の方法。前記少なくとも1つの電子プロセッシングシステムを介して、前記少なくとも1つの電子プロセッシングシステムにより消費される前記エネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する段階をさらに備える、請求項1記載の方法。命令を格納した非一時的機械可読媒体であり、前記命令は、電子プロセッシングシステムにより実行された場合に前記電子プロセッシングシステムに、第1のレートが第2のレートより小さいか否かを判断させる命令を実行させ、前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり、前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費される前記エネルギーの量であり、前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、前記第2のプロセッサは前記第1のプロセッサとは異なり、前記命令は、前記電子プロセッシングシステムにより実行された場合に前記電子プロセッシングシステムにさらに、前記第1のプロセッサの負荷がフルロードより小さいか否かを判断させる命令と、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷が前記フルロードよりも小さい場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる命令とを実行させる、非一時的機械可読媒体。前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項6に記載の非一時的機械可読媒体。前記第1のレートと前記第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値はメモリに格納され、前記非一時的機械可読媒体は、前記メモリから前記少なくとも1つの予め定められた値を取得させる命令をさらに備える、請求項6に記載の非一時的機械可読媒体。前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷が前記フルロードに実質的に等しい場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる命令をさらに備える、請求項6に記載の非一時的機械可読媒体。前記電子プロセッシングシステムにより消費される前記エネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信させる命令をさらに備える、請求項6に記載の非一時的機械可読媒体。パケットを処理する方法であり、少なくとも1つの電子プロセッシングシステムを介して、ネットワークインタフェースコントローラと中央処理装置とのうち一方である第1のプロセッサの処理時間を判断する段階と、前記少なくとも1つの電子プロセッシングシステムを介して、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり前記第1のプロセッサとは異なる第2のプロセッサの前記処理時間を判断する段階と、前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの前記処理時間が前記第2のプロセッサの前記処理時間より短い場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階とを備える方法。前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項11に記載の方法。前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの前記処理時間が前記第2のプロセッサの前記処理時間と等しい、およびそれよりも長いの一方である場合、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階をさらに備える、請求項11に記載の方法。前記少なくとも1つの電子プロセッシングシステムを介して、前記少なくとも1つの電子プロセッシングシステムの前記処理時間を短縮するやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する段階をさらに備える、請求項11に記載の方法。命令を格納した非一時的機械可読媒体であり、前記命令は、電子プロセッシングシステムにより実行された場合に前記電子プロセッシングシステムに、ネットワークインタフェースコントローラと中央処理装置とのうち一方である第1のプロセッサの処理時間を判断する命令と、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり前記第1のプロセッサとは異なる第2のプロセッサの前記処理時間を判断する命令と、前記第1のプロセッサの前記処理時間が前記第2のプロセッサの前記処理時間より短い場合に、パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる命令とを実行させる、非一時的機械可読媒体。前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項15に記載の非一時的機械可読媒体。前記第1のプロセッサの前記処理時間が前記第2のプロセッサの前記処理時間と等しい、およびそれよりも長いの一方である場合、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる命令をさらに備える、請求項15に記載の非一時的機械可読媒体。前記電子プロセッシングシステムの前記処理時間を短縮するやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信させる命令をさらに備える、請求項15に記載の非一時的機械可読媒体。パケットを処理する方法であり、少なくとも1つの電子プロセッシングシステムを介して、第1のレートが第2のレートより小さいか否かを判断する段階を備え、前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり、前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費される前記エネルギーの量であり、前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、前記第2のプロセッサは、前記第1のプロセッサとは異なり、前記方法は、前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの処理時間が所望される最大処理時間よりも短いか否かを判断する段階と、前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が前記所望される最大処理時間よりも短い場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階とをさらに備える、方法。前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項19に記載の方法。前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が、前記所望される最大処理時間と等しい、およびそれよりも長いの一方である場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階をさらに備える、請求項19に記載の方法。前記少なくとも1つの電子プロセッシングシステムを介して、前記所望される最大処理時間を設定するための信号をユーザから受信する段階をさらに備える、請求項19に記載の方法。命令を格納した非一時的機械可読媒体であり、前記命令は、電子プロセッシングシステムにより実行された場合に前記電子プロセッシングシステムに、第1のレートが第2のレートより小さいか否かを判断する命令を備え、前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり、前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費される前記エネルギーの量であり、前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、前記第2のプロセッサは、前記第1のプロセッサとは異なり、前記命令は、前記電子プロセッシングシステムにより実行された場合に前記電子プロセッシングシステムにさらに、前記第1のプロセッサの処理時間が所望される最大処理時間よりも短いか否かを判断する命令と、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの処理時間が前記所望される最大処理時間よりも短い場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる命令とを実行させる、非一時的機械可読媒体。前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項23に記載の非一時的機械可読媒体。前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が、前記所望される最大処理時間と等しい、およびそれよりも長いの一方である場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる命令をさらに備える、請求項23に記載の非一時的機械可読媒体。前記所望される最大処理時間を設定するための信号をユーザから受信させる命令をさらに備える、請求項23に記載の非一時的機械可読媒体。パケットを処理するシステムであり、ネットワークインタフェースコントローラの処理時間の測定である第1の測定を判断し、前記第1の測定を送信する第1の電子システムと、中央処理装置の前記処理時間の前記測定である第2の測定を判断し、前記第2の測定を送信する第2の電子システムと、前記第1の測定および前記第2の測定を受信し、前記ネットワークインタフェースコントローラと前記中央処理装置のうち前記パケットに関するネットワーキング処理を実行する一方を選択する第3の電子システムとを備える、システム。前記第3の電子システムはさらに、前記パケットを処理する前記システムの前記処理時間を短縮するやり方で前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する、請求項27に記載のシステム。前記第3の電子システムはさらに、所望される最大処理時間を設定するための信号をユーザから受信する、請求項27に記載のシステム。前記第1の電子システムと前記第2の電子システムとのうち少なくとも一方は、前記処理時間の前記測定を判断するためにタイムスタンプ技術を用いる、請求項27に記載のシステム。前記第1の電子システムは、前記ネットワークインタフェースコントローラから前記パケットを受信するネットワークソケットに位置付けられる、請求項27に記載のシステム。前記第1の電子システムは、ネットワークインタフェースコントローラドライバに位置付けられる、請求項27に記載のシステム。前記第1の電子システムは前記ネットワークインタフェースコントローラに位置付けられる、請求項27に記載のシステム。前記第1の電子システムと前記第3の電子システムとの間の通信パスをさらに備え、前記通信パスは、前記ネットワークインタフェースコントローラから前記パケットを受信するネットワークソケットと、ネットワークインタフェースコントローラドライバとのうち少なくとも一方を通る、請求項33に記載のシステム。第1のレートおよび第2のレートを送信する第4の電子システムをさらに備え、前記第1のレートは前記パケットの一の情報単位を処理するために前記ネットワークインタフェースコントローラにより消費されるエネルギーの量であり、前記第2のレートは、前記パケットの前記一の情報単位を処理するために前記中央処理装置により消費される前記エネルギーの量であり、前記第3の電子システムはさらに、前記第1のレートおよび前記第2のレートを受信する、請求項27に記載のシステム。前記第3の電子システムはさらに、前記パケットを処理するために前記システムにより消費される前記エネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する、請求項35に記載のシステム。前記第1のレートと前記第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値を格納するメモリをさらに備える、請求項35に記載のシステム。第3の測定を判断し、前記第3の測定を送信する第5の電子システムをさらに備え、前記第3の測定は、前記ネットワークインタフェースコントローラの負荷の測定であり、前記第3の電子システムはさらに、前記第3の測定を受信し、前記システムはさらに、第4の測定を判断し、前記第4の測定を送信する第6の電子システムを備え、前記第4の測定は、前記中央処理装置の前記負荷の測定であり、前記第3の電子システムはさらに、前記第4の測定を受信する、請求項35に記載のシステム。前記第5の電子システムと前記第6の電子システムとのうち少なくとも一方は、前記負荷の前記測定の判断にカウンタを用いる、請求項38に記載のシステム。前記第5の電子システムは、前記ネットワークインタフェースコントローラから前記パケットを受信するネットワークソケットに位置付けられる、請求項38に記載のシステム。前記第5の電子システムは、ネットワークインタフェースコントローラドライバに位置付けられる、請求項38に記載のシステム。前記第5の電子システムは、前記ネットワークインタフェースコントローラに位置付けられる、請求項38に記載のシステム。前記第5の電子システムと前記第3の電子システムとの間の通信パスをさらに備え、前記通信パスは、前記ネットワークインタフェースコントローラから前記パケットを受信するネットワークソケットと、ネットワークインタフェースコントローラドライバとのうち少なくとも一方を通る、請求項42に記載のシステム。図面を参照して実施形態を説明する。図中において同様の参照番号は同一の、または機能的に同様の要素を示す。特定の構造および構成が説明されるが、このことは例示的な目的のみのために行われていることを理解されるべきである。当業者は、説明の思想および態様から逸脱することなく他の構造および構成が用いられ得ることを認識されよう。このことが、本明細書に説明されるものの他に他の様々なシステムおよびアプリケーションでも採用され得ることが当業者には明らかであろう。本明細書には、パケットを処理する方法、システムおよびコンピュータプログラム製品が開示される。パケットを処理するシステムは、ネットワークインタフェースコントローラと中央処理装置とのうちそれぞれに関して、処理時間の測定、パケットの一の情報単位を処理するために消費されるエネルギーの量の判断、および負荷の測定を含み得る。ユーザは、好ましいやり方でネットワーキング処理を実行するための信号をシステムに提供し得る。システムの一部は、当該測定、判断、および信号のうち少なくとも1つを受信し得、パケットに関するネットワーキング処理をネットワークインタフェースコントローラと中央処理装置とのうち一方に実行させ得る。ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。本明細書に説明される実施形態は単一のパケットを処理することに関して説明されるが、当業者は、これらの実施形態が、集合として処理されることが意図される一連のパケットなど、パケットフローに対しても動作し得ることを理解されよう。したがって、本明細書に説明される実施形態は、単一のパケットに適用されるのと同じやり方でパケットフローに適用される。ユーザはシステムに対し、全体的なシステムの処理時間を短縮するやり方で、パケットに関するネットワーキング処理を実行するための信号を提供し得る。例えば、ネットワーキング処理の実行は、ネットワークインタフェースコントローラと中央処理装置との間で分散され得る。代替的にユーザは、システムに対し、パケットを処理するために全体的なシステムにより消費されるエネルギーの量を低減させるやり方で、ネットワーキング処理を実行するための信号を提供し得る。例えば、ネットワークインタフェースコントローラと中央処理装置との間で選択出来るのであれば、選択されたプロセッサの負荷がフルロードに実質的に等しくなるまで、それら2つのうちよりエネルギー効率のよい方がネットワーキング処理を実行するよう選択され得る。代替的にユーザは、システムに対し、所望される最大処理時間に達するまで、パケットを処理するために全体的なシステムにより消費されるエネルギーの量を低減させるやり方でネットワーキング処理を実行するための信号を提供し得る。例えば最初は、ネットワークインタフェースコントローラと中央処理装置とのうちよりエネルギー効率のよい方が、ネットワーキング処理を実行するよう選択され得る。新たな接続が開始し、処理時間が所望される最大処理時間より短い場合、選択されたプロセッサが新たな接続のためにネットワーキング処理を実行し得る。さらにシステムは、継続中の接続の間、ネットワークインタフェースコントローラと中央処理装置との間でネットワーキング処理をシフトするために動的に用いられ得る。例えば、いくつかのパケットに関するネットワーキング処理がネットワークインタフェースコントローラにより完了され、ネットワークインタフェースコントローラの負荷がフルロードより少ない場合、中央処理装置により実行されている他のパケットに関する継続中のネットワーキング処理は、ネットワークインタフェースコントローラにシフトされ得る。このことは、全体的なシステムの性能、全体的なシステムのエネルギー効率、または他の優先事項を最適化するために行われ得る。本明細書に説明される実施形態は、全体的なシステムの性能の考慮が欠如していることに起因する、TCPオフロードエンジンの現在の実装における不足を認識している。追加的に、TCPオフロードエンジンの現在の実装は、全体的なシステムのエネルギー効率を考慮しない。現在のTCPオフロードエンジンは、全体的なシステムの性能または全体的なシステムエネルギー効率を最適化するために、ネットワークインタフェースコントローラと中央処理装置との間でネットワーキング処理をシフトし、プロセッサ間の接続のバランスをとるよう設計されていない。さらに現在のTCPオフロードエンジンは、ネットワーキング処理が、システムの処理時間を短縮するやり方で実行されること、または、パケットを処理するためにシステムにより消費されるエネルギーの量を低減させるやり方で実行されることを優先するよう、全体的なシステムのユーザが示すためのメカニズムを提供しない。これらの不足は所望されない影響を生じさせる。例えば、大きな負荷が与えられたネットワークインタフェースコントローラは、パケットを処理するために長い時間を要し得、このことは、全体的なシステムの性能を低下させ得る。追加的に、ネットワークインタフェースコントローラおよび中央処理装置のエネルギー効率の差の考慮が欠如していることの結果として、ネットワーキング処理は、効率のよい中央処理装置ではなく効率のよくないネットワークインタフェースコントローラにより実行されることとなり得、このことは、全体的なシステムの冷却系に重い負担を与え得、そのバッテリの任意のサイクル間に全体的なシステムにより実行され得る処理数を制限し得る。図1は、実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。図1の方法100は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせを動作させる電子プロセッシングシステムを用いて実行され得る。方法100において任意選択的に、102において、電子プロセッシングシステムは、電子プロセッシングシステムにより消費されるエネルギーの量を低減させるやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信し得る。任意選択的に104において、電子プロセッシングシステムは、メモリから少なくとも1つの予め定められた値を取得し得る。少なくとも1つの予め定められた値は、第1のレート、第2のレート、または両方のものであり得る。第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり得る。第2のレートは、パケットの当該一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であり得る。第1および第2のレートは、例えばジュール/バイトで表され得る。第1のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは第1のプロセッサとは異なる。106において、電子プロセッシングシステムは第1のレートが第2のレートより小さいか否かを判断し得る。108において、電子プロセッシングシステムは、第1のプロセッサの負荷がフルロードより小さいか否かを判断し得る。110において、第1のレートが第2のレートより小さく、第1のプロセッサの負荷がフルロードより小さい場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第1のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に112において、第1のレートが第2のレートより小さく、第1のプロセッサの負荷がフルロードと実質的に等しい場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第2のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。図2は、実施形態に係る、方法100のソフトウェアまたはファームウェア実施形態の例のブロック図である。図2において、電子プロセッシングシステム200は例えば、2またはそれより多くのプログラマブルプロセッサ202、204、メモリ206、コンピュータプログラムロジック208、1または複数のI/Oポートおよび/またはI/Oデバイス210、第1の比較ロジック212、並びに、第2の比較ロジック214、スイッチロジック216を含み得る。任意選択的に、電子プロセッシングシステム200は信号処理ロジック218も含み得る。任意選択的に、電子プロセッシングシステム200はメモリ取得ロジック220も含み得る。2またはそれより多くのプログラマブルプロセッサ202、204は、上述したような方法100の機能を実行するよう構成され得る。2またはそれより多くのプログラマブルプロセッサ202、204は、ネットワークインタフェースコントローラNIC、並びに、中央処理装置CPUおよび/またはグラフィクスプロセッシングユニットGPUを含み得る。メモリ206は、コンピュータプログラムロジック208を格納し得る1または複数のコンピュータ可読媒体を含み得る。メモリ206は、ハードディスクドライブ、例えばコンパクトディスク、読取専用メモリROM、またはランダムアクセスメモリRAMデバイスなどの取り外し可能な媒体、若しくはこれらの何らかの組み合わせとして実装され得る。2またはそれより多くのプログラマブルプロセッサ202、204およびメモリ206は、バスなど、当業者に公知のいくつかの技術のうちいずれかを用いて通信を行い得る。メモリ206に含まれるコンピュータプログラムロジック208は2またはそれより多くのプログラマブルプロセッサ202、204により読み取られ実行され得る。1または複数のI/Oポートおよび/またはI/Oデバイス210は、2またはそれより多くのプログラマブルプロセッサ202、204およびメモリ206にも接続され得る。図2の実施形態において、コンピュータプログラムロジック208は、第1のレートが第2のレートより小さいか否かを判断するよう構成され得る第1の比較ロジック212を含み得る。第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり得る。第2のレートは、パケットの当該一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であり得る。第1および第2のレートは、例えばジュール/バイトで表され得る。第1のプロセッサはネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサはネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは第1のプロセッサとは異なる。コンピュータプログラムロジック208は、第1のプロセッサの負荷がフルロードより小さい、またはフルロードと実質的に等しいか否かを判断するよう構成され得る第2の比較ロジック214も含み得る。コンピュータプログラムロジック208は、第1のレートが第2のレートより小さく、第1のプロセッサの負荷がフルロードより小さい場合に、パケットに関するネットワーキング処理を第1のプロセッサに実行させるよう構成され得るスイッチロジック216も含み得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、スイッチロジック216は、第1のレートが第2のレートより小さく、第1のプロセッサの負荷がフルロードに実質的に等しい場合に、パケットに関するネットワーキング処理を第2のプロセッサに実行させるようにも構成され得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、コンピュータプログラムロジック208は、電子プロセッシングシステム200により消費されるエネルギーの量を低減させるやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信するよう構成され得る信号処理ロジック218も含み得る。任意選択的にコンピュータプログラムロジック208は、メモリから少なくとも1つの予め定められた値を取得するよう構成され得るメモリ取得ロジック220も含み得る。少なくとも1つの予め定められた値は、第1のレート、第2のレート、または両方のものであり得る。図3は、実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。図3の方法300は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせを動作させる電子プロセッシングシステムを用いて実行され得る。方法300において任意選択的に、302において、電子プロセッシングシステムは、電子プロセッシングシステムの処理時間を短縮するやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信し得る。304において、電子プロセッシングシステムは、第1のプロセッサの処理時間を判断し得る。第1のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。306において、電子プロセッシングシステムは、第2のプロセッサの処理時間を判断し得る。第2のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは第1のプロセッサとは異なる。308において、第1のプロセッサの処理時間が第2のプロセッサの処理時間より短い場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第1のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に310において、第1のプロセッサの処理時間が第2のプロセッサの処理時間に等しい、またはそれよりも長い場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第2のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。図4は、実施形態に係る、方法300のソフトウェアまたはファームウェア実施形態の例のブロック図である。図4において、電子プロセッシングシステム400は例えば、2またはそれより多くのプログラマブルプロセッサ402、404、メモリ406、コンピュータプログラムロジック408、1または複数のI/Oポートおよび/またはI/Oデバイス410、第1の測定ロジック412、第2の測定ロジック414、並びにスイッチロジック416を含み得る。任意選択的に、電子プロセッシングシステム400は信号処理ロジック418も含み得る。2またはそれより多くのプログラマブルプロセッサ402、404は、上述したような方法300の機能を実行するよう構成され得る。2またはそれより多くのプログラマブルプロセッサ402、404は、ネットワークインタフェースコントローラNIC、並びに、中央処理装置CPUおよび/またはグラフィクスプロセッシングユニットGPUを含み得る。メモリ406は、コンピュータプログラムロジック408を格納し得る1または複数のコンピュータ可読媒体を含み得る。メモリ406は、ハードディスクドライブ、例えばコンパクトディスク、読取専用メモリROM、またはランダムアクセスメモリRAMデバイスなどの取り外し可能な媒体、若しくはこれらの何らかの組み合わせとして実装され得る。2またはそれより多くのプログラマブルプロセッサ402、404およびメモリ406は、バスなど、当業者に公知のいくつかの技術のうちいずれかを用いて通信を行い得る。メモリ406に含まれるコンピュータプログラムロジック408は2またはそれより多くのプログラマブルプロセッサ402、404により読み取られ実行され得る。1または複数のI/Oポートおよび/またはI/Oデバイス410は、2またはそれより多くのプログラマブルプロセッサ402、404およびメモリ406にも接続され得る図4の実施形態において、コンピュータプログラムロジック408は、第1のプロセッサの処理時間を判断するよう構成され得る第1の測定ロジック412を含み得る。第1のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。コンピュータプログラムロジック408は、第2のプロセッサの処理時間を判断するよう構成され得る第2の測定ロジック414も含む。第2のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは第1のプロセッサとは異なる。コンピュータプログラムロジック408は、第1のプロセッサの処理時間が第2のプロセッサの処理時間より短い場合に、パケットに関するネットワーキング処理を第1のプロセッサに実行させるよう構成され得るスイッチロジック416も含み得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、スイッチロジック416は、第1のプロセッサの処理時間が第2のプロセッサの処理時間に等しい、またはそれよりも長い場合に、パケットに関するネットワーキング処理を第2のプロセッサに実行させるようにも構成され得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、コンピュータプログラムロジック408は、電子プロセッシングシステム400の処理時間を短縮するやり方でパケットに関するネットワーキング処理を実行するための信号をユーザから受信するよう構成され得る信号処理ロジック418も含み得る。図5は、実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。図5の方法500は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせを動作させる電子プロセッシングシステムを用いて実行され得る。方法500において任意選択的に、502において、電子プロセッシングシステムは、所望される最大処理時間を設定するための信号をユーザから受信し得る。504において、電子プロセッシングシステムは第1のレートが第2のレートより小さいか否かを判断し得る。第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり得る。第2のレートは、パケットの当該一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であり得る。第1および第2のレートは、例えばジュール/バイトで表され得る。第1のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは第1のプロセッサとは異なる。506において、電子プロセッシングシステムは、第1のプロセッサの処理時間が所望される最大処理時間より短いか否かを判断し得る。508において、第1のレートが第2のレートより小さく、第1のプロセッサの処理時間が所望される最大処理時間より短い場合、電子プロセッシングシステムは、パケットに関するネットワーキング処理を第1のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に510において、第1のレートが第2のレートより小さく、第1のプロセッサの処理時間が所望される最大処理時間に等しい、またはそれよりも長い場合、電子プロセッシングシステムはパケットに関するネットワーキング処理を第2のプロセッサに実行させ得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。図6は、実施形態に係る、方法500のソフトウェアまたはファームウェア実施形態の例のブロック図である。図6において、電子プロセッシングシステム600は例えば、2またはそれより多くのプログラマブルプロセッサ602、604、メモリ606、コンピュータプログラムロジック608、1または複数のI/Oポートおよび/またはI/Oデバイス610、第1の比較ロジック612、第2の比較ロジック614、並びにスイッチロジック616を含み得る。任意選択的に、電子プロセッシングシステム600は信号処理ロジック618も含み得る。2またはそれより多くのプログラマブルプロセッサ602、604は、上述したような方法500の機能を実行するよう構成され得る。2またはそれより多くのプログラマブルプロセッサ602、604は、ネットワークインタフェースコントローラNIC、並びに、中央処理装置CPUおよび/またはグラフィクスプロセッシングユニットGPUを含み得る。メモリ606は、コンピュータプログラムロジック608を格納し得る1または複数のコンピュータ可読媒体を含み得る。メモリ606は、ハードディスクドライブ、例えばコンパクトディスク、読取専用メモリROM、またはランダムアクセスメモリRAMデバイスなどの取り外し可能な媒体、若しくはこれらの何らかの組み合わせとして実装され得る。2またはそれより多くのプログラマブルプロセッサ602、604およびメモリ606は、バスまたはインターコネクトなど、当業者に公知のいくつかの技術のうちいずれかを用いて通信を行い得る。メモリ606に含まれるコンピュータプログラムロジック608は2またはそれより多くのプログラマブルプロセッサ602、604により読み取られ実行され得る。1または複数のI/Oポートおよび/またはI/Oデバイス610は、2またはそれより多くのプログラマブルプロセッサ602、604およびメモリ606にも接続され得る。図6の実施形態において、コンピュータプログラムロジック608は、第1のレートが第2のレートより小さいか否かを判断するよう構成され得る第1の比較ロジック612を含み得る。第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり得る。第2のレートは、パケットの当該一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であり得る。第1および第2のレートは、例えばジュール/バイトで表され得る。第1のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは、ネットワークインタフェースコントローラまたは中央処理装置であり得る。第2のプロセッサは第1のプロセッサとは異なる。コンピュータプログラムロジック608は、第1のプロセッサの処理時間が所望される最大処理時間より短いか否かを判断するよう構成され得る第2の比較ロジック614も含み得る。コンピュータプログラムロジック608は、第1のレートが第2のレートより小さく、第1のプロセッサの処理時間が所望される最大処理時間より短い場合に、パケットに関するネットワーキング処理を第1のプロセッサに実行させるよう構成され得るスイッチロジック616も含み得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、スイッチロジック616は、第1のレートが第2のレートより小さく、第1のプロセッサの処理時間が所望される最大処理時間に等しい、またはそれよりも長い場合に、パケットに関するネットワーキング処理を第2のプロセッサに実行させるようにも構成され得る。任意選択的に、ネットワーキング処理は、ネットワークへの接続を確立することを含み得る。任意選択的に、コンピュータプログラムロジック608は、所望される最大処理時間を設定するための信号をユーザから受信するよう構成され得る信号処理ロジック618も含み得る。図7、8および9は、実施形態に係るパケットを処理する例示的なシステムのブロック図である。図7において、システム700は例えば、第1の電子システム702、第2の電子システム704および第3の電子システム706を含む。任意選択的にシステム700は、第4の電子システム708も含み得る。任意選択的にシステム700は、第5の電子システム710および第6の電子システム712も含み得る。第1の電子システム702は、第1の測定を判断し、第1の測定を送信するよう構成され得る。第1の測定は、ネットワークインタフェースコントローラ714の処理時間の測定である。任意選択的に第1の電子システム702は、タイムスタンプ技術を用いて処理時間の測定を判断し得る。タイムスタンプ技術を用いて、処理時間の測定は、ネットワークインタフェースコントローラ714がパケットを処理し終える時点と、ネットワークインタフェースコントローラ714がパケットを受信する時点との間の差として判断され得る。代替的に、処理時間の測定は、当業者には明らかである他のやり方で判断され得る。任意選択的に第1の電子システム702は、パケットを受信するよう構成されたネットワークソケット716に位置付けられ得る。代替的に第1の電子システム702は、図8に図示されるように、ネットワークインタフェースコントローラドライバ802に位置付けられ得る。代替的に第1の電子システム702は、図9に図示されるように、ネットワークインタフェースコントローラ714に位置付けられ得る。任意選択的に、第1の電子システム702がネットワークインタフェースコントローラ714に位置付けられる場合、システム700はさらに、ネットワークソケット716とネットワークインタフェースコントローラドライバ802とのうち少なくとも1つを通る、第1の電子システム702と第3の電子システム706との間の通信パス902を備え得る。第2の電子システム704は、第2の測定を判断し、第2の測定を送信するよう構成され得る。第2の測定は、中央処理装置の処理時間の測定である。中央処理装置についての情報は、例えばカーネル/ソケット718を介して受信され得る。任意選択的に第2の電子システム704は、タイムスタンプ技術を用いて処理時間の測定を判断し得る。タイムスタンプ技術を用いて、処理時間の測定は、中央処理装置がパケットを処理し終える時点と、中央処理装置がパケットを受信する時点との間の差として判断され得る。代替的に、処理時間の測定は、当業者には明らかである他のやり方で判断され得る。第3の電子システム706は、第1の測定および第2の測定を受信し、ネットワークインタフェースコントローラ714と中央処理装置とのうちパケットに関するネットワーキング処理を実行する一方を選択するよう構成され得る。任意選択的に第3の電子システム706はさらに、パケットを処理するシステム700の処理時間を短縮するやり方でパケットに関するネットワーキング処理を実行するための信号720をユーザから受信するよう構成され得る。任意選択的に第3の電子プロセッシングシステム706はさらに、所望される最大処理時間を設定するための信号722をユーザから受信するよう構成され得る。第4の電子システム708は、第1のレートおよび第2のレートを送信するよう構成され得る。第1のレートは、パケットの一の情報単位を処理するためにネットワークインタフェースコントローラ714により消費されるエネルギーの量である。第2のレートは、パケットの当該一の情報単位を処理するために中央処理装置により消費されるエネルギーの量である。第1および第2のレートは、例えばジュール/バイトで表され得る。第3の電子システム706はさらに、第1のレートおよび第2のレートを受信するよう構成され得る。任意選択的に第3の電子プロセッシングシステム706はさらに、パケットを処理するためにシステム700により消費されるエネルギーの量を低減させるやり方で、パケットに関するネットワーキング処理を実行するための信号724をユーザから受信するよう構成され得る。任意選択的に、第1のレート、第2のレートまたは両方は、ネットワークインタフェースコントローラ714、中央処理装置または両方のハードウェアの仕様、ファームウェアの仕様、または両方に基づき知られ得る。第1のレートと第2のレートとのうち少なくとも一方が予め定められている場合、システム700はさらに、第1のレートと第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値を格納するよう構成されたメモリ726を備え得る。代替的に第4の電子システム708はさらに、当業者には明らかである他のやり方で、第1のレートと第2のレートとのうち少なくとも一方を判断するよう構成され得る。第5の電子システム710は、第3の測定を判断し、第3の測定を送信するよう構成され得る。第3の測定は、ネットワークインタフェースコントローラ714の負荷の測定である。第3の電子システム706はさらに、第3の測定を受信するよう構成され得る。任意選択的に第5の電子システム710は、カウンタを用いて負荷の測定を判断し得る。カウンタはネットワークインタフェースコントローラ714により実行される処理の数をカウントし得る。一般的に、ネットワークインタフェースコントローラ714への接続がより多くあるということは、より高いパケットレートおよびより長い処理時間を示唆する。代替的に負荷の測定は、当業者には明らかであるように他のやり方で判断され得る。任意選択的に第5の電子システム710は、ネットワークソケット716に位置付けられ得る。代替的に第5の電子システム710は、図8に図示されるように、ネットワークインタフェースコントローラドライバ802に位置付けられ得る。代替的に第5の電子システム710は、図9に図示されるように、ネットワークインタフェースコントローラ714に位置付けられ得る。任意選択的に、第5の電子システム710がネットワークインタフェースコントローラ714に位置付けられる場合、システム700はさらに、ネットワークソケット716とネットワークインタフェースコントローラドライバ802とのうち少なくとも1つを通る、第5の電子システム710と第3の電子システム706との間の通信パス904を備え得る。第6の電子システム712は、第4の測定を判断し、第4の測定を送信するよう構成され得る。第4の測定は、中央処理装置の負荷の測定である。中央処理装置についての情報は、例えばカーネル/ソケット718を介して受信され得る。第3の電子システム706はさらに、第4の測定を受信するよう構成され得る。任意選択的に第6の電子システム712は、カウンタを用いて負荷の測定を判断し得る。カウンタは、中央処理装置により実行される処理の数をカウントし得る。一般的に、中央処理装置への接続がより多いということは、より高いパケットレートおよびより長い処理時間を示唆する。代替的に負荷の測定は、当業者には明らかであるように他のやり方で判断され得る。図10は、オフロードエンジンの現在の実装静的なポリシーと、本明細書に説明される実施形態を組み込んだオフロードエンジン適合的なポリシーのネットワーキング処理のための時間を比較する棒グラフである。図10に図示される結果をもたらしたシミュレーションは、ネットワークインタフェースコントローラの負荷がフルロードより小さいものである限り中央処理装置からネットワークインタフェースコントローラへネットワーキング処理を自動的にシフトするオフロードエンジン静的なポリシーを仮定した。合計2,048の接続が確立された場合、ネットワークインタフェースコントローラの負荷は、フルロードと実質的に等しかった。シミュレーションは、これらの条件において、ネットワークインタフェースコントローラが、パケットに関するネットワーキング処理を完了するためにほぼ1ミリ秒要したことを示した。そのような長い遅延は、全体的な性能を実質的に低下させ得る。対照的に、本質的にサービス品質情報を考慮する本明細書に説明される実施形態を組み込んだオフロードエンジン適合的なポリシーに関しては、およそ1,000の接続のみがネットワークインタフェースコントローラへシフトされた。このことにより、ネットワーキング処理のための処理時間がおよそ20マイクロ秒まで短縮された。追加的に、およそ1,000の接続に関連付けられたネットワーキング処理をネットワークインタフェースコントローラに実行させることにより、中央処理装置を他の処理を実行するために実質的に解放した。処理時間の短縮により測定される、このシミュレーションに関する性能の向上は、およそ50倍である。この因数は、新たなネットワークインタフェースコントローラがより多くの接続のための能力を有するよう開発されているので、さらに大きくなり得る。多くの仮想マシンが同時に動作している、大きな負荷がかかるデータセンターのサーバにおいては、7,000~10,000の同時のネットワーク接続があることは珍しくないので、本明細書に説明される実施形態を組み込んだオフロードエンジンを有することは、ネットワーキング処理のための処理時間を制御するために重要であり得る。図11は、オフロードエンジンの現在の実装静的なポリシーと、本明細書に説明される実施形態を組み込んだオフロードエンジン適合的なポリシーのネットワーキング処理のためのエネルギー効率を比較する棒グラフである。図11に図示される結果をもたらしたシミュレーションは、中央処理装置のエネルギー効率が0.1ジュール/メガバイトであり、ネットワークインタフェースコントローラのエネルギー効率が0.2ジュール/メガバイトであるものと仮定したつまりシミュレーションは、中央処理装置の方が、ネットワークインタフェースコントローラよりエネルギー効率のよいことを仮定した。シミュレーションは100メガバイト/秒のスループットも仮定した。ネットワーキング処理を中央処理装置からネットワークインタフェースコントローラへ自動的にシフトするオフロードエンジン静的なポリシーに関して、シミュレーションは、ネットワーキング処理の総電力消費がおよそ20ワットであると判断した。本明細書に説明される実施形態を組み込んだオフロードエンジン適合的なポリシーに関して、ネットワークインタフェースコントローラの負荷が十分に小さく、ネットワークインタフェースコントローラがネットワーキング処理のうちいくつかを実行出来るはずである場合であってもネットワーキング処理は殆ど中央処理装置によって実行された。シミュレーションは、中央処理装置がその他の処理に加えて、処理時間をそれ程増加させることなく80メガバイト/秒のスループット率でネットワーキング処理を実行できるものと仮定した。100メガバイト/秒の全体的なスループットを満たすべく、ネットワーキング処理を実行するためにネットワークインタフェースコントローラに要求されるスループット率は、20メガバイト/秒のみであった。このことにより、ネットワーキング処理のために消費される電力がおよそ12ワットまで低減された。このシミュレーションに関するエネルギー効率の向上は、およそ40であった。このことはサービス品質を維持しながら達成された。方法100、300、500、およびシステム200、400、600、700は、例えば、Intelにより開発されているSpringville、BroadwellまたはSkylakeアーキテクチャを組み込んだプロセッサを含む、ハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせにより実装され得る。実施形態において、方法100、300、500、およびシステム200、400、600、700は、有線通信システム、無線通信システム、または両方の組み合わせの一部として実装され得る。実施形態において、例えば、方法100、300、500、およびシステム200、400、600、700は、無線機能を有するモバイルコンピューティングデバイスで実装され得る。モバイルコンピューティングデバイスとは、電子プロセッシングシステム、および例えば1または複数のバッテリなどモバイルの電源または電力供給装置を有する何らかのデバイスを指し得る。モバイルコンピューティングデバイスの例には、ラップトップコンピュータ、ウルトラモバイルパーソナルコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータ、ノートブック、タブレット、パームトップコンピュータ、パーソナルデジタルアシスタントPDA、携帯電話、携帯電話/PDAの組み合わせ、スマートフォン、ポケベル、ワンウェイページャ、ツーウェイページャ、メッセージングデバイス、データ通信デバイス、モバイルインターネットデバイス、MP3プレーヤなどが含まれ得る。実施形態において、例えば、モバイルコンピューティングデバイスは、コンピュータアプリケーション、並びに音声通信および/またはデータ通信を実行可能な、スマートフォンとして実装され得る。いくつかの実施形態は、例としてスマートフォンとして実装されるモバイルコンピューティングデバイスを用いて説明され得るが、他の実施形態は、他の無線モバイルコンピューティングデバイスを用いても実装され得ることが理解され得よう。実施形態はこの点に関して限定されない。方法およびシステムが、機能、特徴およびそれらの関係を示す機能的な構成要素単位を用いて本明細書に開示された。これらの機能的な構成要素単位の境界のうち少なくともいくつかは、説明の便宜のために本明細書において適宜規定された。特定された機能およびそれらの関係が適切に実装され得る限り代替の境界が規定され得る。本明細書に開示される1または複数の特徴は、個別回路論理および集積回路論理、特定用途向け集積回路ASICロジック、並びにマイクロコントローラを含むハードウェア、ソフトウェア、ファームウェア、およびこれらの組み合わせで実装され得、領域特化型の集積回路パッケージの一部、または集積回路パッケージの組み合わせとして実装され得る。本明細書で用いられるソフトウェアという用語は、格納されたコンピュータプログラムロジックを有して、コンピュータシステムに、本明細書に開示される1または複数の特徴、および/または特徴の組み合わせを実行させるコンピュータ可読媒体を含むコンピュータプログラム製品を指す。コンピュータ可読媒体は一時的、または非一時的であり得る。一時的なコンピュータ可読媒体の例は、無線周波数または電気伝導体で、ローカルまたはワイドエリアネットワークを通じて、若しくはインターネットなどのネットワークを通じて送信されるデジタル信号であり得る。非一時的コンピュータ可読媒体の例は、コンパクトディスク、フラッシュメモリ、または他のデータ記憶デバイスであり得る。本明細書には様々な実施形態が開示されているが、それらは限定ではなく例としてのみ提示されてきたことを理解されるべきである。当業者には、本明細書に開示される方法およびシステムの思想および態様から逸脱することなく形態および詳細の様々な変更が実施形態に対して加えられ得ることが明らかであろう。したがって、請求項の範囲および態様は、本明細書に開示される例示的な実施形態のいずれによっても限定されない。"