以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るパケット受信装置100の構成を示すブロック図である。パケット受信装置100において、電源領域(常時稼動領域)120に配置される、通信インタフェース回路101と、通信インタフェース制御回路102と、ネットワークプロセッサ103と、割り込み遅延回路104と、割り込み制御回路105と、クロック供給回路106と、電源供給回路107は、常時、電源及び動作クロックが供給され、通信インタフェース処理等は随時可能である。従ってホストプロセッサ108が休止状態であっても、通信インタフェース制御回路102は、受信したパケットデータの判定、及び受信処理を実行すべき場合に割り込み信号を発行することが可能である。
また、電源領域(選択的稼動領域)121に配置される、ホストプロセッサ108と、制御回路109と、表示部110と、キー入力部111と、アクセス制御回路112と、記憶部113は、状況に応じて電源及び動作クロックが供給される。電源領域(選択的稼動領域)121に配置される、ホストプロセッサ108、制御回路109、表示部110、キー入力部111、アクセス制御回路112及び記憶部113は、ホストプロセッサ108が休止状態にある場合、電源供給回路107及びクロック供給回路106の働きにより、電源及びクロックの双方の供給が遮断され、自律動作が不可能な状態となる。
以下に、パケット受信装置100の構成について、詳細に説明する。
パケット抽出手段としての通信インタフェース回路101は、通信機能の物理層制御を実現するものであり、通信インタフェース制御回路102の制御に基づいて、ネットワークから入力した無線電波に対してレイヤ1の処理を行う。具体的には、通信インタフェース回路101は、ネットワークから受信した受信信号からパケットデータを抽出する処理を行い、抽出したパケットデータを通信インタフェース制御回路102へ出力する。
割り込み信号生成手段としての通信インタフェース制御回路102は、通信インタフェース回路101を制御するとともに、通信インタフェース回路101から入力したパケットデータに対してレイヤ2の処理を行う。そして、通信インタフェース制御回路102は、レイヤ2の処理を行ったパケットデータをネットワークプロセッサ103へ出力するとともに、割り込み信号を割り込み遅延回路104へ出力することにより、割り込み遅延回路104に対して、受信すべきパケットデータであるか否かの判定を行うべきパケットデータを受信した旨を伝達する。
パケット解析手段としてのネットワークプロセッサ103は、ホストプロセッサ108で行う処理の一部をホストプロセッサ108の代わりに行うものであり、受信したパケットデータの受信処理が不要であるか否かの判定機構(フィルタ機能)を有する。具体的には、ネットワークプロセッサ103は、後述する割り込み制御回路105から割り込み信号が入力した際に、通信インタフェース制御回路102から入力したパケットデータの解析を行い、ホストプロセッサ108へ転送すべきか否かを判定する。そして、ネットワークプロセッサ103は、ホストプロセッサ108へ転送すべきでないと判定した場合にはホストプロセッサ108へ転送すべきでないと判定したパケットデータを廃棄する。一方、ネットワークプロセッサ103は、ホストプロセッサ108へ転送すべきであると判定した場合には、ホストプロセッサ108を起動するための割り込み信号を割り込み制御回路105へ出力するとともに、転送すべきであると判定したパケットデータをホストプロセッサ108へ出力する。なお、ネットワークプロセッサ103の構成の詳細については後述する。
タイミング制御手段としての割り込み遅延回路104は、クロック供給回路106からのクロックの供給を受けて、通信インタフェース制御回路102から入力した割り込み信号に対して一定量の遅延を設けて割り込み制御回路105へ出力する。なお、割り込み遅延回路104の構成の詳細については後述する。
割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した際に、まず、パケットデータの解析を依頼するための割り込み信号をネットワークプロセッサ103へ出力する。また、割り込み制御回路105は、ネットワークプロセッサ103から割り込み信号が入力した際に、クロック供給回路106に対してホストプロセッサ108を含む電源領域121へのクロックの供給を依頼するとともに、電源供給回路107に対してホストプロセッサ108を含む電源領域121への電源の供給を依頼する。また、割り込み制御回路105は、ホストプロセッサ108へ割り込み信号を出力することにより、ホストプロセッサ108に対して、受信処理すべきパケットデータが存在する旨を伝達する。
クロック供給回路106は、電源領域120及び電源領域121に動作クロックを供給する。具体的には、クロック供給部106は、電源領域120に配置される通信インタフェース回路101、通信インタフェース制御回路102、ネットワークプロセッサ103、割り込み遅延回路104、割り込み制御回路105及び電源供給回路107へ常時クロックを供給する。また、クロック供給回路106は、割り込み制御回路105からのクロック供給の依頼に従って、電源領域121に配置されるホストプロセッサ108、制御回路109、アクセス制御回路112及び記憶部113へのクロックの供給を開始する。
電源供給回路107は、電源領域120及び電源領域121に電源を供給する。具体的には、電源供給回路107は、電源領域120に配置される通信インタフェース回路101、通信インタフェース制御回路102、ネットワークプロセッサ103、割り込み遅延回路104、割り込み制御回路105及びクロック供給回路106へ常時電源を供給する。また、電源供給回路107は、割り込み制御回路104からの電源供給の依頼に従って、電源領域121に配置されるホストプロセッサ108、制御回路109、アクセス制御回路112及び記憶部113への電源の供給を開始する。
受信処理実行手段としてのホストプロセッサ108は、電源供給回路107から電源の供給を受けた場合に、休止状態から稼働状態に遷移し、クロック供給回路106からクロックの供給を受ける。また、ホストプロセッサ108は、割り込み制御回路105から割り込み信号が入力することにより受信処理すべきパケットデータの存在を検知し、ネットワークプロセッサ103にアクセスする。そして、ホストプロセッサ108は、受信処理すべきパケットデータをアクセス制御部112を介して記憶部113に転送し、レイヤ3以上の上位層の通信プロトコル処理を行う。また、ホストプロセッサ108は、パケット受信装置100全体の制御を行っている比較的大規模なプロセッサ回路及び周辺回路を起動する必要があり、高速で動作するとともに高性能なプロセッサである。従って、ホストプロセッサ108は、ネットワークプロセッサ103と比べて、起動してから動作が安定するまでの時間(PLLロック時間)が長くなるとともに、共に動作する周辺回路群の初期設定、OSの起動及び初期化に時間を要し、駆動する際の消費電力が大きくなる。
制御回路109は、クロック供給回路106からのクロックの供給及び電源供給回路107からの電源の供給を受けて、表示部110の画面表示を制御するとともに、キー入力部111のキー入力を制御する。
表示部110は、制御回路109の制御により、画面表示を行う。
キー入力部111は、制御回路109の制御により、キー入力を受け付ける。
アクセス制御回路112は、記憶部113のアクセス制御を行う。
記憶部113は、ホストプロセッサ108を動作させる際、表示部110に画面表示させる際、または送受信する際に、パケットデータの一時保存に使用されるデータ記憶用メモリであり、アクセス制御回路112のアクセス制御により、パケットデータの書き込み及び読み出しを行う。
次に、ネットワークプロセッサ103の詳細な構成について説明する。ネットワークプロセッサ103は、通信処理に特化しているため、比較的周波数の低いクロックで動作可能であり、初期設定が必要な周辺回路が少なく、最小限のOSを搭載するかまたはOSを搭載しなくても良いとともに、動作速度はホストプロセッサ108に比べて低速であるので、動作開始するまでの時間はホストプロセッサ108に比べて相対的に短い。図2は、ネットワークプロセッサ103の構成を示すブロック図である。
パケット処理シーケンサ201は、ネットワークプロセッサ103の動作を制御し、主にパケットデータのパケット受信装置100内の転送処理を行う。また、パケット処理シーケンサ201は、パケットフィルタ回路203における解析結果を参照して、パケットデータの種別判定処理を行う。そして、パケット処理シーケンサ201は、パケットデータの種別判定処理の結果が、受信処理すべきである種別判定結果である場合には、パケットインタフェース制御部204に対して、パケット転送用メモリ206に記憶しているパケットデータをホストプロセッサ108に転送するように指示し、受信処理すべきでない種別判定結果である場合には、パケットインタフェース制御部204に対して、パケット転送用メモリ206に記憶しているパケットデータを廃棄するように指示する。
ローカルメモリ202は、パケット処理シーケンサ201が動作するための命令コードを格納する。
パケットフィルタ回路203は、通信インタフェース制御回路102から入力したパケットデータのプロトコル構造の解析処理と特定のプロトコルフィールドのパターンマッチング処理(パターン照合処理)を行い、解析処理及びパターンマッチング処理の結果をパケット処理シーケンサ201から参照可能な形態で提示する。
パケットインタフェース制御部204は、通信インタフェース制御回路102から入力したパケットデータを、パケット転送メモリ206に一時的に蓄積させる。
ホストインタフェース回路205は、ホストプロセッサ108、割り込み制御回路105及びネットワークプロセッサ103を連携させる処理を行う。
パケット転送用メモリ206は、パケット処理シーケンサ201が処理対象とするパケットデータを、処理が完了するまでの間、一時的に記憶する。そして、パケット転送用メモリ206は、パケットインタフェース制御部204の制御により、記憶しているパケットデータをホストプロセッサ108に転送するか、または廃棄する。
次に、割り込み遅延回路104の詳細な構成について、図3を用いて説明する。図3は、割り込み遅延回路104の構成を示すブロック図である。
割り込み検出回路301は、割り込みの発生を検出するための回路であり、通信インタフェース制御回路102から入力する割り込み信号を検出した場合に、遅延割り込み生成回路302を起動する。また、割り込み検出回路301は、入力信号に対するハザード除去(ノイズ反応防止)を目的に、クロック3サイクル分の保護機構を設けた上で割込み発生の検出を行う。即ち、割り込み検出回路301は、割り込み信号の論理が負極性となったことをクロック3サイクル分で連続して検出した場合に、割り込みが発生したものとみなす。割込み信号は、負極性論理で割込みの発生を伝える。
遅延割り込み生成回路302は、遅延カウンタ305と連動して動作する。具体的には、遅延割り込み生成回路302は、割り込み検出回路301が割り込みを検出した際に起動し、遅延カウンタ305のカウントアップ動作を開始させる。そして、遅延割り込み生成回路302は、遅延カウンタ305のカウンタ値が満了した際に、遅延割り込み信号を非同期セレクタ306へ出力する。
ホストインタフェース回路303は、バス114を介してホストプロセッサ108からの動作モード設定を受け入れるホストインタフェース回路である。具体的には、ホストインタフェース回路303は、バス制御の終端点として機能し、クロック供給回路106から供給されたクロックに同期して、ホストプロセッサ108から受け取った設定値を設定レジスタ部304に書き込むとともに、設定レジスタ部304の内容をホストプロセッサ108から参照可能にする。また、ホストインタフェース回路303は、ホストプロセッサ108の要求により、遅延カウンタ305のカウンタ値を読み出してホストプロセッサ108へ出力する。
設定レジスタ部304は、ホストインタフェース回路303から受け取った設定値を記憶するレジスタであり、ホストプロセッサ108からの設定項目である割り込み遅延回路104のディセーブル/イネーブル設定値と遅延量設定のためのカウンタ満了値を記憶する。ホストインタフェース回路303から受け取ったカウンタ満了値は、ホストプロセッサ108で任意の値に設定可能である。そして、設定レジスタ部304は、記憶しているディセーブル/イネーブル設定値を非同期セレクタ306へ出力するとともに、記憶しているカウンタ満了値を、遅延カウンタ305の停止タイミング(停止までの遅延量)を決定するために遅延カウンタ305へ通知する。
遅延カウンタ305は、遅延割り込み生成回路302と連動して動作する。具体的には、遅延カウンタ305は、遅延割り込み生成回路302からカウントアップ開始タイミングが通知された際に、クロック毎にカウンタ値を更新する。そして、遅延カウンタ305は、カウンタ値が、設定レジスタ部304から通知されたカウンタ満了値に達した時点でカウントアップ動作を停止し、カウントアップ動作を停止したタイミングを遅延割り込み生成回路302へ通知する。
非同期セレクタ306は、割り込み遅延回路104の動作イネーブル/ディセーブルの切り替えに使用するものであり、通信インタフェース制御回路102から入力した割り込み信号を直接出力する場合と、遅延割り込み生成回路302から入力した遅延割り込み信号を出力する場合とを選択する。なお、非同期セレクタ306が、通信インタフェース制御回路102から入力した割り込み信号を直接出力する場合、割り込み遅延回路104は機能しないことと等価となる。
次に、パケット受信装置100の動作について、図4を用いて説明する。図4は、パケット受信装置100の動作を示すシーケンス図である。
図4は、割り込み遅延回路104とネットワークプロセッサ103を併用する場合を示すものである。また、図4は、ネットワークプロセッサ103が、割り込み遅延回路104で遅延した割り込み信号に反応して、受信処理すべきか否かのパケットデータの判定処理を行い、受信処理すべきであると判定した場合に、ホストプロセッサ108を起動する際のシーケンス図である。これにより、省電力効果を高めることができる。
最初に、通信待ち受け状態にあるパケット受信装置100がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST401)。
次に、通信インタフェース制御回路102は、転送されたパケットデータに対してレイヤ2の処理を行うとともに、割り込み遅延回路104に対して、割り込み信号を出力して、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する(ステップST402)。
次に、割り込み信号を受けた割り込み遅延回路104は、遅延カウンタ305をイネーブルにして、予め設定された遅延量分の時間計測を開始する(ステップST403)。
次に、パケット受信装置100は、遅延カウンタ305が満了する以前に後続のパケットデータを受信した場合、ステップST401で受信したパケットデータと同様の処理を行うが(ステップST404〜ステップST407)、遅延カウンタ305は、リセットせずに、カウントアップを継続する。
次に、割り込み遅延回路104は、遅延カウンタ305が満了した時点で(ステップST408)、割り込み制御回路105に対して、割り込み信号を出力し、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。この際、割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した場合には、まず、ネットワークプロセッサ103に対して、割り込み信号を出力して、ネットワークプロセッサ103の動作を開始させる(ステップST409)。
次に、ネットワークプロセッサ103のパケットインタフェース制御部204は、通信インタフェース制御回路102に蓄積されたパケットデータを取り込み、取り込んだパケットデータを内部バス207を介してパケット転送用メモリ206に格納する。
また、ネットワークプロセッサ103のパケットフィルタ回路203は、パケットインタフェース制御部204に取り込まれたパケットデータが同時に入力し、入力したパケットデータを解析してパケットデータの種別判定を行う。具体的には、パケットフィルタ回路203は、入力したパケットデータのプロトコル構造の解析、及び特定のプロトコルフィールドのパターンマッチング(パターン照合)を行うことにより、パケットデータの種別判定を行う。そして、パケットフィルタ回路203は、判定結果を内部の結果レジスタに表示する。例えば、パケットフィルタ回路203は、パケットデータのプロトコル構造がIPsecである場合には、IPヘッダに含まれる送受信IPアドレスと、IPsecヘッダに含まれるセッション識別情報(SPI値)とに基づいて、パケットデータが属する通信セッションを判断し、判断した通信セッションが受信許可されているものであるか否かを判断することにより受信処理すべきか否かを判定し、判定結果を内部の結果レジスタに表示する。ここで、パケットデータが属する通信セッションは、あらかじめネットワークプロセッサ103とホストプロセッサ108との間で交換されている、IPアドレスとSPI値とを組み合わせた情報である通信セッション情報を参照することにより判断することができる。
次に、パケット転送用メモリ206へのパケットデータの転送処理、及びパケットフィルタ回路203におけるパケット解析処理が終了した時点で、パケット処理シーケンサ201は、パケットフィルタ回路203における解析結果を参照し、また必要に応じてパケット転送用メモリ206に蓄積されたパケットデータそのものを直接に解析した上で、パケットデータをホストプロセッサ108に転送すべきか否か、即ちパケット受信装置100が受信処理すべきか否かの判断を行う。図4では、転送の必要がないパケットと判断し(ステップST410)、パケット処理シーケンサ201は、パケットインタフェース制御部204にパケットデータの廃棄処理を指示し、パケットインタフェース制御部204は、パケット転送用メモリ206に蓄積されたパケットデータを廃棄する。
次に、パケット転送用メモリ206に蓄積されたパケットデータの廃棄処理が終わった後に、パケット処理シーケンサ201は、通信インタフェース制御回路102からの状態通知により、後続の判定すべきパケットデータがすでに受信されている状態であることを検知し、次の後続パケットデータに対して、同様の処理を繰り返す(ステップST411)。なお、ネットワークプロセッサ103における処理は、1パケットデータ毎に実施されるものであり、ネットワークプロセッサ103が割り込み信号を受け取るまでに、パケット受信装置100が複数のパケットデータを受信している場合には、受信したパケットデータ毎に繰り返し同様の処理が実施される。また、複数のパケットデータが通信インタフェース制御回路102のみならず通信インタフェース回路101に蓄積されて読み出し待ち状態になっている場合には、ネットワークプロセッサ103は通信インタフェース制御回路102と連携して、適宜読み出し待ち状態のパケットデータの読み出しを行う。
次に、パケット処理シーケンサ201は、パケットフィルタ回路203の解析処理の結果を参照して、ホストプロセッサ108に転送すべきパケットデータであると判断した場合には(ステップST412)、ホストインタフェース回路205にはたらきかけ、割り込み制御回路105に対して、ホストプロセッサ108を起動するための割り込み信号を出力する。なお、ネットワークプロセッサ103は、この時点で動作を停止する。
次に、割り込み制御回路105は、割り込み信号を受けた場合には、電源領域121に対して、電源供給回路107から電源を供給するように制御するとともに、クロック供給回路106からクロックを供給するように制御する。さらに、割り込み制御回路105は、ホストプロセッサ108に対して、割り込み信号を出力することにより、受信処理すべきパケットデータが存在することを伝達する。
次に、ステップST400から停止状態にあったホストプロセッサ108は、電源供給回路107から電源の供給を受けるとともにクロック供給回路106からクロックの供給を受け、且つ割り込み信号を受けることにより起動して(ステップST413)、動作可能状態になる。
次に、割り込み信号を受けることにより、受信処理すべきパケットデータの存在を検知したホストプロセッサ108は、ネットワークプロセッサ103にアクセスし、受信処理すべきパケットデータをパケット転送用メモリ206から読み出し、読み出したパケットデータをプロセッサバス114及びアクセス制御回路112を介して記憶部113に転送する。その後、ホストプロセッサ108は、通信プロトコル処理等の所定の受信処理を行う(ステップST414)。
一旦、ホストプロセッサ108が起動した後は、一連の必要処理が完了して再びホストプロセッサ108を含む電源領域121が停止状態に戻るまでの間、ネットワークプロセッサ103及び割り込み遅延回路104は、ホストプロセッサ108からの指示により、処理を停止する。また、ネットワークプロセッサ103及び割り込み遅延回路104の処理が停止した後も、通信インタフェース制御回路102、割り込み遅延回路104、割り込み制御回路105、ネットワークプロセッサ103、及び割り込み制御回路105の割り込み信号の伝達経路は、引き続き使われるものの、ネットワークプロセッサ103及び割り込み遅延回路104が実質的に機能せず、情報伝達のみを行う。これにより、通信インタフェース制御回路102から出力されるパケットデータは、恣意的な遅延無くホストプロセッサ108に転送される。
図5は、パケット受信装置100の動作の一部を示すシーケンス図である。図5では、説明を簡単にするため、通信インタフェース回路101と割り込み遅延回路104とホストプロセッサ108のイベント発生関係のみを示している。
通信インタフェース回路101は、ネットワークからパケットデータを受信し(ST501a、ST501b、・・・)、通信インタフェース回路101がネットワークからパケットデータを受信したタイミングに呼応して、割り込み遅延回路104には割り込み信号が送られる(ST502a、ST502b・・・)。この場合、割り込み遅延回路104は、遅延時間T1内の割り込み入力信号(ST502a〜ST502d)に対する割り込み出力信号を出力しない。そして、割り込み遅延回路104は、遅延時間T1経過後に、遅延時間T1内に入力した割り込み入力信号(ST502a〜ST502d)に対する割り込み出力信号を出力する(ST503a)。また、割り込み遅延回路104は、遅延時間T1経過後に割り込み入力信号が入力した場合には(ST502e)、入力した割り込み入力信号に対する割り込み出力信号を出力する(ST503b)。
ホストプロセッサ108は、休止状態504から稼働状態505に遷移することにより電源及びクロックが供給されて暫くは、電源及びクロックの安定化待ち時間510として動作不能の状態である。そして、ホストプロセッサ108は、安定化待ち時間510が経過して電源及びクロックが安定した後は、パケット受信処理期間511a〜511eにおいて、所望のパケット受信処理と通信プロトコル処理とアプリケーション処理のパケット受信処理を行い、その後の事後処理期間512において、再び稼動状態505から休止状態504へ遷移するための事後処理を行う。
ホストプロセッサ108は、パケット受信処理期間511a〜511eにおいて、遅延時間T1内の割り込み入力信号(ST502a〜ST502d)の入力の契機となった各パケットデータの受信処理を一括で行う。このようにしてパケット受信装置100は、通信インタフェース制御回路102における割り込み入力信号(ST502a〜ST502d)の生成のタイミングと、ホストプロセッサ108における休止状態504から稼働状態505に遷移するタイミングとの間に時間差を設けることができる。
このように、本実施の形態1によれば、受信処理すべきパケットデータであるか否かをホストプロセッサの代わりにネットワークプロセッサが判定することにより、休止状態にあるホストプロセッサを頻繁に起動しないので、休止状態から稼働状態に遷移する際の時間的オーバヘッドを軽減することができるとともに、オーバヘッド時間に浪費する電力を抑制することができ、通信性能の向上を図ることができる。
(実施の形態2)
本実施の形態2は、ネットワークプロセッサが、稼働状態から休止状態、または休止状態から稼働状態に遷移するとともに、ホストプロセッサが、起動時に、廃棄したパケットデータの廃棄数を計測し、計測結果に基づいて、休止状態のネットワークプロセッサを起動させることを特徴とするものである。
図6は、本発明の実施の形態2に係るパケット受信装置600の構成を示すブロック図である。
本実施の形態2に係るパケット受信装置600は、図1に示す実施の形態1に係るパケット受信装置100において、図6に示すように、ネットワークプロセッサ103の代わりにネットワークプロセッサ601を有し、ホストプロセッサ108の代わりにホストプロセッサ602を有し、クロック供給回路106の代わりにクロック供給回路603を有するとともに、電源供給回路107の代わりに電源供給回路604を有する。なお、図6においては、図1と同一構成である部分には同一の符号を付してその説明は省略する。
パケット受信装置600において、電源領域(常時稼動領域)620に配置される、通信インタフェース回路101と、通信インタフェース制御回路102と、割り込み遅延回路104と、割り込み制御回路105と、ネットワークプロセッサ601と、クロック供給回路603と、電源供給回路604は、常時、電源及び動作クロックが供給される。また、電源領域(選択的稼動領域)621に配置される、制御回路109と、表示部110と、キー入力部111と、アクセス制御回路112と、記憶部113と、ホストプロセッサ602は、状況に応じて電源及び動作クロックが供給される。
通信インタフェース制御回路102は、通信インタフェース回路101を制御するとともに、通信インタフェース回路101から入力したパケットデータに対してレイヤ2の処理を行う。そして、通信インタフェース制御回路102は、レイヤ2の処理を行ったパケットデータをネットワークプロセッサ601へ出力するとともに、割り込み信号を割り込み遅延回路104へ出力することにより、割り込み遅延回路104に対して、受信すべきパケットデータであるか否かの判定を行うべきパケットデータを受信した旨を伝達する。
割り込み遅延回路104は、クロック供給回路603からのクロックの供給を受けて、通信インタフェース制御回路102から入力した割り込み信号に対して一定量の遅延を設けて割り込み制御回路105へ出力する。なお、割り込み遅延回路104の構成の詳細については後述する。
割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した際に、まず、パケットデータの解析を依頼するための割り込み信号をネットワークプロセッサ601へ出力する。また、割り込み制御回路105は、ネットワークプロセッサ601から割り込み信号が入力した際に、クロック供給回路603に対してホストプロセッサ602を含む電源領域621へのクロックの供給を依頼するとともに、電源供給回路604に対してホストプロセッサ601を含む電源領域621への電源の供給を依頼する。また、割り込み制御回路105は、ホストプロセッサ602へ割り込み信号を出力することにより、ホストプロセッサ602に対して、受信処理すべきパケットデータの存在を伝達する。
パケット解析手段としてのネットワークプロセッサ601は、クロック供給回路603からクロックを供給されるとともに電源供給回路604から電源を供給された際に起動して、休止状態から稼働状態に遷移する。また、ネットワークプロセッサ601は、クロック供給回路603からのクロックの供給が停止するとともに電源供給回路604からの電源の供給が停止した際に、稼働状態から休止状態に遷移する。また、ネットワークプロセッサ601は、起動後に、割り込み制御回路105から割り込み信号が入力した際に、通信インタフェース制御回路102から入力したパケットデータの解析を行い、ホストプロセッサ602へ転送すべきか否かを判定する。そして、ネットワークプロセッサ601は、ホストプロセッサ602へ転送すべきでないと判定した場合にはホストプロセッサ602へ転送すべきでないと判定したパケットデータを廃棄する。一方、ネットワークプロセッサ601は、ホストプロセッサ602へ転送すべきであると判定した場合には、ホストプロセッサ602を起動するための割り込み信号を割り込み制御回路105へ出力するとともに、転送すべきであると判定したパケットデータをホストプロセッサ602へ出力する。
受信処理実行手段としてのホストプロセッサ602は、電源供給回路604から電源の供給を受けた場合に起動して、休止状態から稼働状態に遷移して、クロック供給回路603からクロックの供給を受ける。また、ホストプロセッサ602は、起動後に、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給の停止を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給の停止を指示する。そして、ホストプロセッサ602は、稼働状態に遷移した際に、受信処理すべきでないパケットデータであるために廃棄したパケットデータの廃棄数を計測し、計測したパケットデータの廃棄数が閾値以上になった場合に、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給の開始を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給の開始を指示する。また、ホストプロセッサ602は、割り込み制御回路105から割り込み信号が入力することにより受信処理すべきパケットデータの存在を検知し、ネットワークプロセッサ601にアクセスする。そして、ホストプロセッサ602は、受信処理すべきパケットデータをアクセス制御部112を介して記憶部113に転送し、レイヤ3以上の上位層の通信プロトコル処理を行う。
クロック供給回路603は、電源領域620及び電源領域621に動作クロックを供給する。具体的には、クロック供給部603は、電源領域620に配置される通信インタフェース回路101、通信インタフェース制御回路102、割り込み遅延回路104、割り込み制御回路105及び電源供給回路107へ常時クロックを供給する。また、クロック供給部603は、割り込み制御回路105からのクロック供給の依頼に従って、電源領域621に配置される制御回路109、アクセス制御回路112、記憶部113、ネットワークプロセッサ601及びホストプロセッサ602へのクロックの供給を開始する。また、クロック供給回路603は、ホストプロセッサ602の指示により、ネットワークプロセッサ601へのクロックの供給を停止する。
電源供給回路604は、電源領域620及び電源領域621に電源を供給する。具体的には、電源供給部604は、電源領域620に配置される通信インタフェース回路101、通信インタフェース制御回路102、割り込み遅延回路104、割り込み制御回路105及びクロック供給回路603へ常時電源を供給する。また、電源供給回路604は、割り込み制御回路104からの電源供給の依頼に従って、電源領域621に配置される制御回路109、アクセス制御回路112、記憶部113、ネットワークプロセッサ601及びホストプロセッサ602への電源の供給を開始する。また、電源供給回路604は、ホストプロセッサ602の指示により、ネットワークプロセッサ601への電源の供給を停止する。
次に、パケット受信装置600の動作について、図7を用いて説明する。図7は、パケット受信装置600の動作を示すシーケンス図である。
図7は、ホストプロセッサ602が、廃棄したパケットデータの廃棄数を計測し、計測結果に基づいて接続状況の悪化の有無の判断を行った上で、ネットワークプロセッサ601の起動を行うシーケンス図である。これにより、接続状況に応じた最適な判断を行うことができる。
ホストプロセッサ602の起動時において、パケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信した各パケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST701a〜ステップST701d)。
次に、通信インタフェース制御回路102は、パケットデータを取得する毎に割り込み信号を出力してホストプロセッサ602を起動させる。また、通信インタフェース制御回路102は、通信インタフェース回路101から転送されたパケットデータに対してレイヤ2の処理を行うとともに、ホストプロセッサ602に対して、パケットデータを転送する(ステップST702a〜ステップST702d)。
ホストプロセッサ602の通信処理プロセス機能部751は、転送されたパケットデータを受信し(ステップST703a〜ステップST703d)、ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、廃棄すべきパケットデータの廃棄数を廃棄するたびに計測する(ステップST704a〜ステップST704d)。また、ホストプロセッサ602は、パケットデータが転送されない間は、稼働状態から休止状態に遷移して休止状態になっている(ステップST705a〜ステップST705c)。
ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、計測した廃棄数があらかじめ設定した閾値を超えた場合に(ステップST706)、閾値を超えたことをホストプロセッサ602のネットワークプロセッサ制御プロセス機能部750に通知する(ステップST707)。
次に、ネットワークプロセッサ制御プロセス機能部750は、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給を指示する。そして、クロック供給回路603は、ネットワークプロセッサ601に対してクロックを供給するとともに、電源供給回路604は、ネットワークプロセッサ601に対して電源を供給する。
次に、クロック供給回路603からクロックを供給されるとともに電源供給回路604から電源を供給されたネットワークプロセッサ601は、起動して、休止状態から稼働状態に遷移する(ステップST708)。なお、ネットワークプロセッサ601が休止状態の際に、ネットワークプロセッサ601のパケットインタフェース制御部204及びパケット転送メモリ206は使用されない。従って、ホストプロセッサ602は、通信インタフェース制御回路102に直接アクセスして、パケットデータを内部転送してもらう処理を行う。
次に、ネットワークプロセッサ制御プロセス機能部750は、ネットワークプロセッサ601の起動後の、受信したパケットデータを受信処理すべきか否かを判定するためのルールを設定し(ステップST709)、設定をネットワークプロセッサ601に通知する(ステップST710)。
次に、ホストプロセッサ602は、稼働状態から休止状態に遷移することにより(ステップST711)、パケット受信装置600は待ち受け状態になる(ステップST712)。
次に、通信待ち受け状態にあるパケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST713)。
次に、通信インタフェース制御回路102は、転送されたパケットデータに対してレイヤ2の処理を行うとともに、割り込み遅延回路104に対して、割り込み信号を出力して、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。
次に、割り込み信号を受けた割り込み遅延回路104は、遅延カウンタ305をイネーブルにして、予め設定された遅延量分の時間計測を開始する。
次に、パケット受信装置600は、遅延カウンタ305が満了する以前に後続のパケットデータを受信した場合、ステップST714で最初に受信したパケットデータと同様の処理を行うが、遅延カウンタ305は、リセットせずに、カウントアップを継続する。
次に、割り込み遅延回路104は、遅延カウンタ305が満了した時点で、割り込み制御回路105に対して、割り込み信号を出力し、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。この際、割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した場合には、まず、ネットワークプロセッサ601に対して、割り込み信号を出力して、ネットワークプロセッサ601の動作を開始させる。
次に、ネットワークプロセッサ601のパケットインタフェース制御部204は、通信インタフェース制御回路102に蓄積されたパケットデータを取り込み(ステップST714)、取り込んだパケットデータを内部バス207を介してパケット転送用メモリ206に格納する。
また、ネットワークプロセッサ601のパケットフィルタ回路203は、パケットインタフェース制御部204に取り込まれたパケットデータが同時に入力し、入力したパケットデータを解析してパケットデータの種別判定を行う。具体的には、パケットフィルタ回路203は、入力したパケットデータのプロトコル構造の解析、及び特定のプロトコルフィールドのパターンマッチング(パターン照合)を行うことにより、パケットデータの種別判定を行う。そして、パケットフィルタ回路203は、判定結果を内部の結果レジスタに表示する。例えば、パケットフィルタ回路203は、パケットデータのプロトコル構造がIPsecである場合には、IPヘッダに含まれる送受信IPアドレスと、IPsecヘッダに含まれるセッション識別情報(SPI値)とに基づいて、パケットデータが属する通信セッションを判断し、判断した通信セッションが受信許可されているものであるか否かを判断することにより受信処理すべきか否かを判定し、判定結果を内部の結果レジスタに表示する。
次に、パケット転送用メモリ206へのパケットデータの転送処理、及びパケットフィルタ回路203におけるパケット解析処理が終了した時点で、パケット処理シーケンサ201は、パケットフィルタ回路203における解析結果を参照し、また必要に応じてパケット転送用メモリ206に蓄積されたパケットデータそのものを直接に解析した上で、パケットデータをホストプロセッサ602に転送すべきか否か、即ちパケット受信装置600が受信処理すべきか否かの判断を行う。図7では、転送の必要がないパケットと判断し、パケット処理シーケンサ201は、パケットインタフェース制御部204にパケットデータの廃棄処理を指示し、パケットインタフェース制御部204は、パケット転送用メモリ206に蓄積されたパケットデータを廃棄する(ステップST715)。
次に、パケット転送用メモリ206に蓄積されたパケットデータの廃棄処理が終わった後に、パケット処理シーケンサ201は、通信インタフェース制御回路102からの状態通知により、後続の判定すべきパケットデータがすでに受信されている状態であることを検知し、次の後続パケットデータに対して、同様の処理を繰り返す(ステップST716〜ステップST720)。
次に、パケット処理シーケンサ201は、パケットフィルタ回路203の解析処理の結果を参照して、ホストプロセッサ602に転送すべきパケットデータであると判断した場合には(ステップST721)、ホストインタフェース回路205にはたらきかけ、割り込み制御回路105に対して、ホストプロセッサ602を起動するための割り込み信号を出力する。
次に、割り込み制御回路105は、割り込み信号を受けた場合には、電源領域621に対して、電源供給回路604から電源を供給するように制御するとともに、クロック供給回路603からクロックを供給するように制御する。さらに、割り込み制御回路105は、ホストプロセッサ602に対して、割り込み信号を出力することにより、受信処理すべきパケットデータが存在することを伝達する。
次に、ステップST711から停止状態にあったホストプロセッサ602は、電源供給回路604から電源の供給を受けるとともにクロック供給回路603からクロックの供給を受け、且つ割り込み信号を受けることにより起動して(ステップST722)、稼働状態になる。
次に、ネットワークプロセッサ601は、受信処理すべきパケットデータをホストプロセッサ602に転送する(ステップST723)。
ホストプロセッサ602の通信処理プロセス機能部751は、転送されたパケットデータを受信し(ステップST724)、ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、廃棄したパケットデータの廃棄数を計測する(ステップST725)。
なお、ステップST715、ステップST718及びステップST721は、ホストプロセッサ602が休止状態(ステップST712)におけるパケットデータの受信処理であり、割込み遅延回路104は、通信インタフェース制御回路102から入力した割り込み信号に対して、所望の遅延を加えて出力する。
図8は、割込み遅延回路104のみによる省電力効果と、割り込み遅延回路104及びネットワークプロセッサ601を併用した場合の省電力効果との比較を示す図である。図8において、曲線#810は、割り込み遅延回路104及びネットワークプロセッサ601の双方を使用しない場合(従来の場合)を示し、曲線#811、#812は、割込み遅延回路104のみを使う場合を示すとともに、曲線#813は、割り込み遅延回路104及びネットワークプロセッサ601を併用した場合を示す。また、曲線#811よりも曲線#812の方が、割り込み遅延回路104における遅延量が大きい。また、曲線#813は、割り込み遅延回路104における遅延量が曲線#812と同じである。
図8より、一般に、割り込み遅延回路104及びネットワークプロセッサ601の双方を使用しない場合(曲線#810)よりも、割込み遅延回路104のみを使う場合(曲線#811、#812)のほうがより高い効果が望めるとともに、割込み遅延回路104のみを使う場合(曲線#811、#812)よりも、割り込み遅延回路104及びネットワークプロセッサ601を併用した場合(曲線#813)のほうがより高い効果が望める。しかし、パケットフィルタ機能等の比較的高度な機能を有するネットワークプロセッサ601は、定常的なリーク電流も大きいため、効果が最大限発揮できない状況下、すなわち不要パケットがそもそも少ない環境下では、逆に使用しないほうが望ましいといった傾向を示す(逆転現象#801)。本実施の形態2では、この逆転現象#801に対する対策として、接続状況及び接続環境に応じてネットワークプロセッサ601を使用するか否かを判断して切り替えるものである。
因みに、パケットデータの受信処理をネットワークプロセッサ601で行うか、またはホストプロセッサ602で行うかは、ネットワークプロセッサ601及びホストプロセッサ602の何れが通信インタフェース制御回路102に対してアクセスするかの相違による。また、パケットデータの受信処理にネットワークプロセッサ601を使用する場合において、ネットワークプロセッサ601が受信処理すべきパケットデータであると判断した後は、ホストプロセッサ602にとっては、ネットワークプロセッサ601が通信インタフェース制御回路102のような動作を行う。
このように、本実施の形態2によれば、上記実施の形態1の効果に加えて、廃棄するパケットデータが少ない環境下ではホストプロセッサを使用するので、廃棄するパケットデータが少ない環境下において、定常的なリーク電流を抑制することができるとともに、消費電力を低減することができる。
なお、本実施の形態2において、パケットデータの廃棄数の計測結果に応じてネットワークプロセッサ601を起動させるか否か判定したが、これに限らず、パケットデータの廃棄頻度を求めて、求めた廃棄頻度に応じてネットワークプロセッサ601を起動させるか否か判定しても良い。
(実施の形態3)
本実施の形態3は、ネットワークプロセッサが、稼働状態から休止状態、または休止状態から稼働状態に遷移するとともに、ホストプロセッサが、起動時に、アクセスポイントの識別情報に基づいて、休止状態のネットワークプロセッサを起動させることを特徴とするものである。
図9は、本発明の実施の形態3に係るパケット受信装置の動作を示すシーケンス図である。なお、本実施の形態3においては、受信装置の構成は図6と同一であるので、その説明は省略するとともに、図9の動作の説明において、パケット受信装置は図6と同一の符号を用いる。
図9は、通信リンク確立時にホストプロセッサ602が接続環境情報を取得し、ホストプロセッサ602が、データベースとして管理する接続環境情報に基づき、必要に応じてネットワークプロセッサ601を起動するシーケンス図である。図示しない無線LANのアクセスポイントと受信装置600との間で通信リンクを確立する際には、アクセスポイントは、各アクセスポイントに個別の識別情報であるSSID(Service Set ID)及びその他の認証情報を受信装置600に対して通知するので、ホストプロセッサ602は、識別情報の1つと廃棄したパケットデータの廃棄数とを対応付けた接続環境情報をテーブルで管理することが可能である。
図9では、ホストプロセッサ602は、リンク確立時にテーブル照合を行い、過去に廃棄したパケットデータの数が多い環境であったことを検知した場合に、ネットワークプロセッサ601の使用を開始させる。ネットワークプロセッサ601の使用中は、ネットワークプロセッサ601側(シーケンサ上のソフトウェア)で廃棄したパケットデータの廃棄数を計測しており、通信終了時には廃棄数の計測結果をホストプロセッサ602が拾い上げて、接続環境情報を更新する。
以下に、図9を用いてさらに詳細に説明する。
通信インタフェース制御回路102は、アクセスポイントとの間で接続を確立し(ステップST901)、接続確立後に、アクセスポイントから送信された信号を受信し、受信信号からパケットデータを抽出して、抽出したパケットデータをホステプロセッサ602に転送する(ステップST902)。なお、ネットワークプロセッサ601が休止状態の際に、ネットワークプロセッサ601のパケットインタフェース制御部204及びパケット転送メモリ206は使用されない。従って、ホストプロセッサ602は、通信インタフェース制御回路102に直接アクセスして、パケットデータを内部転送してもらう処理を行う。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、受信したパケットデータに含まれているSSID等のアクセスポイントを識別するための識別情報を抽出し、抽出した識別情報を用いて、接続したアクセスポイントを識別する(ステップST903)。
通信処理プロセス機能部751は、あらかじめ、アクセスポイントの識別情報と、アクセスポイント毎の過去の所定時間におけるパケットデータの廃棄数とを関係付けた接続環境情報を記憶している。そして、通信処理プロセス機能部751は、抽出した識別情報を用いて、接続環境情報を参照することによりパケットデータの廃棄数を選択する(ステップST904、ステップST905)。
次に、通信処理プロセス機能部751は、選択したパケットデータの廃棄数としきい値とを比較して、パケットデータの廃棄数がしきい値以上である場合に、ネットワークプロセッサ制御プロセス機能部750に対して、ネットワークプロセッサ601の起動を依頼する(ステップST906)。
次に、ネットワークプロセッサ制御プロセス機能部750は、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給を指示する。そして、クロック供給回路603は、ネットワークプロセッサ601に対してクロックを供給するとともに、電源供給回路604は、ネットワークプロセッサ601に対して電源を供給する。
次に、クロック供給回路603からクロックを供給されるとともに電源供給回路604から電源を供給されたネットワークプロセッサ601は、起動して、休止状態から稼働状態に遷移する(ステップST907)。
次に、ネットワークプロセッサ制御プロセス機能部750は、ネットワークプロセッサ601の起動後の、受信したパケットデータを受信処理すべきか否かを判定するためのルールを設定し(ステップST908)、設定をネットワークプロセッサ601に通知する(ステップST909)。
次に、ホストプロセッサ602は、稼働状態から休止状態に遷移することにより(ステップST910)、パケット受信装置600は待ち受け状態になる(ステップST911)。
次に、通信待ち受け状態にあるパケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST912)。
次に、通信インタフェース制御回路102は、転送されたパケットデータに対してレイヤ2の処理を行うとともに、割り込み遅延回路104に対して、割り込み信号を出力して、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。
次に、割り込み信号を受けた割り込み遅延回路104は、遅延カウンタ305をイネーブルにして、予め設定された遅延量分の時間計測を開始する。
次に、パケット受信装置600は、遅延カウンタ305が満了する以前に後続のパケットデータを受信した場合、ステップST913で最初に受信したパケットデータと同様の処理を行うが、遅延カウンタ305は、リセットせずに、カウントアップを継続する。
次に、割り込み遅延回路104は、遅延カウンタ305が満了した時点で、割り込み制御回路105に対して、割り込み信号を出力し、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。この際、割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した場合には、まず、ネットワークプロセッサ601に対して、割り込み信号を出力して、ネットワークプロセッサ601の動作を開始させる。
次に、ネットワークプロセッサ601のパケットインタフェース制御部204は、通信インタフェース制御回路102に蓄積されたパケットデータを取り込み(ステップST913)、取り込んだパケットデータを内部バス207を介してパケット転送用メモリ206に格納する。
また、ネットワークプロセッサ601のパケットフィルタ回路203は、パケットインタフェース制御部204に取り込まれたパケットデータが同時に入力し、入力したパケットデータを解析してパケットデータの種別判定を行う。具体的には、パケットフィルタ回路203は、入力したパケットデータのプロトコル構造の解析、及び特定のプロトコルフィールドのパターンマッチング(パターン照合)を行うことにより、パケットデータの種別判定を行う。そして、パケットフィルタ回路203は、判定結果を内部の結果レジスタに表示する。例えば、パケットフィルタ回路203は、パケットデータのプロトコル構造がIPsecである場合には、IPヘッダに含まれる送受信IPアドレスと、IPsecヘッダに含まれるセッション識別情報(SPI値)とに基づいて、パケットデータが属する通信セッションを判断し、判断した通信セッションが受信許可されているものであるか否かを判断することにより受信処理すべきか否かを判定し、判定結果を内部の結果レジスタに表示する。
次に、パケット転送用メモリ206へのパケットデータの転送処理、及びパケットフィルタ回路203におけるパケット解析処理が終了した時点で、パケット処理シーケンサ201は、パケットフィルタ回路203における解析結果を参照し、また必要に応じてパケット転送用メモリ206に蓄積されたパケットデータそのものを直接に解析した上で、パケットデータをホストプロセッサ602に転送すべきか否か、即ちパケット受信装置600が受信処理すべきか否かの判断を行う。図7では、転送の必要がないパケットと判断し、パケット処理シーケンサ201は、パケットインタフェース制御部204にパケットデータの廃棄処理を指示し、パケットインタフェース制御部204は、パケット転送用メモリ206に蓄積されたパケットデータを廃棄する(ステップST914)。
次に、パケット転送用メモリ206に蓄積されたパケットデータの廃棄処理が終わった後に、パケット処理シーケンサ201は、通信インタフェース制御回路102からの状態通知により、後続の判定すべきパケットデータがすでに受信されている状態であることを検知し、次なる後続パケットデータに対して、同様の処理を繰り返す(ステップST915〜ステップST919)。
次に、パケット処理シーケンサ201は、パケットデータの解析処理を行った結果、ホストプロセッサ602に転送すべきパケットデータであると判断した場合には(ステップST920)、ホストインタフェース回路205にはたらきかけ、割り込み制御回路105に対して、ホストプロセッサ602を起動するための割り込み信号を出力する。
次に、割り込み制御回路105は、割り込み信号を受けた場合には、電源領域621に対して、電源供給回路604から電源を供給するように制御するとともに、クロック供給回路603からクロックを供給するように制御する。さらに、割り込み制御回路105は、ホストプロセッサ602に対して、割り込み信号を出力することにより、受信処理すべきパケットデータが存在することを伝達する。
次に、ステップST911から停止状態にあったホストプロセッサ602は、電源供給回路604から電源の供給を受けるとともにクロック供給回路603からクロックの供給を受け、且つステップST922で割り込み信号を受けることにより起動して(ステップST921)、稼働状態になる。
次に、ネットワークプロセッサ601は、受信処理すべきパケットデータをホストプロセッサ602に転送する(ステップST922)。
ホストプロセッサ602の通信処理プロセス機能部751は、転送されたパケットデータを受信し(ステップST923)、ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、廃棄したパケットデータの廃棄数を計測する(ステップST924)。
次に、パケット受信装置600は、アクセスポイントとの通信ができない通信圏外に移動することにより、通信インタフェース制御回路102は、アクセスポイントとの接続を解除し(ステップST925)、ホストプロセッサ602は、接続解除を認識する(ステップST926)。
次に、ネットワークプロセッサ601は、ステップST908で起動した後に、受け取ったパケットデータが受信処理すべきパケットデータであるか否かを判定し、判定の結果、受信処理すべきパケットデータでない場合には廃棄するとともに、廃棄したパケットデータの廃棄数を計測する。そして、ネットワークプロセッサ601は、ステップST926で接続解除を認識するまでに計測したパケットデータの廃棄数の結果である計数結果を、ホストプロセッサ602へ出力する(ステップST927)。
ホストプロセッサ602の通信処理プロセス機能部751は、ネットワークプロセッサ601で計測した計数結果と、不要パケット受信頻度計数プロセス機能部752で計測した計数結果とを取得する(ステップST928、ステップST929)。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、ステップST929とステップST930の双方で取得した計数結果をアクセスポイントの識別情報と関係付けることにより、都度、接続環境情報を更新する(APテーブル更新)(ステップST930)。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給の停止を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給の停止を指示する(ステップST931)。
次に、クロック供給回路603は、ネットワークプロセッサ601へのクロックの供給を停止するとともに、電源供給回路604は、ネットワークプロセッサ601への電源の供給を停止する。これにより、ネットワークプロセッサ601は、稼働状態から休止状態に遷移する(ステップST932)。
なお、ステップST912〜ステップST920は、ホストプロセッサ602が休止状態(ステップST911)におけるパケットデータの受信処理であり、割込み遅延回路104は、通信インタフェース制御回路102から入力した割り込み信号に対して、所望の遅延を加えて出力する。
図10は、接続環境情報の他の例を示す図である。接続環境情報は、アクセスポイントの識別情報とパケットデータの廃棄数とを関係付けるものに限らず、図10に示すように、アクセスポイントの識別情報(AP SSID)と過去実績とを関係付けるものであっても良い。即ち、ステップST930で取得したパケットデータの廃棄数がしきい値以下である場合には、過去実績としてネットワークプロセッサ601の使用が不要であることを示す「0」を設定するとともに、ステップST930で取得したパケットデータの廃棄数がしきい値を超えている場合には、過去実績としてネットワークプロセッサ601の使用が必要であることを示す「1」を設定する。
このように、本実施の形態3によれば、上記実施の形態1の効果に加えて、廃棄するパケットデータが少ない環境下ではネットワークプロセッサを使用するので、廃棄するパケットデータが少ない環境下において、定常的なリーク電流を抑制することができるとともに、消費電力を低減することができる。また、本実施の形態3によれば、あらかじめ記憶しておいた接続環境情報に基づいて、ネットワークプロセッサを使用するか否かを判定して切り替えるので、パケットデータの廃棄数を計測している間の電力の浪費を抑制することができる。
なお、本実施の形態3において、パケットデータの廃棄数の計測結果に応じてネットワークプロセッサ601を起動させるか否か判定したが、これに限らず、パケットデータの廃棄頻度を求めて、求めた廃棄頻度に応じてネットワークプロセッサ601を起動させるか否か判定しても良い。
(実施の形態4)
本実施の形態4は、ネットワークプロセッサが、稼働状態から休止状態、または休止状態から稼働状態に遷移するとともに、ネットワークプロセッサが、起動時に、廃棄したパケットデータの廃棄数を計測して、計測結果をホストプロセッサに報告するとともに、ホストプロセッサが、ネットワークプロセッサからの報告に基づいて、ネットワークプロセッサを休止状態にすることを特徴とするものである。
図11は、本発明の実施の形態4に係る受信装置の動作を示すシーケンス図である。なお、本実施の形態4においては、受信装置の構成は図6と同一であるので、その説明は省略するとともに、図11の動作の説明において、パケット受信装置は図6と同一の符号を用いる。
図11は、受信処理すべきパケットデータの受信時にホストプロセッサ602が起動し、ホストプロセッサ602による状況確認を行って、ネットワークプロセッサ601を停止させるシーケンス図である。起動中のネットワークプロセッサ601は、廃棄したパケットデータの廃棄数を計測しており、起動したホストプロセッサ602は、ネットワークプロセッサ601から取得した計数結果を確認する。ホストプロセッサ602は、計数結果より、ネットワークプロセッサ601を使うまでも無い環境であること、すなわち廃棄するパケットデータの廃棄数が充分に小さい環境であることを検知した場合、ネットワークプロセッサ601を停止して直接にホストプロセッサ602でパケットデータの受信処理を行う。
以下に、図11を用いてさらに詳細に説明する。
ネットワークプロセッサ601は、クロック供給回路603からクロックを供給されるとともに、電源供給回路604から電源を供給されることにより、稼働状態になる(ステップST1100)。
次に、通信待ち受け状態にあるパケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST1101)。
次に、通信インタフェース制御回路102は、転送されたパケットデータに対してレイヤ2の処理を行うとともに、割り込み遅延回路104に対して、割り込み信号を出力して、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。
次に、割り込み信号を受けた割り込み遅延回路104は、遅延カウンタ305をイネーブルにして、予め設定された遅延量分の時間計測を開始する。
次に、パケット受信装置600は、遅延カウンタ305が満了する以前に後続のパケットデータを受信した場合、ステップST1101で最初に受信したパケットデータと同様の処理を行うが、遅延カウンタ305は、リセットせずに、カウントアップを継続する。
次に、割り込み遅延回路104は、遅延カウンタ305が満了した時点で、割り込み制御回路105に対して、割り込み信号を出力し、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。この際、割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した場合には、まず、ネットワークプロセッサ601に対して、割り込み信号を出力して、ネットワークプロセッサ601の動作を開始させる。
次に、ネットワークプロセッサ601のパケットインタフェース制御部204は、通信インタフェース制御回路102に蓄積されたパケットデータを取り込み(ステップST1102)、取り込んだパケットデータを内部バス207を介してパケット転送用メモリ206に格納する。
また、ネットワークプロセッサ601のパケットフィルタ回路203は、パケットインタフェース制御部204に取り込まれたパケットデータが同時に入力し、入力したパケットデータを解析してパケットデータの種別判定を行う。具体的には、パケットフィルタ回路203は、入力したパケットデータのプロトコル構造の解析、及び特定のプロトコルフィールドのパターンマッチング(パターン照合)を行うことにより、パケットデータの種別判定を行う。そして、パケットフィルタ回路203は、判定結果を内部の結果レジスタに表示する。例えば、パケットフィルタ回路203は、パケットデータのプロトコル構造がIPsecである場合には、IPヘッダに含まれる送受信IPアドレスと、IPsecヘッダに含まれるセッション識別情報(SPI値)とに基づいて、パケットデータが属する通信セッションを判断し、判断した通信セッションが受信許可されているものであるか否かを判断することにより受信処理すべきか否かを判定し、判定結果を内部の結果レジスタに表示する。
次に、パケット転送用メモリ206へのパケットデータの転送処理、及びパケットフィルタ回路203におけるパケット解析処理が終了した時点で、パケット処理シーケンサ201は、パケットフィルタ回路203における解析結果を参照し、また必要に応じてパケット転送用メモリ206に蓄積されたパケットデータそのものを直接に解析した上で、パケットデータをホストプロセッサ602に転送すべきか否か、即ちパケット受信装置600が受信すべきか否かの判断を行う。図11では、転送の必要がないパケットと判断し、パケット処理シーケンサ201は、パケットインタフェース制御部204にパケットデータの廃棄処理を指示し、パケットインタフェース制御部204は、パケット転送用メモリ206に蓄積されたパケットデータを廃棄する(ステップST1103)。
次に、パケット転送用メモリ206に蓄積されたパケットデータの廃棄処理が終わった後に、パケット処理シーケンサ201は、通信インタフェース制御回路102からの状態通知により、後続の判定すべきパケットデータがすでに受信されている状態であることを検知し、次なる後続パケットデータに対して、同様の処理を繰り返す(ステップST1104〜ステップST1108)。
次に、パケット処理シーケンサ201は、パケットデータの解析処理を行った結果、ホストプロセッサ602に転送すべきパケットデータであると判断した場合には(ステップST1109)、ホストインタフェース回路205にはたらきかけ、割り込み制御回路105に対して、ホストプロセッサ602を起動するための割り込み信号を出力する。
次に、割り込み制御回路105は、割り込み信号を受けた場合には、電源領域621に対して、電源供給回路604から電源を供給するように制御するとともに、クロック供給回路603からクロックを供給するように制御する。さらに、割り込み制御回路105は、ホストプロセッサ602に対して、割り込み信号を出力することにより、受信処理すべきパケットデータが存在することを伝達する。
次に、ステップST1110から停止状態(ステップST1111)にあったホストプロセッサ602は、電源供給回路604から電源の供給を受けるとともにクロック供給回路603からクロックの供給を受け、且つ割り込み信号を受けて起動して(ステップST1112)、稼働状態になる。
次に、ネットワークプロセッサ601は、受信処理すべきパケットデータをホストプロセッサ602に転送する(ステップST1113)。
ホストプロセッサ602の通信処理プロセス機能部751は、転送されたパケットデータを受信し(ステップST1114)、ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、廃棄したパケットデータの廃棄数を計測する(ステップST1115)。
次に、ネットワークプロセッサ601は、ステップST1112で起動した後に、受け取ったパケットデータが受信処理すべきパケットデータであるか否かを判定し、判定の結果、受信処理すべきパケットデータでない場合には廃棄するとともに、廃棄したパケットデータの廃棄数を計測する。そして、ネットワークプロセッサ601は、計測したパケットデータの廃棄数の結果である計数結果を、ホストプロセッサ602へ出力する(ステップST1116)。
ホストプロセッサ602の通信処理プロセス機能部751は、ネットワークプロセッサ601で計測した計数結果と、不要パケット受信頻度計数プロセス機能部752で計測した計数結果とを取得する(ステップST1117、ステップST1118)。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給の停止を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給の停止を指示する。
次に、クロック供給回路603は、ネットワークプロセッサ601へのクロックの供給を停止するとともに、電源供給回路604は、ネットワークプロセッサ601への電源の供給を停止する。これにより、ネットワークプロセッサ601は、稼働状態から休止状態に遷移する(ステップST1119)。
次に、パケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST1120)。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、通信インタフェース制御回路102から転送されたパケットデータを受信し(ステップST1121、ステップST1122)、ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、廃棄するパケットデータの廃棄数を計測する(ステップST1123)。なお、ネットワークプロセッサ601が休止状態の際に、ネットワークプロセッサ601のパケットインタフェース制御部204及びパケット転送メモリ206は使用されない。従って、ホストプロセッサ602は、通信インタフェース制御回路102に直接アクセスして、パケットデータを内部転送してもらう処理を行う。
このように、本実施の形態4によれば、上記実施の形態1の効果に加えて、廃棄するパケットデータが少ない環境下ではホストプロセッサを使用するので、廃棄するパケットデータが少ない環境下において、定常的なリーク電流を抑制することができるとともに、消費電力を低減することができる。また、本実施の形態4によれば、ネットワークプロセッサは、受信処理すべきパケットデータを受信したと判定した場合にホストプロセッサが起動させるので、消費電力を抑制することができる。
なお、本実施の形態4において、パケットデータの廃棄数の計測結果に応じてネットワークプロセッサ601を休止状態にするか否か判定したが、これに限らず、パケットデータの廃棄頻度を求めて、求めた廃棄頻度に応じてネットワークプロセッサ601を休止状態にするか否か判定しても良い。
(実施の形態5)
本実施の形態5は、ネットワークプロセッサが、稼働状態から休止状態、または休止状態から稼働状態に遷移するとともに、ホストプロセッサは、間欠的に起動し、ネットワークプロセッサが、ホストプロセッサの起動時に、廃棄したパケットデータの廃棄数を計測して、計測結果をホストプロセッサに報告するとともに、ホストプロセッサが、ネットワークプロセッサからの報告に基づいて、ネットワークプロセッサを休止状態にすることを特徴とするものである。
図12は、本発明の実施の形態5に係る受信装置の動作を示すシーケンス図である。なお、本実施の形態5においては、受信装置の構成は図6と同一であるので、その説明は省略するとともに、図12の動作の説明において、パケット受信装置は図6と同一の符号を用いる。
図12は、タイマー割り込みによりホストプロセッサ602が定期的に起動し、ネットワークプロセッサ601の状況を確認して、使用頻度が低ければネットワークプロセッサ601を停止するシーケンス図である。これにより、廃棄するパケットデータのみが飛び交う状況下であっても状況追随が可能であるという利点がある。
ホストプロセッサ602は、起動した際に、ネットワークプロセッサ601でのパケットデータの廃棄数を確認し、廃棄したパケットデータの廃棄数が一定の値以上の場合は、引き続きネットワークプロセッサ601を使い続けると判断して、タイマーをリセットする。逆に、ホストプロセッサ602は、廃棄するパケットデータの廃棄数が充分に小さい環境であることを検知した場合には、ネットワークプロセッサ601を停止して、自らパケットデータの受信処理を行う。
以下に、図12を用いてさらに詳細に説明する。
ネットワークプロセッサ601は、クロック供給回路603からクロックを供給されるとともに、電源供給回路604から電源を供給されることにより、稼働状態になる(ステップST1200)。
次に、通信待ち受け状態にあるパケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST1201)。
次に、通信インタフェース制御回路102は、転送されたパケットデータに対してレイヤ2の処理を行うとともに、割り込み遅延回路104に対して、割り込み信号を出力して、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。
次に、割り込み信号を受けた割り込み遅延回路104は、遅延カウンタ305をイネーブルにして、予め設定された遅延量分の時間計測を開始する。
次に、パケット受信装置600は、遅延カウンタ305が満了する以前に後続のパケットデータを受信した場合、ステップST1201で最初に受信したパケットデータと同様の処理を行うが、遅延カウンタ305は、リセットせずに、カウントアップを継続する。
次に、割り込み遅延回路104は、遅延カウンタ305が満了した時点で、割り込み制御回路105に対して、割り込み信号を出力し、受信処理すべきか否かの判定が必要なパケットデータを受信した旨を伝達する。この際、割り込み制御回路105は、割り込み遅延回路104から割り込み信号が入力した場合には、まず、ネットワークプロセッサ601に対して、割り込み信号を出力して、ネットワークプロセッサ601の動作を開始させる。
次に、ネットワークプロセッサ601のパケットインタフェース制御部204は、通信インタフェース制御回路102に蓄積されたパケットデータを取り込み(ステップST1202)、取り込んだパケットデータを内部バス207を介してパケット転送用メモリ206に格納する。
また、ネットワークプロセッサ601のパケットフィルタ回路203は、パケットインタフェース制御部204に取り込まれたパケットデータが同時に入力し、入力したパケットデータを解析してパケットデータの種別判定を行う。具体的には、パケットフィルタ回路203は、入力したパケットデータのプロトコル構造の解析、及び特定のプロトコルフィールドのパターンマッチング(パターン照合)を行うことにより、パケットデータの種別判定を行う。そして、パケットフィルタ回路203は、判定結果を内部の結果レジスタに表示する。例えば、パケットフィルタ回路203は、パケットデータのプロトコル構造がIPsecである場合には、IPヘッダに含まれる送受信IPアドレスと、IPsecヘッダに含まれるセッション識別情報(SPI値)とに基づいて、パケットデータが属する通信セッションを判断し、判断した通信セッションが受信許可されているものであるか否かを判断することにより受信処理すべきか否かを判定し、判定結果を内部の結果レジスタに表示する。
次に、パケット転送用メモリ206へのパケットデータの転送処理、及びパケットフィルタ回路203におけるパケット解析処理が終了した時点で、パケット処理シーケンサ201は、パケットフィルタ回路203における解析結果を参照し、また必要に応じてパケット転送用メモリ206に蓄積されたパケットデータそのものを直接に解析した上で、パケットデータをホストプロセッサ602に転送すべきか否か、即ちパケット受信装置600が受信すべきか否かの判断を行う。図12では、転送の必要がないパケットと判断し、パケット処理シーケンサ201は、パケットインタフェース制御部204にパケットデータの廃棄処理を指示し、パケットインタフェース制御部204は、パケット転送用メモリ206に蓄積されたパケットデータを廃棄する(ステップST1203)。
次に、パケット転送用メモリ206に蓄積されたパケットデータの廃棄処理が終わった後に、パケット処理シーケンサ201は、通信インタフェース制御回路102からの状態通知により、後続の判定すべきパケットデータがすでに受信されている状態であることを検知し、次の後続パケットデータに対して、同様の処理を繰り返す(ステップST1204〜ステップST1209)。
ホストプロセッサ602は、ステップST1210で稼働状態から休止状態に遷移してから休止状態を継続し(ステップST1211)、所定のタイミングでタイマーによる割り込みを受ける(ステップST1212)。これにより、ホストプロセッサ602は、起動する(ステップST1213)。ホストプロセッサ602を起動するタイマー機能は、汎用のプロセッサが有するタイマー機能であり、通常これらのタイマー機能はホストプロセッサ602が停止状態であっても、動作可能な領域に実装されるものである。
ホストプロセッサ602は、タイマー割込みによって起動する場合に限らず、例えば定期的に生じる何らかの処理の際に起動するようにしても良い。
次に、ネットワークプロセッサ601は、ステップST1200で起動してから計測した、廃棄したパケットデータの廃棄数の計測結果をホストプロセッサ602へ報告する(ステップST1214)。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、計測結果を取得し(ステップST1215)、パケットデータの廃棄数がしきい値以下であれば、クロック供給回路603に対して、ネットワークプロセッサ601へのクロックの供給の停止を指示するとともに、電源供給回路604に対して、ネットワークプロセッサ601への電源の供給の停止を指示する。
次に、クロック供給回路603は、ネットワークプロセッサ601へのクロックの供給を停止するとともに、電源供給回路604は、ネットワークプロセッサ601への電源の供給を停止することにより、ネットワークプロセッサ601は、休止状態になる(ステップST1216)。
次に、パケット受信装置600がパケットデータを受信した際に、通信インタフェース回路101は、受信したパケットデータに対してレイヤ1の処理を行い、通信インタフェース制御回路102へ転送する(ステップST1217)。
次に、ホストプロセッサ602の通信処理プロセス機能部751は、通信インタフェース制御回路102から転送されたパケットデータを受信し(ステップST1218、ステップST1219)、ホストプロセッサ602の不要パケット受信頻度計数プロセス機能部752は、廃棄するパケットデータの廃棄数を計測する(ステップST1220)。なお、ネットワークプロセッサ601が休止状態の際に、ネットワークプロセッサ601のパケットインタフェース制御部204及びパケット転送メモリ206は使用しない。従って、ホストプロセッサ602は、通信インタフェース制御回路102に直接アクセスして、パケットデータを内部転送してもらう処理を行う。
このように、本実施の形態5によれば、上記実施の形態1の効果に加えて、廃棄するパケットデータが少ない環境下ではホストプロセッサを使用するので、廃棄するパケットデータが少ない環境下において、定常的なリーク電流を抑制することができるとともに、消費電力を低減することができる。また、本実施の形態5によれば、廃棄するパケットデータが多い環境下ではネットワークプロセッサを使用するので、廃棄するパケットデータが多い環境下において、消費電力を低減することができる。また、本実施の形態5によれば、ホストプロセッサは間欠的に起動するので、消費電力を低減することができる。
なお、本実施の形態5において、パケットデータの廃棄数の計測結果に応じてネットワークプロセッサ601を起動させるか否か判定したが、これに限らず、パケットデータの廃棄頻度を求めて、求めた廃棄頻度に応じてネットワークプロセッサ601を起動させるか否か判定しても良い。