JP5933027B2 - パケットを処理する方法、システム、およびコンピュータプログラム製品 - Google Patents

パケットを処理する方法、システム、およびコンピュータプログラム製品 Download PDF

Info

Publication number
JP5933027B2
JP5933027B2 JP2014548768A JP2014548768A JP5933027B2 JP 5933027 B2 JP5933027 B2 JP 5933027B2 JP 2014548768 A JP2014548768 A JP 2014548768A JP 2014548768 A JP2014548768 A JP 2014548768A JP 5933027 B2 JP5933027 B2 JP 5933027B2
Authority
JP
Japan
Prior art keywords
processor
rate
processing
packet
electronic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014548768A
Other languages
English (en)
Other versions
JP2015505210A (ja
Inventor
ワン、レン
ルンタ、サンジャイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2015505210A publication Critical patent/JP2015505210A/ja
Application granted granted Critical
Publication of JP5933027B2 publication Critical patent/JP5933027B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

ネットワーキング技術の向上により、より高い送信速度が促進され、アプリケーションプログラムを介して情報を処理するだけではなく、コンピュータはますます、ネットワークから取得した情報を処理するために用いられてきている。このことの結果として、他の処理のために利用可能な処理能力を損ないつつも、情報のパケットに関するネットワーキング処理のために用いられる中央処理装置の処理能力の量が増大している。ヘッダおよびフッタに対する処理を実行すること、並びにカプセル化されたデータを抽出することに加えて、そのようなネットワーキング処理は、探している情報が取得され得るようにネットワークへの接続を確立することも含み得る。
この状況を緩和するべく、中央処理装置からネットワークインタフェースコントローラへネットワーキング処理をシフトするオフロードエンジンが開発されてきた。中央処理装置を他の処理のために解放することに加えて、オフロードは、例えばPeripheral Component Interconnect Express規格で動作するものなどローカルな入出力インターコネクトを通じたトラヒックも低減する。インターネットプロトコル群に従って動作するよう意図されたオフロードエンジンは、Transmission Control Protocol(TCP)オフロードエンジンとして知られる。
TCPオフロードエンジンは一般的に、2つのカテゴリに分類され得る。部分的なTCPオフロードエンジンは、中央処理装置からネットワークインタフェースコントローラへデータ経路をシフトし、データ送信および受信を処理することから中央処理装置を解放する。しかし中央処理装置は依然として、ネットワークへの接続を確立するよう処理を実行する。中央処理装置からネットワークインタフェースコントローラへのオフロードは、ネットワーク接続が確立された後に起こる。Microsoft Corporationにより開発されたTCP Chimney Offload技術は、部分的なTCPオフロードエンジンの例である。対照的に、完全なTCPオフロードエンジンにより、パケット処理およびネットワーク接続の確立の両方の実行は、ネットワークインタフェースコントローラへシフトされる。
TCPオフロードエンジンが部分的なものであれ、または完全なものであれ、現在の実装において考慮される基準は、ネットワークインタフェースコントローラの負荷のみである。処理において、現在のTCPオフロードエンジンは、ネットワークインタフェースコントローラの負荷がフルロードより小さいものである限り、中央処理装置からネットワークインタフェースコントローラへネットワーキング処理を自動的にシフトする。
実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。 実施形態に係る、方法100のソフトウェアまたはファームウェア実施形態の例のブロック図である。 実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。 実施形態に係る、方法300のソフトウェアまたはファームウェア実施形態の例のブロック図である。 実施形態に係る、パケットを処理する例示的な方法のプロセスフローチャートである。 実施形態に係る、方法500のソフトウェアまたはファームウェア実施形態の例のブロック図である。 実施形態に係るパケットを処理する例示的なシステムのブロック図である。 実施形態に係るパケットを処理する例示的なシステムのブロック図である。 実施形態に係るパケットを処理する例示的なシステムのブロック図である。 オフロードエンジンの現在の実装と、本明細書に説明される実施形態を組み込んだオフロードエンジンのネットワーキング処理のための時間を比較する棒グラフである。 オフロードエンジンの現在の実装、および本明細書に説明される実施形態を組み込んだオフロードエンジンのネットワーキング処理のためのエネルギー効率を比較する棒グラフである。図面において、参照番号の左端の桁は、その参照番号が最初に登場する図面を識別する。
図面を参照して実施形態を説明する。図中において同様の参照番号は同一の、または機能的に同様の要素を示す。特定の構造および構成が説明されるが、このことは例示的な目的のみのために行われていることを理解されるべきである。当業者は、説明の思想および態様から逸脱することなく他の構造および構成が用いられ得ることを認識されよう。このことが、本明細書に説明されるものの他に他の様々なシステムおよびアプリケーションでも採用され得ることが当業者には明らかであろう。
本明細書には、パケットを処理する方法、システムおよびコンピュータプログラム製品が開示される。パケットを処理するシステムは、ネットワークインタフェースコントローラと中央処理装置とのうちそれぞれに関して、処理時間の測定、パケットの一の情報単位を処理するために消費されるエネルギーの量の判断、および負荷の測定を含み得る。ユーザは、好ましいやり方でネットワーキング処理を実行するための信号をシステムに提供し得る。システムの一部は、当該測定、判断、および信号のうち少なくとも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または複数の特徴、および/または特徴の組み合わせを実行させるコンピュータ可読媒体を含むコンピュータプログラム製品を指す。コンピュータ可読媒体は一時的、または非一時的であり得る。一時的なコンピュータ可読媒体の例は、無線周波数または電気伝導体で、ローカルまたはワイドエリアネットワークを通じて、若しくはインターネットなどのネットワークを通じて送信されるデジタル信号であり得る。非一時的コンピュータ可読媒体の例は、コンパクトディスク、フラッシュメモリ、または他のデータ記憶デバイスであり得る。
本明細書には様々な実施形態が開示されているが、それらは限定ではなく例としてのみ提示されてきたことを理解されるべきである。当業者には、本明細書に開示される方法およびシステムの思想および態様から逸脱することなく形態および詳細の様々な変更が実施形態に対して加えられ得ることが明らかであろう。したがって、請求項の範囲および態様は、本明細書に開示される例示的な実施形態のいずれによっても限定されない。
[項目1]
パケットを処理する方法であり、
少なくとも1つの電子プロセッシングシステムを介して、第1のレートが第2のレートより小さいか否かを判断する段階を備え、
前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり、
前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であり、
前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
前記第2のプロセッサは前記第1のプロセッサとは異なり、
前記方法はさらに、
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの負荷がフルロードより小さいか否かを判断する段階と、
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷が前記フルロードよりも小さい場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階と
を備える方法。
[項目2]
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、項目1に記載の方法。
[項目3]
前記第1のレートと前記第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値はメモリに格納され、
前記方法は、前記少なくとも1つの電子プロセッシングシステムを介して、前記メモリから前記少なくとも1つの予め定められた値を取得する段階をさらに備える、項目1または2に記載の方法。
[項目4]
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷がフルロードに実質的に等しい場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階をさらに備える、項目1または2に記載の方法。
[項目5]
前記少なくとも1つの電子プロセッシングシステムを介して、前記少なくとも1つの電子プロセッシングシステムにより消費されるエネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する段階をさらに備える、項目1または2記載の方法。
[項目6]
コンピューティングデバイスに、項目1から5のいずれか1項に記載の方法を実行させるプログラム。
[項目7]
パケットを処理する方法であり、
少なくとも1つの電子プロセッシングシステムを介して、ネットワークインタフェースコントローラと中央処理装置とのうち一方である第1のプロセッサの処理時間を判断する段階と、
前記少なくとも1つの電子プロセッシングシステムを介して、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり前記第1のプロセッサとは異なる第2のプロセッサの処理時間を判断する段階と、
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの前記処理時間が前記第2のプロセッサの前記処理時間より短い場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階と
を備える方法。
[項目8]
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、項目7に記載の方法。
[項目9]
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの前記処理時間が前記第2のプロセッサの前記処理時間と等しい、およびそれよりも長いの一方である場合、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階をさらに備える、項目7または8に記載の方法。
[項目10]
前記少なくとも1つの電子プロセッシングシステムを介して、前記少なくとも1つの電子プロセッシングシステムの処理時間を短縮するやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する段階をさらに備える、項目7または8に記載の方法。
[項目11]
コンピューティングデバイスに、項目7から10のいずれか1項に記載の方法を実行させるプログラム。
[項目12]
パケットを処理する方法であり、
少なくとも1つの電子プロセッシングシステムを介して、第1のレートが第2のレートより小さいか否かを判断する段階を備え、
前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であり、
前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であり、
前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
前記第2のプロセッサは、前記第1のプロセッサとは異なり、
前記方法は、
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの処理時間が所望される最大処理時間よりも短いか否かを判断する段階と、
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が前記所望される最大処理時間よりも短い場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階とをさらに備える、方法。
[項目13]
前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、項目12に記載の方法。
[項目14]
前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が、前記所望される最大処理時間と等しい、およびそれよりも長いの一方である場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階をさらに備える、項目12または13に記載の方法。
[項目15]
前記少なくとも1つの電子プロセッシングシステムを介して、前記所望される最大処理時間を設定するための信号をユーザから受信する段階をさらに備える、項目12または13に記載の方法。
[項目16]
コンピューティングデバイスに、項目12から15のいずれか1項に記載の方法を実行させるプログラム。
[項目17]
パケットを処理するシステムであり、
ネットワークインタフェースコントローラの処理時間の測定である第1の測定を判断し、前記第1の測定を送信する第1の電子システムと、
中央処理装置の処理時間の測定である第2の測定を判断し、前記第2の測定を送信する第2の電子システムと、
前記第1の測定および前記第2の測定を受信し、前記ネットワークインタフェースコントローラと前記中央処理装置のうち前記パケットに関するネットワーキング処理を実行する一方を選択する第3の電子システムと
を備える、システム。
[項目18]
前記第3の電子システムはさらに、前記パケットを処理する前記システムの処理時間を短縮するやり方で前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する、項目17に記載のシステム。
[項目19]
前記第3の電子システムはさらに、所望される最大処理時間を設定するための信号をユーザから受信する、項目17または18に記載のシステム。
[項目20]
前記第1の電子システムと前記第2の電子システムとのうち少なくとも一方は、前記処理時間の前記測定を判断するためにタイムスタンプ技術を用いる、項目17から19のいずれか1項に記載のシステム。
[項目21]
第1のレートおよび第2のレートを送信する第4の電子システムをさらに備え、
前記第1のレートは前記パケットの一の情報単位を処理するために前記ネットワークインタフェースコントローラにより消費されるエネルギーの量であり、
前記第2のレートは、前記パケットの前記一の情報単位を処理するために前記中央処理装置により消費されるエネルギーの量であり、
前記第3の電子システムはさらに、前記第1のレートおよび前記第2のレートを受信する、項目17から20のいずれか1項に記載のシステム。
[項目22]
前記第3の電子システムはさらに、前記パケットを処理するために前記システムにより消費されるエネルギーの量を低減させるやり方で、前記パケットに関する前記ネットワーキング処理を実行するための信号をユーザから受信する、項目21に記載のシステム。
[項目23]
前記第1のレートと前記第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値を格納するメモリをさらに備える、項目21または22に記載のシステム。
[項目24]
第3の測定を判断し、前記第3の測定を送信する第5の電子システムをさらに備え、
前記第3の測定は、前記ネットワークインタフェースコントローラの負荷の測定であり、
前記第3の電子システムはさらに、前記第3の測定を受信し、
前記システムはさらに、第4の測定を判断し、前記第4の測定を送信する第6の電子システムを備え、
前記第4の測定は、前記中央処理装置の負荷の測定であり、
前記第3の電子システムはさらに、前記第4の測定を受信する、項目21または22に記載のシステム。
[項目25]
前記第5の電子システムと前記第6の電子システムとのうち少なくとも一方は、前記負荷の前記測定の判断にカウンタを用いる、項目24に記載のシステム。

Claims (7)

  1. パケットを処理する方法であり、
    少なくとも1つの電子プロセッシングシステムを介して、第1のレートが第2のレートより小さいか否かを判断する段階を備え、
    前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であって、ジュール/バイトで表され
    前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であって、ジュール/バイトで表され
    前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
    前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
    前記第2のプロセッサは前記第1のプロセッサとは異なり、
    前記方法はさらに、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記少なくとも1つの電子プロセッシングシステムにより消費されるエネルギーの量を低減させるやり方で、前記パケットに関するネットワーキング処理を実行するための信号をユーザから受信する段階と、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの負荷がフルロードより小さいか否かを判断する段階と、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷が前記フルロードよりも小さい場合に、前記パケットに関する前記ネットワーキング処理を前記第1のプロセッサに実行させる段階と、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記負荷が前記フルロードに実質的に等しい場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階と
    を備える方法。
  2. 前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項1に記載の方法。
  3. 前記第1のレートと前記第2のレートとのうち少なくとも一方の少なくとも1つの予め定められた値はメモリに格納され、
    前記方法は、前記少なくとも1つの電子プロセッシングシステムを介して、前記メモリから前記少なくとも1つの予め定められた値を取得する段階をさらに備える、請求項1又は2に記載の方法。
  4. コンピューティングデバイスに、請求項1からのいずれか1項に記載の方法を実行させるプログラム。
  5. パケットを処理する方法であり、
    少なくとも1つの電子プロセッシングシステムを介して、第1のレートが第2のレートより小さいか否かを判断する段階を備え、
    前記第1のレートは、パケットの一の情報単位を処理するために第1のプロセッサにより消費されるエネルギーの量であって、ジュール/バイトで表され
    前記第2のレートは、前記パケットの前記一の情報単位を処理するために第2のプロセッサにより消費されるエネルギーの量であって、ジュール/バイトで表され
    前記第1のプロセッサは、ネットワークインタフェースコントローラと中央処理装置とのうち一方であり、
    前記第2のプロセッサは、前記ネットワークインタフェースコントローラと前記中央処理装置とのうち一方であり、
    前記第2のプロセッサは、前記第1のプロセッサとは異なり、
    前記方法は、
    前記少なくとも1つの電子プロセッシングシステムを介して、所望される最大処理時間を設定するための信号をユーザから受信する段階と、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のプロセッサの処理時間が前記所望される最大処理時間よりも短いか否かを判断する段階と、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が前記所望される最大処理時間よりも短い場合に、前記パケットに関するネットワーキング処理を前記第1のプロセッサに実行させる段階と、
    前記少なくとも1つの電子プロセッシングシステムを介して、前記第1のレートが前記第2のレートよりも小さく、前記第1のプロセッサの前記処理時間が、前記所望される最大処理時間と等しい、およびそれよりも長いの一方である場合に、前記パケットに関する前記ネットワーキング処理を前記第2のプロセッサに実行させる段階と
    をさらに備える、方法。
  6. 前記ネットワーキング処理は、ネットワークへの接続を確立することを含む、請求項に記載の方法。
  7. コンピューティングデバイスに、請求項5又は6に記載の方法を実行させるプログラム。
JP2014548768A 2011-12-22 2011-12-22 パケットを処理する方法、システム、およびコンピュータプログラム製品 Expired - Fee Related JP5933027B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/066812 WO2013095502A1 (en) 2011-12-22 2011-12-22 Methods, systems, and computer program products for processing a packet

Publications (2)

Publication Number Publication Date
JP2015505210A JP2015505210A (ja) 2015-02-16
JP5933027B2 true JP5933027B2 (ja) 2016-06-08

Family

ID=48669143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014548768A Expired - Fee Related JP5933027B2 (ja) 2011-12-22 2011-12-22 パケットを処理する方法、システム、およびコンピュータプログラム製品

Country Status (4)

Country Link
US (1) US9860175B2 (ja)
JP (1) JP5933027B2 (ja)
TW (1) TWI483590B (ja)
WO (1) WO2013095502A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013095502A1 (en) 2011-12-22 2013-06-27 Intel Corporation Methods, systems, and computer program products for processing a packet
US20150052280A1 (en) * 2013-08-19 2015-02-19 Emulex Design & Manufacturing Corporation Method and system for communications-stack offload to a hardware controller
US20190129882A1 (en) * 2017-10-30 2019-05-02 NVXL Technology, Inc. Multi-connector module design for performance scalability

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215168A (ja) * 1990-12-13 1992-08-05 Nec Corp コンピュータシステム
US6904519B2 (en) 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US6788704B1 (en) * 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
US7382782B1 (en) 2002-04-12 2008-06-03 Juniper Networks, Inc. Packet spraying for load balancing across multiple packet processors
US7430220B2 (en) * 2005-07-29 2008-09-30 International Business Machines Corporation System load based dynamic segmentation for network interface cards
US8549098B2 (en) * 2006-01-12 2013-10-01 Broadcom Israel Research, Ltd. Method and system for protocol offload and direct I/O with I/O sharing in a virtualized network environment
JP2008061223A (ja) * 2006-08-04 2008-03-13 Canon Inc 通信装置及び通信方法
US20080120426A1 (en) 2006-11-17 2008-05-22 International Business Machines Corporation Selective acceleration of transport control protocol (tcp) connections
JP4275169B2 (ja) * 2006-11-30 2009-06-10 シャープ株式会社 Nicを備えたシステム機器および同システム機器の省電力制御方法
JP4740897B2 (ja) * 2007-05-24 2011-08-03 株式会社日立製作所 仮想ネットワーク構成方法及びネットワークシステム
US7852756B2 (en) * 2007-06-13 2010-12-14 02Micro International Limited Network interface system with filtering function
EP2176773B1 (en) * 2007-07-09 2015-09-02 Hewlett-Packard Development Company, L. P. Data packet processing method for a multi core processor
US8068433B2 (en) * 2007-11-26 2011-11-29 Microsoft Corporation Low power operation of networked devices
CN101394362B (zh) * 2008-11-12 2010-12-22 清华大学 基于流分片的对多核网络处理器进行负载均衡的方法
US20100299392A1 (en) * 2009-05-19 2010-11-25 Shih-Chien Chiou Method for controlling remote devices using instant message
JP5377091B2 (ja) * 2009-06-05 2013-12-25 キヤノン株式会社 情報処理装置及びその制御方法
JP5395539B2 (ja) * 2009-06-30 2014-01-22 株式会社東芝 情報処理装置
US8284778B2 (en) * 2009-11-19 2012-10-09 At&T Intellectual Property I, L.P. Method, device, and computer program product for detecting and encoding states for accurate measurement
WO2013095502A1 (en) 2011-12-22 2013-06-27 Intel Corporation Methods, systems, and computer program products for processing a packet

Also Published As

Publication number Publication date
US9860175B2 (en) 2018-01-02
TWI483590B (zh) 2015-05-01
WO2013095502A1 (en) 2013-06-27
JP2015505210A (ja) 2015-02-16
US20140301199A1 (en) 2014-10-09
TW201347471A (zh) 2013-11-16

Similar Documents

Publication Publication Date Title
WO2015141337A1 (ja) 受信パケット分散方法、キュー選択器、パケット処理装置、および記録媒体
CN105430702B (zh) 一种网络切换方法、装置及通信终端
CN104899103B (zh) 一种移动云计算终端节能调度方法和装置
CN105743690B (zh) 用于管理网络设备的功率和性能的技术
CN113038440B (zh) 通信通道切换方法、装置、计算机设备和可读存储介质
CN106102143A (zh) 一种应用处理方法和装置
CN110764605B (zh) 多核处理器控制方法、装置、电子设备及存储介质
CN108738115A (zh) 一种功耗控制方法及终端
JP5933027B2 (ja) パケットを処理する方法、システム、およびコンピュータプログラム製品
WO2022095961A1 (zh) 充电方法、充电装置和充电器
EP3345096B1 (en) Method and apparatus for adaptive cache management
CN109041255B (zh) 一种接入方法和ue
US10536393B2 (en) Mail obtaining method, terminal, and system
WO2018039943A1 (zh) 一种数据转移的进度计算方法、装置及系统
CN111656716B (zh) 用于处理移动通信中的分组数据汇聚协议复制的方法和装置
Sarvabhatla et al. A network aware energy efficient offloading algorithm for mobile cloud computing over 5g network
CN108307420B (zh) 物联网终端的控制方法及物联网接入点
WO2013124715A1 (en) Method and apparatus for establishing a connection with an access network based upon access network interworking information
US20150220371A1 (en) Energy aware information processing framework for computation and communication devices coupled to a cloud
CN113572695B (zh) 链路聚合方法、装置、计算设备及计算机存储介质
US10051571B2 (en) Method and apparatus for battery life conservation with shared network connection
Karim et al. Efficient mobile computation using the cloud
CN104918314B (zh) 一种ap的功耗调整方法及装置
CN101977145B (zh) 一种聚合链路业务流转发的方法及系统
CN111131473A (zh) 一种网络参数的传输方法及装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160304

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R150 Certificate of patent or registration of utility model

Ref document number: 5933027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees