(57)【要約】      （修正有）【課題】補助処理装置から主処理装置へデータを転送する装置及び方法を提供する。【解決手段】主処理装置１１は、主処理装置の負荷状態について補助処理装置１０に通知する。補助処理装置は、主処理装置の負荷状態及びデータの優先度に基づいて、データを選択的に破棄するか、あるいは主処理装置に転送する。【選択図】図１
2015176607.tif 000002
【特許請求の範囲】
【請求項１】
処理されるデータを受信するように構成された補助処理装置と、
主処理装置と、
上記主処理装置から上記補助処理装置へのフィードバック経路とを備え、
上記主処理装置は、上記フィードバック経路を介して、上記主処理装置の負荷状態について上記補助処理装置に通知するように構成され、
上記補助処理装置は、上記主処理装置の負荷状態および上記データの優先度に基づいて、受信したデータを選択的に破棄するように構成されていることを特徴とする装置。
【請求項２】
上記補助処理装置は、さらに、上記優先度および上記負荷状態に基づいて、前処理したデータを上記主処理装置に転送するように構成されていることを特徴とする請求項１に記載の装置。
【請求項３】
上記補助処理装置は、データを処理するための限定的な一連の機能を備えていることを特徴とする請求項１に記載の装置。
【請求項４】
上記補助処理装置は、限定的な一連の処理を実行するためのハードウェア、ファームウェア、またはハードウェアとファームウェアとの組み合わせを備えていることを特徴とする請求項３に記載の装置。
【請求項５】
上記補助処理装置は、受信したデータに優先度を割り当てるための分類エンジンを備えていることを特徴とする請求項１に記載の装置。
【請求項６】
上記主処理装置は、少なくとも２つの異なる負荷状態区域のうちの１つを示すことによって当該主処理装置の負荷状態についての情報を送信するように構成されていることを特徴とする請求項１に記載の装置。
【請求項７】
上記補助処理装置は、上記主処理装置が高い負荷状態にある場合、低い優先度のデータを破棄するように構成されていることを特徴とする請求項１に記載の装置。
【請求項８】
入力データユニットを受信するためのデータユニット処理エンジンと、
中央処理装置（ＣＰＵ）と、
上記データユニット処理エンジンと上記ＣＰＵとの間で動作可能に結合されたＣＰＵキューと、
上記ＣＰＵから上記データユニット処理エンジンへのフィードバック経路とを備え、
上記ＣＰＵは、上記フィードバック経路を介して、上記ＣＰＵの負荷状態について上記データ処理エンジンに通知するように構成され、
上記データユニット処理エンジンは、受信したデータユニットの優先度および上記ＣＰＵから受信した負荷状態情報に基づいて、上記受信したデータユニットを選択的に上記ＣＰＵキューに転送するように構成されていることを特徴とするシステム・オン・チップ。
【請求項９】
上記データユニット処理エンジンは、上記ＣＰＵキューに上記データユニットを転送する前に、当該データユニットを前処理するように構成されていることを特徴とする請求項８に記載のシステム・オン・チップ。
【請求項１０】
上記データユニット処理エンジンは、上記負荷状態情報および上記データユニットの優先度に基づいて上記ＣＰＵキューに転送されないデータユニットのうち、少なくとも幾つかを破棄するように構成されていることを特徴とする請求項８に記載のシステム・オン・チップ。
【請求項１１】
上記データユニットがパケットであることを特徴とする請求項８に記載のシステム・オン・チップ。
【請求項１２】
上記データユニット処理エンジンは、上記データユニットに優先度を割り当てるための分類エンジンをさらに備えていることを特徴とする請求項８に記載のシステム・オン・チップ。
【請求項１３】
上記負荷状態情報は、低い負荷状態にあることを示す第１情報、中程度の負荷状態にあることを示す第２情報、および高い負荷状態にあることを示す第３情報から選択されることを特徴とする請求項８に記載のシステム・オン・チップ。
【請求項１４】
上記優先度は、高い優先度、中程度の優先度、または低い優先度から選択され、
低い負荷状態にある場合には、上記データユニットの優先度に関わらず、全データユニットが上記ＣＰＵキューに転送され、
中程度の負荷状態にある場合には、高い優先度または中程度の優先度のデータユニットのみが上記ＣＰＵキューに転送される一方、低い優先度のデータユニットは破棄され、
高い負荷状態にある場合には、高い優先度のデータユニットのみが上記ＣＰＵキューに転送される一方、中程度の優先度または低い優先度のデータユニットは破棄されることを特徴とする請求項１３に記載のシステム・オン・チップ。
【請求項１５】
補助処理装置にてデータを受信するステップと、
上記補助処理装置にて主処理装置の負荷状態を受信するステップと、
受信した負荷状態および上記データの優先度に応じて、選択的にデータを破棄するステップとを含んでいることを特徴とする方法。
【請求項１６】
上記負荷状態および上記データの優先度に基づいて、前処理されたデータを選択的に上記主処理装置へ転送するステップをさらに含んでいることを特徴とする請求項１５に記載の方法。
【請求項１７】
上記データを受信するステップが、パケットデータを受信するステップを含んでいることを特徴とする請求項１５に記載の方法。
【請求項１８】
受信したデータに優先度を割り当てるステップをさらに含んでいることを特徴とする請求項１５に記載の方法。
【請求項１９】
上記優先度を割り当てるステップは、データの種類に基づいて優先度を割り当てるステップおよび上記データの送信者または受信者のサービスのクラスに基づいて優先度を割り当てるステップの少なくとも１つを含んでいることを特徴とする請求項１８に記載の方法。
【請求項２０】
上記データを上記主処理装置に転送するステップは、上記主処理装置に割り当てられたキューに上記データを転送するステップを含んでいることを特徴とする請求項１５に記載の方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
〔技術分野〕
本出願は、処理装置間に構築されたフロー制御を有する処理装置と、対応する方法に関する。
【０００２】
〔背景技術〕
データを処理するにあたって、多くの場合、２つ以上の処理装置が使用される。例えば、多くのアプリケーションにおいては、主処理装置（例えば、汎用プロセッサ）以外に、補助処理装置が使用される。当該補助処理装置は、データ処理における特定のタスク（例えば、特定の演算やその他の特定のタスク）を行うために設計されていてもよい。これらの特定のタスクを行うために、上記の補助処理装置は、例えば、ハードウェアに組み込まれていてもよく、それゆえ非常に高速に処理を行うことができる。一方、多くの場合、上記の補助処理装置は主処理装置ほど多目的に使えないことがある。
【０００３】
或る一連の流れにおいては、データが処理される時、当該データは最初に補助処理装置によって処理され、必要な場合は、さらなる処理のために、続いて主処理装置に転送される。しかしながら、補助処理装置は処理が高速であると共に、さらに、アプリケーションによっては、主処理装置は他のタスクにも使用されることがあるため、主処理装置の過負荷状態、データキュー（data queue）過多、および／またはデータ処理における大幅な遅れを招来することがある。アプリケーションによっては、例えば大幅な遅れは望ましくないことがある（特にデータがリアルタイムで処理される場合）。
【０００４】
〔図面の簡単な説明〕
図１は実施形態に係る装置のブロック図である。
【０００５】
図２は他の実施形態に係る装置のブロック図である。
【０００６】
図３は実施形態に係る方法を示すフローチャートである。
【０００７】
図４は他の実施形態に係る方法を示すフローチャートである。
【０００８】
〔詳細な説明〕
添付図面を参照して種々の実施形態を下記に詳細に説明する。なお、これらの実施形態は、例示にすぎず、本出願の範囲を限定するものであると解釈されるべきではない。
【０００９】
例えば、幾つかの実施形態においては、複数の特徴または構成要素を含んでいると説明されているが、他の実施形態においては、これらの特徴または構成要素のうちのいくつかが省略されていてもよく、または、代わりの特徴または構成要素と取り換えられていてもよい。つまり、実施形態に関して説明されている特徴または構成要素は、実施にあたって必須または不可欠なものであると解釈されるべきではない。他の実施形態においては、追加の特徴または構成要素が存在してもよい。
【００１０】
種々の実施形態から得られる特徴は、特に明記しない限り、互いに組み合わせてもよい。実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実施してもよい。接続または結合の通常機能（例えば、特定の種類のデータまたは特定の情報を転送する）が大きく変更されない限り、種々の要素間の任意の結合または接続を、直接的な接続または結合（つまり、介在要素を用いない接続または結合）として実施してもよいし、あるいは、間接的な接続または結合（つまり、１つ以上の介在要素を用いる接続または結合）として実施してもよい。
【００１１】
接続または結合は、有線結合または無線結合として実施してもよい。
【００１２】
幾つかの実施形態においては、主処理装置と、補助処理装置とを備えている装置を設けてもよい。上記の補助処理装置は、データを受信し、当該データに処理を施し、このように処理を施したデータ（以下、「前処理済みデータ」とも称す）の少なくとも一部を主処理装置に転送してもよい。上記の主処理装置は、当該主処理装置の負荷状態（例えば、補助処理装置から受信したデータを処理する主処理装置の能力）について補助処理装置に通知してもよい。高い負荷状態にある場合、主処理装置に転送される代わりに、幾つかのデータは破棄されることもある。幾つかの実施形態においては、このデータの破棄は、例えばデータの優先度に基づいて、補助処理装置によって直接行われてもよい。
【００１３】
ここで図面を参照すると、図１には、一実施形態に係る装置を示すブロック図が示されている。図１の実施形態に係る装置は、補助処理装置と主処理装置とを備えている。本出願との関係において、処理装置は、データを処理し、処理したデータをアウトプットすることができる任意の種類の装置に関する。処理装置は、しかるべくプログラミングされたマイクロプロセッサまたはマイクロコントローラーのようなプログラム可能な装置であってもよく、フィールド・プログラマブル・ゲートアレイ（field programmably gate array）（ＦＰＧＡ））を含むか、あるいは、ハードウェアに組み込まれたデバイス（例えば、特定用途向け集積回路（ＡＳＩＣ）、または数値演算ユニット（ＡＬＵ））に組み込まれた装置であってもよいが、これらは例にすぎない。
【００１４】
補助処理装置１０は、入力データｄｉを受信し、当該入力データｄｉを部分的に処理されたデータｄｐｐに処理する。補助処理装置１０は、入力データｄｉを高速に処理するために必要な特定のタスクを実行するように構成されていてもよい。つまり、補助処理装置１０は、データを処理するための限られた一連の機能を備えていてもよい。例えば、補助処理装置１０は、ハードウェアに組み込まれて特定の処理を行うようにしてもよい。幾つかの実施形態においては、補助処理装置１０は、そのような特定のタスクに限定されているのに対し、主処理装置は、例えば所望の種々の種類の処理を行うようにプログラム可能であってもよい。主処理装置１１は、幾つかの実施形態においては、部分的に処理されたデータｄｐｐを完全に処理されたデータｄｆｐに処理してもよい。例えば、補助処理装置１０によって行われるタスクは、ハードウェアに組み込まれた場合に高速に処理可能な特定の演算を含んでいてもよい。幾つかのデータについては、補助処理装置１０による処理の後、主処理装置１１によってさらに処理される必要はなく、そのようなデータは、処理済みデータｄａｐとして、補助処理装置１０からアウトプットされてもよい。
【００１５】
なお、補助処理装置１０から受信したデータの処理に加えて、主処理装置１１は、上記装置内の他のタスクを行ってもよい。例えば、主処理装置１１は、補助処理装置１０から受信した前処理済みデータｄｐｐ以外のデータの処理や、他の構成要素の制御等を行ってもよい。
【００１６】
上記のように、複数の実施形態においては、補助処理装置１０は当該補助処理装置１０に割り当てられたタスクを非常に高速に実行するように構成されていてもよい。これに対し、上記のように、主処理装置１１は、より多目的に使えるが、データの処理が比較的遅くてもよい、および／または前処理済みデータｄｐｐの処理以外の他のタスクに従事してもよい。したがって、入力データｄｉの速度が速く、補助処理装置１０によって高速に処理された場合、大量の前処理済みデータｄｐｐが主処理装置１１に負荷をかけ過ぎてしまい、例えば、大幅な遅れを招来することがある。
【００１７】
図１の実施形態においては、主処理装置１１は、フィードバック経路を介して、当該主処理装置１１の負荷状態を負荷状態通知ｌｎと共に補助処理装置１０に通知する。例えば、負荷状態通知ｌｎは、補助処理装置１０に対して、主処理装置１１中に低い負荷状態、中程度の負荷状態、または高い負荷状態にあるかどうかを通知してもよく、あるいは、例えば、主処理装置１１の負荷状態をパーセント値で表してもよい。また、その他の負荷状態の値（measure of the load）を用いて負荷状態通知ｌｎを作成してもよい。
【００１８】
複数の実施形態においては、負荷状態通知ｌｎに応じて、補助処理装置１０は、データｄｉのうちの幾つかのデータを破棄すると共に、当該データのうちの幾つかのデータのみを前処理済みデータｄｐｐとして、主処理装置１１に転送するように決定してもよい。例えば、幾つかの実施形態においては、負荷状態通知ｌｎが、主処理装置１１が低い負荷状態にあることを示している場合、全ての入力データｄｉをベースとする全ての前処理済みデータｄｐｐが、主処理装置１１に転送されてもよい。負荷状態通知ｌｎが、主処理装置１１が高い負荷状態にあることを示している場合、高い優先度を有するデータ（例えば、リアルタイムデータ）のみが補助処理装置１０によって処理され、部分的に処理されたデータｄｐｐとして主処理装置１１に転送されてもよい。負荷状態通知ｌｎが、主処理装置１１が中程度の負荷状態にあることを示している場合、高い優先度を有するデータおよび中程度の優先度を有するデータが転送される一方、低い優先度を有するデータは破棄されるようにしてもよい。他の体系を同様に用いてもよい。
【００１９】
幾つかの実施形態においては、データへの優先度の割り当てが補助処理装置１０内で実行されてもよい。他の幾つかの実施形態においては、入力データｄｉ自体がその優先度に関する指標を含んでいてもよい。
【００２０】
したがって、図１の構成によれば、幾つかの実施形態においては、高い優先度のデータは、主処理装置１１が高い負荷状態にある場合でも、確実に処理されるのに対し、その他のデータは、主処理装置１１にさらなる負荷が加わらないように破棄されてもよい。
【００２１】
図１の装置は、特定の種類のデータの場合に限定されるものではないが、幾つかの実施形態においては、データｄｉは通信接続（例えば、無線通信接続、または有線通信接続）を介して受信されるデータの場合であってもよい。幾つかの実施形態においては、入力データｄｉとして、例えばフレーム、パケット、セル、または、種々の通信規格において用いられるその他の種類のデータユニットを挙げてもよい。
【００２２】
例えば、図２には、パケットを処理するように構成された装置の一実施形態が示されている。図２の装置は、システム・オン・チップ（ＳｏＣ）２０（つまり、下記に記載する構成要素２１〜２３がシングルチップ上で一体化されている）として実施される。他の実施形態においては、構成要素２１〜２３が別々のチップに設けられていてもよい。また、幾つかの実施形態においては、追加の構成要素（図２に不図示）がＳｏＣ２０上に設けられてもよい。ＳｏＣ２０は、入力パケットｐｉを受信するパケット処理エンジン２１を備えている。パケット処理エンジン２１は、補助処理装置の例であり、例えばハードウェアに組み込まれて上記入力パケットｐｉに対して限定的な処理を行うように構成されていてもよい。そのような限定的な処理として、例えば、ヘッダ抽出、巡回冗長検査、および／または、パケットに対して行われるその他の処理が含まれていてもよい。入力パケットｐｉは、無線通信規格（ＷＬＡＮ規格、またはセルラーネットワーク規格（ＧＰＲＳ、ＵＭＴＳ、ＬＴＥ等）に準拠したパケット、または有線通信規格（送電線規格（power line standards）、ｘＤＳＬ規格（例えば、ＡＤＳＬ、ＡＤＳＬ２、ＶＤＳＬ、ＶＤＳＬ２、ＳＨＤＳＬ等）、ホームネットワーク規格またはそれに類似の規格）に準拠したパケットであってもよい。他の実施形態においては、上記のパケットは、規格外のパケットであってもよい。パケット処理エンジンは、例えば、ハードウェア、ファームウェア、またはハードウェアとファームウェアとの組み合わせとして実施されてもよいが、ソフトウェアを用いて少なくとも部分的に実施されてもよい。
【００２３】
パケット処理エンジン２１による処理後、当該パケット処理エンジン２１は、部分的に処理されたパケットｐｐｐとして、少なくとも幾つかのパケットをＣＰＵキュー（queue）２２に転送する。当該ＣＰＵキュー２２にて、上記少なくとも幾つかのパケットは中央処理装置（ＣＰＵ）２３による処理を待つ。
【００２４】
ＣＰＵキュー２２は、例えば、一定数のパケットの収容力を備えたメモリを備えていてもよい。
【００２５】
ＣＰＵ２３は、プログラム可能な主処理装置の例であり、前処理済みパケットｐｐｐの所望の処理を実行するようにプログラムされていてもよい。なお、図２に明示はしていないが、図１について説明されたことと同様に、幾つかのパケットは、ＣＰＵ２３による処理を受けなくてもよく、パケット処理エンジン２１によって直接アウトプットされてもよい。その他のパケットは、パケット処理エンジン２１による処理を受けずに、ＣＰＵキュー２２に直接転送されてもよい。前処理済みパケットｐｐｐの処理以外に、ＣＰＵ２３はその他タスク（例えば、種々の機能やユーザーインターフェース機能等の制御）を実行してもよい。
【００２６】
パケット処理エンジン２１は、自身が非常に高速に実行できる限定的なタスクを実行するよう設計されてもよい。但し、ＣＰＵ２３が高い負荷状態（例えば、入力パケットの高速、および／または、ＣＰＵ２３が行う必要がある大量のその他のタスクによって引き起こされる）にある場合、ＣＰＵキュー２２および／またはＣＰＵ２３の過負荷状態を招来することがある。
【００２７】
ＣＰＵ２３は、負荷状態通知ｌｎと共に、当該ＣＰＵ２３の負荷状態についてパケット処理エンジン２１に通知してもよい。例えば、ＣＰＵの負荷状態は３つの区分に分類されていてもよい。低い負荷状態または最小の負荷状態（説明の便宜上、「緑色」として可視化してもよい）にある第１区分は、ＣＰＵがわずかな負荷状態にあることを示している。第２区分は、ＣＰＵが中程度の負荷状態にある（説明の便宜上、「黄色の」負荷状態と称されてもよい）ことを示してもよい。第３区分は、ＣＰＵが高い負荷状態（例えば、８０％を超える負荷状態、または９０％を超える負荷状態）にあることを示し、説明の便宜上、「赤色」負荷状態と称されてもよい。規則的間隔で、または不規則的間隔で、ＣＰＵ２３は、一定数のパケットの後に、各パケットの後、またはその他の通知体系に従って、パケット処理エンジン２１に当該ＣＰＵ２３の負荷状態について通知してもよい。
【００２８】
なお、３つの異なる負荷状態区分に分類することは例に過ぎず、いずれの負荷状態区分数（例えば、２つのみの負荷状態区分、または４つ以上の負荷状態区分）を用いてもよい。幾つかの実施形態においては、例えば、ＣＰＵの負荷状態のパーセンテージ値を用いて負荷状態が通知されてもよい。
【００２９】
負荷状態の通知にもよるが、パケット処理エンジン２１は、受信したパケットの優先度に基づいて、当該パケットのうちの幾つかのパケットを破棄してもよい。例えば、３つの異なる優先度（低、中、高）にパケットを分類してもよいが、他の実施形態においては、他の異なる数の優先度を用いてもよい。上記に挙げた例を用いると、例えば、ＣＰＵの負荷状態が「緑」である実施形態においては、全ての優先度のパケットが、パケット処理エンジン２１によって処理され、前処理済みパケットとして、ＣＰＵキュー２２に転送されてもよい。ＣＰＵの負荷状態が「黄色」の場合、パケット処理エンジン２１は、例えば、低い優先度を有するパケットを破棄する一方、中程度の優先度および高い優先度を有するパケットのみを処理して、それらを前処理済みパケットｐｐｐとしてＣＰＵキュー２２に転送してもよい。ＣＰＵの負荷状態が「赤」の場合、パケット処理エンジン２１は、低い優先度および中程度の優先度を有するパケットを破棄する一方、高い優先度を有するパケットのみを処理し、当該パケットを前処理済みパケットとしてＣＰＵキュー２２に転送してもよい。
【００３０】
幾つかの実施形態においては、パケット処理エンジン２１が、入力パケットｐｉに優先度を割り当てるための分類エンジン２４を備えていてもよい。他の実施形態においては、入力パケットｐｉ自体（例えば、ヘッダ自体）に優先度をつけていてもよい。例えば、優先度はパケットの種類に基づいて割り当てられてもよい。
【００３１】
例えば、電話通信を可能にするリアルタイムパケット（ボイスオーバーＩＰ（ＶｏＩＰ）パケット等）には高い優先度が割り当てられてもよい。その他のリアルタイムパケット（ビデオストリームパケット等）には、高い優先度、または中程度の優先度が割り当てられてもよい。リアルタイムパケットではないパケット（例えば、ファイルのダウンロードのみに関するパケット）には低い優先度が割り当てられてもよい。そのようなパケットは、破棄され、後で再送されてもよい。そのため、ダウンロードの時間が長くなってしまうが、こうすることで、例えば、ボイスオーバーＩＰを利用する通話が妨げられることはない。さらに、または、代わりに、優先度は、例えばパケットの送信者または受信者に割り当てられたサービスの質（ＱｏＳ）の等級に基づいて割り当てられてもよい。例えば、通信サービスの或るユーザーはより高価なサービス契約をしている。そのようなユーザーから送られたパケット、またはそのようなユーザーに送られるパケットには、より安価なサービス契約のユーザーから送られたパケット、またはそのようなユーザーに送られるパケットよりも高い優先度が割り当てられてもよい。分類用の他の基準も同様に使用してもよい。
【００３２】
幾つかの実施形態においては、パケット処理エンジン２１は、パケットが破棄された場合、パケットの送信者に通知してもよい。他の実施形態においては、さらに、または、代わりに、パケット処理エンジン、またはＳｏＣ２０のその他の構成要素は、送信者にパケットの処理を知らせてもよい。
【００３３】
図２においては、例として複数のパケットを用いたが、他の実施形態においては、他の種類のデータユニット（例えば、セル、シンボル、またはフレーム等）も同様に用いることができる。
【００３４】
次に、図３および４を参照して、幾つかの実施形態に係る例示的な方法を説明する。当該方法は一連の動作または事象として説明されるが、そのような動作または事象が説明されている順番は、これらに限定して解釈されるべきではない。それどころか、他の実施形態においては、順番が、図に示された順番、および／または説明された順番とは異なっていてもよい。種々の動作または事象は、繰り返し（例えば、周期的に、または非周期的に）行われてもよく、幾つかの動作または事象は、他の動作または事象（明確に説明されていない動作または事象を含む）と並行に行われてもよく、幾つかの動作または事象は省略されてもよく、および／または、追加の動作または事象が設けられてもよい。
【００３５】
説明された方法は、図１または図２の装置を用いて実施されてもよいが、他の装置またはデバイスを用いて実施されてもよい。
【００３６】
ここで図３を参照すると、図３の３０に示された実施形態においては、上記の方法は、補助処理装置にてデータを受信する工程を含んでいる。当該データは、処理されるデータ（例えば、通信システムで用いられるパケット化されたデータ）であれば種類を問わない。
【００３７】
さらに、図３の実施形態においては、図３の３１にて、上記の方法は、主処理装置の負荷状態に関する情報を補助処理装置にて受信する工程を含んでいる。幾つかの実施形態においては、上記の補助処理装置および主処理装置は、図１を参照して説明されたように実施されてもよい。
【００３８】
図３の３２にて、負荷状態に関する情報に応じて、上記の補助処理装置は、受信したデータを破棄、または前処置する。例えば、上記の情報が主処理装置が低い負荷状態にあることを示している場合、補助処理装置によって全データが前処理されてもよい。上記の情報が、主処理装置が高い負荷状態にあることを示している場合、高い優先度を有するデータのみが前処理されると共に、その他のデータは破棄されてもよい。他の実施形態においては他の基準が使用されてもよい。
【００３９】
図３の３３にて、図３の３２で前処理されたデータは、さらなる処理のため、主処理装置に転送される。その他のデータはさらに処理される必要がなく、直接アウトプットされてもよい。なお、他の実施形態においては、例えばデータの優先度を決定するために、全てのデータが少なくとも部分的に補助処理装置にて前処理されてもよい。そのため、データを破棄すべきかどうかの決定は、図３の３３にて転送される前に決定されてもよい。例えば、主処理装置が低い負荷状態にあることを上記の情報が示している場合、全データが主処理装置に転送されてもよい。上記の情報が、主処理装置が高い負荷状態にあることを示している場合、高い優先度を有するデータのみが転送され、その他のデータは破棄されてもよい。他の実施形態においては他の基準が使用されてもよい。
【００４０】
図４を参照して、更に他の実施形態に係る方法をここに説明する。図４の方法に関して、説明の便宜上、データの例として、パケットが処理されることとする。他の実施形態においては、他の種類のデータ（例えば、セルまたはフレーム）が処理されてもよい。
【００４１】
図４の実施形態においては、図４の４０にて、パケット処理エンジン（例えば、図２のパケット処理エンジン２１、またはその他のパケット処理エンジン）がパケットを受信する。図４の４１にて、上記のパケット処理エンジンは、中央処理装置（ＣＰＵ）の負荷状態に関する情報をさらに受信する。幾つかの実施形態においては、図４の４１でのＣＰＵの負荷状態の受信が、図４の４０にて受信されるパケットごとに行われてもよい。他の実施形態においては、ＣＰＵの負荷状態の受信が、規則的間隔でまたは不規則的間隔で行われてもよい。例えば、幾つかの実施形態においては、ＣＰＵは、負荷状態が変化した場合のみ、当該ＣＰＵの負荷状態に関する情報を送信してもよい。
【００４２】
図４の４２にて、上記のパケット処理エンジンによってパケットが前処理されてもよい。パケットの前処理は、パケット前処理エンジン用に設計されている任意のタスク（例えば、巡回冗長検査、ヘッダ抽出、またはパケットの処理（例えば、ルーティングあるいは転送）に関するその他の動作を含んでいてもよい。さらに、図４の４３にて、パケットの優先度が随意に決定される。例えば、パケット処理エンジンは、パケット中のデータの種類（例えば、リアルタイムデータ、非リアルタイムデータ、音声データ、ビデオデータ等）、またはパケットの送信者、および／または受信者が必要とするサービスの質（ＱｏＳ）に基づいて、パケットの優先度を決定してもよい。他の実施形態においては、パケット自体が、当該パケットの優先度の指標を含んでいてもよく、当該指標は、例えばパケットの送信者において付加されてもよい。この場合、パケット処理エンジンにおける優先度を更に決定する工程が必要とされなくてもよい。
【００４３】
図４の４４にて、上記のパケット処理エンジンは、ＣＰＵの負荷状態が図４の４１で受信した負荷状態にあると仮定した場合、パケットの優先度が、当該ＣＰＵで処理するのに十分であるか否かを確認する。例えば、ＣＰＵが低い負荷状態にある場合、パケットの優先度に関係なく、全てのパケットが処理されると共に、図４の４５においてＣＰＵキュー（CPU queue）に転送されてもよい。例えば、ＣＰＵが高い負荷状態にある場合、パケット処理エンジンは、図４の４５にて、高い優先度を有するパケットのみをＣＰＵに転送する一方、図４の４６にて、低い優先度を有するパケットを破棄してもよい。ＣＰＵが中程度の負荷状態にある場合、例えば、パケット処理エンジンは、図４の４６にて、低い優先度を有するパケットを破棄する一方、図４の４５にて、高い優先度または中程度の優先度を有するパケットをＣＰＵキューに転送してもよい。
【００４４】
図４の実施形態においては、各パケットが図４の４２において前処理されてもよいが、他の実施形態においては、当該前処理が図４の４４と４５の間で全体にまたは部分的に前処理が行われてもよい。つまり、幾つかの実施形態においては、優先度およびＣＰＵの負荷状態に基づいてＣＰＵキューに転送されるのであれば、パケット処理エンジンは前処理パケットのみをＣＰＵキューに転送してもよい。そうでなければ、そのようなケットは前処理されずに破棄されてもよい。
【００４５】
他の試み（例えば、２つの優先度レベルのみを使用する試み）を採用してもよい。他の実施形態においては、４つ以上の負荷状態レベル（例えば、負荷状態がパーセント値で与えられる）、および／またはパケットの３つ以上の優先度レベルを使用してもよい。他の実施形態においては、パケット以外のデータユニット（例えばセル）を使用してもよい。
【００４６】
上記の実施形態は、説明に役立つ例を示しているにすぎないと共に、これらに限定されると解釈されるべきではない。
【図面の簡単な説明】
【００４７】
【図１】実施形態に係る装置のブロック図である。
【図２】他の実施形態に係る装置のブロック図である。
【図３】実施形態に係る方法を示すフローチャートである。
【図４】他の実施形態に係る方法を示すフローチャートである。
【図１】
2015176607.tif 000003
【図２】
2015176607.tif 000004
【図３】
2015176607.tif 000005
【図４】
2015176607.tif 000006