JP2015220675A - 通信装置およびその制御方法 - Google Patents

通信装置およびその制御方法 Download PDF

Info

Publication number
JP2015220675A
JP2015220675A JP2014104512A JP2014104512A JP2015220675A JP 2015220675 A JP2015220675 A JP 2015220675A JP 2014104512 A JP2014104512 A JP 2014104512A JP 2014104512 A JP2014104512 A JP 2014104512A JP 2015220675 A JP2015220675 A JP 2015220675A
Authority
JP
Japan
Prior art keywords
unit
packet
processor
address length
protocol processing
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.)
Pending
Application number
JP2014104512A
Other languages
English (en)
Inventor
智和 八巻
Tomokazu Yamaki
智和 八巻
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2014104512A priority Critical patent/JP2015220675A/ja
Publication of JP2015220675A publication Critical patent/JP2015220675A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】1つのプロセッサを利用して複数のプロトコルに対応するには、プロセッサが有するキャッシュサイズなどのH/Wリソースの観点で利用可能なプロセッサに制約が生じる。【解決手段】通信装置は、他の通信装置から、パケットを受信する受信手段と、受信したパケットが第1のアドレス長である場合に該パケットに対して第1のプロトコル処理を行う第1のプロセッサと、受信したパケットが第2のアドレス長である場合に該パケットに対して第2のプロトコル処理を行う第2のプロセッサと、受信したパケットのアドレス長に基づいて該パケットを第1のプロセッサもしくは第2のプロセッサに転送する転送手段と、を有する。【選択図】図1

Description

本発明は、複数のプロトコルを処理する通信技術に関するものである。
インターネット、イントラネットといった各種ネットワークにおいて、インターネットプロトコル(IP)が利用されている。現在、一般的に使用されているIPはRFC791で規定されたIPv4であるが、近年、RFC2460で規定されたIPv6も使用されてきている(特許文献1)。IPv6は、IPv4の実績を通じて得た豊富な経験を基に開発されたプロトコルであり、IPv4での問題点解決や拡張性や柔軟性の向上を図っている。
特開2013−250611号公報
しかしながら、1つのプロセッサを利用して複数のプロトコルに対応するには、プロセッサが有するキャッシュサイズなどのH/Wリソースの観点で利用可能なプロセッサに制約が生じる。
本発明は上述の問題点に鑑みなされたものであり、通信装置において、複数のプロセッサを用いて複数のプロトコルに対応することを目的とする。
上述の問題点を解決するため、本発明に係る通信装置は以下の構成を備える。すなわち、他の通信装置から、第1のアドレス長、もしくは、第2のアドレス長のパケットを受信する受信手段と、前記受信手段が受信したパケットが前記第1のアドレス長である場合に、当該パケットに対して第1のプロトコル処理を行う第1のプロセッサと、前記受信手段が受信したパケットが前記第2のアドレス長である場合に、当該パケットに対して第2のプロトコル処理を行う第2のプロセッサと、前記受信手段が受信したパケットのアドレス長に基づいて、当該パケットを前記第1のプロセッサもしくは前記第2のプロセッサに転送する転送手段と、を有する。
本発明によれば、通信装置において、複数のプロセッサを用いて複数のプロトコルに対応することができる。
第1実施形態に係る通信装置のブロック図。 通信装置の電力モードの遷移を説明する図。 通信制御部およびプロトコル処理部におけるデータの流れを説明する図。 通信制御部およびプロトコル処理部におけるデータの流れを説明する図。 通信制御部およびプロトコル処理部におけるデータの流れを説明する図。 省電力モードへ移行する際のフローチャート。 パケットを受信する際のフローチャート。 起床する際のフローチャート。 通信装置のブロック図。 通信制御部およびプロトコル処理部におけるデータの流れを説明する図。 省電力モードへ移行する際のフローチャート。 パケットを受信する際のフローチャート。
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係る通信装置の第1実施形態として、IPv4及びIPv6の両方を処理可能な通信装置を例に挙げて以下に説明する。
<装置構成>
図1は、第1実施形態に係る通信装置200の構成の一例を示すブロック図である。通信装置200は、システム部210、ネットワーク通信部220と電源制御部230から構成され、ネットワーク240を介して図示していない対向装置との通信を行う。
システム部210のシステムバス211には、入力部212、出力部213、CPU214、記憶部215、アプリケーション機能部218、省電力モード移行制御部219、が接続される。入力部212は、ユーザからの各種入力を受け付ける機能部である。例えば、入力部212は、アプリケーションの操作や通信部に関する設定を受け付けることが出来る。出力部213は、LCDやLEDによる表示、スピーカなどによる音声出力によって各種情報を出力する機能部である。
CPU214は、RAMをワークメモリとしてROMなどに格納されたプログラムを実行し、システム部210の構成を実現したり制御したりする。記憶部215は、CPU214が実行するプログラムなど各種情報を記憶するROMやワークメモリとして使用されるRAMなどである。また、記憶部215は、IPv4パケットの受信数やIPv6パケットの受信数といったMIB(Management Information Base)などの通信状況情報216を記憶する。更に、記憶部215は、ネットワーク通信部220が使用するIPv4アドレス、IPv6アドレスなどの通信設定情報217を記憶する。なお、IPv4アドレスのアドレス長は32ビットであり、IPv6アドレスのアドレス長は128ビットである。
通信状況情報216は、ネットワーク通信部220の動作によって逐次更新される。また、通信設定情報217は、ユーザが入力部210を介して、またはDHCP(Dynamic Host Configuration Protocol)などのネットワーク通信部220の動作によって変更される。
アプリケーション機能部218は、CPU214の処理によって実現される各種アプリケーションであり、ユーザへ各種機能を提供する。また必要に応じて、ソケットのオープン、バインド、クローズなどのリソース操作、ネットワーク通信部220を介して対向通信装置と通信を行う。
省電力モード移行制御部219は、予め記憶部215に記憶された省電力モードへの移行条件に通信装置200が該当するかを判定する。そして、省電力モード移行制御部219は、移行条件を満たす場合、通信状況または/および通信設定に基づいて、後述する複数の受信パケット取得部227それぞれの稼働または非稼働を決定する。更に、省電力移行制御部219は、上述の移行条件を満たした場合に、通常電力モードで動作していたプロトコル処理部225の構成(図3で後述)を、省電力モードで動作するプロトコル処理部225の構成(図4で後述)に切り替える。
電源制御部230は、システム部210及びネットワーク通信部220の電力供給を制御する電源制御部である。電源制御部230は、システム部210内の各機能部に対して、電源投入の制御、ハードウェアリセット制御、さらにシステム部210全体が安全に起動・停止するためのシーケンス制御を行う。なお、電源制御部230は、省電力モード移行制御部219からの指示に伴い、システム部210への電力供給を停止する。例えば、省電力モード移行制御部219がプロトコル処理部225の構成を省電力モードの構成にした後、システム部210への電力供給を停止する。
ネットワーク通信部220のローカルバス221には、バスブリッジ222、ローカル記憶部223、通信制御部224、プロトコル制御部225、が接続される。バスブリッジ222は、システム部210とネットワーク通信部220との間でデータ転送を可能とする。即ち、システム部210とネットワーク通信部220とは、バスブリッジ222を介して相互に接続されており、通信データの入出力に従ってバス間転送が行われるよう構成されている。
ローカル記憶部223は、プロトコル処理部225のワークメモリとして使用されるRAMである。通信制御部224は、ネットワーク240に接続してフレームの送受信を行う。例えばネットワーク240がイーサネット(登録商標)の場合、通信制御部224は、イーサネットのMAC処理や、伝送フレーム(通信フレーム)の送受信を行う。具体的には、受信時には、通信フレームからIPパケットを抽出し、送信時には、IPパケットを通信フレームに格納する。なお、ネットワーク240は、例えばイーサネットのような有線ネットワークが想定できるが、無線ネットワークであってもよい。また図示されていない外部装置である対向装置とは、ネットワーク240を介して通信を行うものとする。
プロトコル処理部225は、通信プロトコル処理用向けのプロセッサである。より具体的には、プロトコル処理部225は、IPv4、IPv6、UDP、TCP等の通信プロトコル処理や、TCPの送信フロー制御や輻輳制御、通信エラー制御等を行う。また、第1実施形態においてはプロトコル処理部225は複数個(ここでは4個)存在しており、各々で各種プロトコル処理を分担して通信機能を実現する。プロトコル処理部225は、電源制御部230と制御信号線で接続されており、電源制御部230の動作制御を可能に構成されている。
プロトコル部226は、プロトコル処理を実施するプロトコル処理部225内の機能ブロックであり、各プロトコル処理部225によって処理内容が異なる(詳細は図3、図4で後述)。受信パケット取得部227は、通信制御部224から受信パケットを取得するプロトコル処理部225内の機能ブロックである。なお、受信パケット取得部227は必ずしも全てのプロトコル処理部225に配置する必要はない。
通信装置200の主要な機能は、システム部210で実現される。アプリケーション機能部218はユーザに各種アプリケーション機能を提供し、必要に応じて通信を行うことが可能である。アプリケーション機能部218による通信は、TCP/IPプロトコルをベースとした通信である。前述のように、このTCP/IPプロトコルの処理は、ネットワーク通信部220において実行される。
<電力モードの遷移>
通信装置200は、主要機能が動作していないアイドル状態において、通常(通常電力モード)より省電力の待機状態(省電力モード)に移行可能に構成されている。すなわち、通常電力モードと省電力モードとを時分割で切り替えて動作する。
図2は、通信装置200の電力モードの遷移を説明する図である。通信装置200の主要機能が動作中である間は通常電力モードを維持する(遷移321)。通常電力モード310では、システム部210を含む通信装置200全体に電力が供給される。
通常電力モード310において主要機能が実行していないアイドル状態になると、省電力モード311へ移行することが可能となる(遷移322)。省電力モード311においては、ネットワーク通信部220と電源制御部230にのみ電力が供給される。システム部210は電源がオフの状態であるため、システムバス211、CPU214、記憶部215は停止しており、ユーザに各種アプリケーション機能を提供することはできない。
通信装置200の省電力機能が動作中である間は省電力モードを維持する(遷移323)。ここで省電力機能とは、対向装置からARPやICMP(Pingなど)による問合せを受信し、応答を送信するようなネットワーク通信部220で処理できる機能である。省電力モード311から通常電力モード310への移行は、例えば、通信装置200がネットワークを介して対向装置からシステムの起動要求を受信した場合である(遷移324)。
<装置の動作>
以下では、4つのプロセッサ(プロトコル処理部A〜D)を利用して通信機能を実現する例を説明するが、2以上の任意の個数のプロセッサであればよい。
図3は、通常電力モードで動作している際の通信制御部224とプロトコル処理部225におけるデータの流れを説明する図である。ここでプロトコル処理部225は、プロトコル処理部A410、プロトコル処理部B420、プロトコル処理部C430、プロトコル処理部D440によって構成され、各種プロトコル処理を分担して通信機能を実現する。
プロトコル処理部A410は、受信パケット取得部227、プロトコル部A411から構成される。受信パケット取得部227は通信制御部224から受信パケットを取得する(矢印450)。プロトコル部A411は受信パケット取得部227が取得した受信パケットに対して(矢印451)、IPv4やIPv6の受信プロトコル処理を実施する。
プロトコル処理部C430は、プロトコル部C431から構成される。プロトコル部C431は、プロトコル部A411がIPヘッダの除去などIP受信処理を行った後の受信パケットに対して(矢印452)、TCP受信処理を実施する。
プロトコル処理部D440は、プロトコル部D441から構成される。プロトコル部D441は、送信対象データに対してTCPヘッダの付与や再送処理などTCP送信プロトコル処理を実施する。
プロトコル処理部B420はプロトコル部B421から構成される。プロトコル部B421は、例えばプロトコル部D411でTCP送信プロトコル処理を行った後の送信パケットに対して(矢印453)、IPヘッダを付与するなどのIPv4やIPv6の送信プロトコル処理を実施する。そして、送信プロトコル処理が終わったパケットを通信制御部224に対して転送する(矢印454)ことで、パケット送信を実現する。
なお、プロトコルによって処理を行うプロトコル処理部が異なっていても良い。例えば、UDP送信などの場合は、プロトコル処理部D440で処理を行わず、送信データをプロトコル処理部B420でのみ送信プロトコル処理を実施するように構成しても良い。同様に、UDP受信などの場合は、プロトコル処理部A410でのみ受信プロトコル処理を実施し、プロトコル処理部C430では処理を行わないように構成しても良い。
以上のように、通常電力モード310における通信制御部224とプロトコル処理部225は、主要機能を動作させるのに十分なプロトコルに関する機能や性能を実現するために、各プロトコル処理部でプロトコル処理を分担する。
図4は、省電力モードで動作している際の通信制御部224とプロトコル処理部225におけるデータの流れを説明する図である。ここでプロトコル処理部225は、通常電力モードの時と同様に、プロトコル処理部A510、プロトコル処理部B520、プロトコル処理部C530、プロトコル処理部D540によって構成される。
プロトコル処理部A510は受信パケット取得部512、プロトコル部A511から構成される。受信パケット取得部512は、通信制御部224から受信パケットを取得する(矢印550)。なお、受信パケット取得部は、1つしかない場合は動作を行う「有効」に設定されるが、複数存在する場合は、後述するアルゴリズム(図6)によって、各々、「有効」または動作を行わない「無効」に設定される。
受信パケット取得部512が取得した受信パケットがIPv4パケットだった場合、プロトコル部A511は、そのパケットに対し(矢印551)、IPv4プロトコル処理を実施する。具体的には、ICMPv4のEcho_Requestメッセージの受信処理、Echo_Replyメッセージの送信処理などを行う。一方、受信パケット取得部512が取得した受信パケットがIPv6パケットだった場合、プロトコル処理部B520へ処理要求が行われる。なお、図示していないが送信処理を行う時、プロトコル部A511は通信制御部224に対してパケットを転送する。また、プロトコル部A511は対向装置から起動要求パケットを認識し、通常電力モードへの遷移をトリガする。そのために必要であれば、機能を限定したTCPプロトコル処理など必要なプロトコル処理を行えるようにプロトコル部A511を構成しても良い。
プロトコル処理部B520は、プロトコル部B521、受信パケット取得部522から構成される。受信パケット取得部522は後述するアルゴリズム(図6)によって無効化された受信パケット取得部であり、動作を行わない。
上述のように、受信パケット取得部512が取得した受信パケットがIPv6パケットだった場合、プロトコル処理部B520へ処理要求が行われる。処理要求を受けたプロトコル処理部B520のプロトコル部B521は、受信パケット取得部512が受信したパケットに対し(矢印552)、IPv6プロトコル処理を実施する。具体的には、ICMPv6のEcho_Requestメッセージの受信処理、Echo_Replyメッセージの送信処理などを行う。なお、図示していないが送信処理を行う時、プロトコル部B521は、通信制御部224に対してパケットを転送する。また、IPv4プロトコル部A511と同様に、対向装置から起動要求パケットを認識し、通常電力モードへの遷移をトリガする。そのために必要であれば、機能を限定したTCPプロトコル処理など必要なプロトコル処理を行えるようにプロトコル部B521を構成しても良い。
プロトコル処理部C530、プロトコル処理部D540に関しては、特に特定のプロトコル処理を割当てずに、動作を行わないストール状態にしておくことで、電力消費を抑える。
また、プロトコル処理部A510は、受信パケットがない場合はストール状態に遷移し、通信制御部224が受信パケットを受信した際に、プロトコル処理部A510のストール状態を解除するように構成しても良い。同様に、プロトコル処理部B520は、プロトコル処理部A510からの処理要求がない場合はストール状態に遷移し、受信パケット取得部512が取得した受信パケットがIPv6パケットだった場合、プロトコル処理部B520のストール状態を解除するように構成しても良い。
なお、図4では、プロトコル部A511が搭載されたプロトコル処理部A510の受信パケット取得部が有効であり、プロトコル部B521が搭載されたプロトコル処理部B520の受信パケット取得部が無効であった。ただし、受信パケット取得部が複数存在する場合は、後述するアルゴリズム(図6)によって、受信パケット取得部の有効、無効が決定される。
図5は、省電力モードで動作している際の通信制御部224とプロトコル処理部225におけるデータの流れを説明する他の図である。具体的には、プロトコル処理部A510の受信パケット取得部が無効であり、プロトコル部B521が搭載されたプロトコル処理部B520の受信パケット取得部が有効となる場合を説明する図である。なお、同一の動作を行うものに関しては図4と同じ参照番号を付与し、説明を省略する。
プロトコル処理部B520の受信パケット取得部522は、通信制御部224から受信パケットを取得する(矢印630)。プロトコル部B521は、受信パケット取得部522が取得した受信パケットがIPv6パケットだった場合にそのパケットに対し(矢印631)、IPv6プロトコル処理を実施する。受信パケット取得部522が取得した受信パケットがIPv4パケットだった場合、プロトコル処理部A510へ処理要求が行われる。
処理要求を受けたプロトコル処理部A510のプロトコル部A511は、受信パケット取得部522が受信したパケットに対し(矢印632)、IPv4プロトコル処理を実施する。なお、プロトコル処理部B520は、受信パケットがない場合はストール状態に遷移し、通信制御部224が受信パケットを受信した際に、プロトコル処理部B520のストール状態を解除するように構成しても良い。同様に、プロトコル処理部A510は、プロトコル処理部B520からの処理要求がない場合はストール状態に遷移し、受信パケット取得部522が取得した受信パケットがIPv4パケットだった場合、プロトコル処理部A510のストール状態を解除するように構成しても良い。なお受信パケット取得部が1つしかない場合の動作は、受信パケット取得部512が存在しない場合と同じである。
以上のように、省電力モード311におけるプロトコル処理部225は、省電力機能を動作させるのに必要なプロトコル処理部以外はストール状態にすることで電力消費を削減する。また、プロトコル処理部A510、プロトコル処理部B520にプロトコルの種別単位でプロトコル処理を割当てる。
当該構成により、図4の構成においては、IPv6パケットを受信しない限りはプロトコル処理部B520をストール状態にしておくことが可能となり、消費電力を削減することができる。同様に、図5の構成においては、IPv4パケットを受信しない限りはプロトコル処理部A510をストール状態にしておくことが可能となり、消費電力を削減することができる。
さらに、通信装置200がIPv4とIPv6のどちらを多く受信するか判断し、複数の受信パケット取得部の何れを有効にするかを制御することで、より消費電力を削減することができる。すなわち、受信するパケットが多いプロトコルを処理するプロトコル部を有するプロトコル処理部内の受信パケット取得部を有効にすることで、他のプロトコル処理部をストール状態にする機会を増やすことが可能である。
図6は、通信装置200が通常電力モード310から省電力モード311へ移行する際のフローチャートである。当該処理は、通常電力モード310から省電力モード311への移行を判断する毎に実施される。
ステップS701では、省電力モード移行制御部219は、記憶部215に予め記憶された省電力モードへの移行条件に通信装置200が該当するかを判定する。省電力モードへの移行条件は、例えば、通常電力モード310の通信装置200が主要機能を実行していないアイドル状態であることである。省電力モードへ移行すべきことを検知した場合(S701でYes)、S702に進む。一方、省電力モードへ移行すべきことを検知しなかった場合(S701でNo)、処理を終了する。
ステップS702では、省電力モード移行制御部219は、通信状況情報216や通信設定情報217を参照する。そして、ステップS703では、IPv4またはIPv6のいずれかをメインとするプロトコルに決定する。
ここでは、通信状況情報216は、MIBに格納された受信パケットの統計情報である。例えば、通信装置200のIPv4パケット受信数とIPv6パケット受信数とを比較し、受信数が多い方をメインのプロトコルとして決定する。
通信設定情報217は、端末に設定しているIPアドレス等のインタフェース識別アドレスのことである。例えば、通信装置200にIPv4アドレスは設定しているが、IPv6アドレスを設定していない場合、IPv4アドレスをメインのプロトコルとして決定する。
ステップS704では、省電力モード移行制御部219は、プロトコル処理部225に複数の受信パケット取得部227が存在する場合、各受信パケット取得部227の有効/無効を設定する。有効として設定するのは、S703においてメインとしたプロトコルを処理するプロトコル部を含むプロトコル処理部の受信パケット取得部である。他の受信パケット取得部は無効として設定を行う。なお、もともと受信パケット取得部227が1つしかない存在しない場合、S704は実施しなくて良い。
ステップS705では、電源制御部230は、プロトコル処理部225の構成を省電力モードの構成にした後、省電力モード移行制御部219からの指示に伴い、システム部210全体を停止する。このようにして、通信装置200は、通常電力モードから省電力モード省電力モードへ移行することになる。
図7は、省電力モード311の通信装置200がパケットを受信する際のフローチャートである。図7は、省電力構成が図4または図5のどちらの場合でも対応している。以下の説明では図4の構成を前提として説明を行うが、図5の構成を前提としたケースについても同様である。当該処理は、プロトコル処理部A510において、受信パケット取得部512が、受信パケットが存在するか確認を行う毎に実施される。
ステップS801では、受信パケット取得部512は、ポーリング、割込みなどにより、通信制御部224に受信パケットがあるかチェックを行う。なお、所定の期間/所定の回数の間、通信処理が行われていない場合、つまり処理すべきパケットが所定時間存在しなかった場合、プロトコル処理部A510及びプロトコル処理部B520についても動作を行わないストール状態に遷移させても良い。
ここでプロトコル処理部A510をストール状態へ遷移可能とする場合、パケット受信などをトリガに通信制御部224がプロトコル処理部A510を起床させた後、S801が実施される。つまり、S801に先行して起床処理が実行される。
受信パケットが存在しない場合(S801でNo)、処理を終了する。受信パケットが存在する場合(S801でYes)、ステップS802において、受信パケット取得部512は、受信パケットがIPv4かIPv6かを解析する。受信パケットがIPv4かIPv6かの判定は、例えば、DIXやIEEE802.3といったMACヘッダの「タイプ」フィールド(ヘッダ情報)を参照することで行われる。
受信パケットがIPv4だった場合(S802でIPv4)、ステップS803において、プロトコル部A511は、受信パケットに対してIPv4や機能を限定したTCPプロトコル処理など必要なプロトコル処理を実施する。一方、受信パケットがIPv6だった場合(S802でIPv6)、ステップS804において、受信パケット取得部512は、プロトコル処理部B520に対して、プロトコル処理要求を発行する。そして、ステップS805において、受信パケット取得部512は、プロトコル処理部B520がストール状態になっており動作していない可能性があるため、プロトコル処理部B520に対して起床要求を発行する。すなわち、IPv4かIPv6かの判定結果に応じて、受信パケットの転送先を制御する。
なお、S804とS805の処理順序は、プロトコル処理部B520がプロトコル処理要求を処理できれば良く、逆の順序でもよい。
図8は、省電力モード311の通信装置200が、プロトコル処理部B520において起床要求を受信する時のフローチャートである。なお、図8は、省電力構成が図4または図5のどちらの場合でも対応している。以下の説明では図4の構成を前提として説明を行うが、図5の構成を前提としたケースについても同様である。ここでは、プロトコル処理部A510の受信パケット取得部512がIPv6パケットを受信した場合について説明する。すなわち、図8の処理は、省電力モード移行時、またはプロトコル処理部B520が、プロトコル処理部A510からストール状態からの起床要求をされる(S805)時に実施される。
ステップS901では、プロトコル処理部B520は、受信パケット取得部512から受信した起床要求により、起床を行い各種処理が行える状態に移行する。なお、省電力モード移行する場合など既にプロトコル処理部B520が起床している場合は、S901は実施しなくとも良い。
ステップS902では、プロトコル部B521は、受信パケット取得部512からのプロトコル処理要求があるか確認を行う。処理要求を伝える方式は、特定のものに限定していない。例えば、共有メモリ上でメッセージ交換を行う共有メモリ通信方式やメッセージパッシング通信方式を用いて実現を行う。
プロトコル処理要求がある場合(S902でYes)、ステップS903において、プロトコル部B521は、受信パケットに対してIPv6や機能を限定したTCPプロトコル処理など必要なプロトコル処理を実施する。一方、プロトコル処理要求がない場合(S902でNo)、ステップS904において、プロトコル部B521は、特定期間の間受信パケット取得部512からのプロトコル処理要求がない、または特定回数受信パケット取得部512からのプロトコル処理要求がないかを確認する。
特定期間または特定回数に渡り受信パケット取得部512からのプロトコル処理要求がない場合(S904でYes)、ステップS905において、プロトコル処理部B520は、ストール状態に移行する。
以上説明したとおり第1実施形態によれば、省電力モードで動作している際に、複数の受信パケット取得部の1つのみを有効にし、他の受信パケット取得部は無効にする。特に、使用頻度が高いプロトコルを処理するプロトコル部を有するプロトコル処理部に含まれる受信パケット取得部を有効にする。このように構成することにより、使用頻度が低いプロトコルを処理するプロトコル部を有するプロトコル処理部をストール状態にしておくことが可能となる。
これにより、複数のプロセッサ/キャッシュにより複数のプロトコルへの対応を実現している場合、性能要求が低い期間に利用される省電力モードにおい利用されるプロセッサ/キャッシュの数を減らすことができる。従って、電力消費を抑えることができる。
また、省電力モードにおいても、複数のプロセッサ/キャッシュを利用することで、1つのプロセッサ/キャッシュを利用して複数のプロトコルに対応する場合と比較して、1つあたりのキャッシュサイズを減らすことができる。
(第2実施形態)
第2実施形態では、通信制御部224内に受信パケットの種別を判断する受信パケット種別判断部1001を配置する形態について説明する。
<装置構成>
図9は、第2実施形態に係る通信装置1000の構成の一例を示すブロック図である。第1実施形態の通信装置200(図1)に対して、通信制御部224に受信パケット種別判断部1001を追加する。また、プロトコル処理部225の受信パケット取得部1002の機能が多少異なる。なお、図9においては、図1と同一構成である部分に関しては同一の参照番号を付してその説明を省略する。
受信パケット種別判断部1001は、通信制御部224がネットワーク224から受信したパケットを解析して、どのプロトコル処理部225が受信パケットのプロトコル処理をすべきかを判断する。具体的には、受信したパケットが、IPv4パケットであるかIPv6パケットであるかを判断する。受信パケットがIPv4かIPv6かの判断は、例えば、DIXやIEEE802.3といったMACヘッダの「タイプ」フィールドを参照することで行われる。そして、それぞれの受信パケットを処理可能なプロトコル部を有するプロトコル処理部に受信パケットを送信する。
受信パケット取得部1002は、通信制御部224から受信パケットを取得する。なお、第2実施形態ではIPv4やIPv6を用いた例を記載するが、特定のプロトコルに限定するわけではない。
図10は、省電力モードで動作している際の通信制御部224とプロトコル処理部225におけるデータの流れを説明する図である。ここでプロトコル処理部225は、図5および図6と同様に、プロトコル処理部A510、プロトコル処理部B520、プロトコル処理部C530、プロトコル処理部D540によって構成される。なお、図10においては、図4または図5と同一構成の部分に関しては同一の参照番号を付してその説明を省略する。
プロトコル処理部A510の受信パケット取得部1002aは、通信制御部224から受信パケットを取得する(矢印550)。なお、受信パケット取得部1002aが受信パケットを取得するのは、通信制御部224の受信パケット種別判断部1001がプロトコル処理部A510で処理すべきと判断した場合である。受信パケット取得部1002aは、IPv4受信パケットをプロトコル部Aへ渡す(矢印551)。
同様に、プロトコル処理部B520の受信パケット取得部1002bは、通信制御部224から受信パケットを取得する(矢印630)。なお、受信パケット取得部1002bが受信パケットを取得するのは、通信制御部224の受信パケット種別判断部1001がプロトコル処理部B520で処理すべきと判断した場合である。受信パケット取得部1002bは、IPv6受信パケットをプロトコル部Bへ渡す(矢印631)。
<装置の動作>
図11は、通信装置1000が通常電力モード310から省電力モード311へ移行する際のフローチャートである。当該処理は、通常電力モード310から省電力モード311への移行を判断する毎に実施される。なお、図11の処理は、図6のS701、S705と同様の処理であるため説明を省略する。
図12は、省電力モード311の通信装置1000がパケットを受信する際のフローチャートである。図10のプロトコル処理部A510における受信処理、プロトコル処理部B520における受信処理は同様であるため、ここではプロトコル処理部A510における受信処理を前提として説明を行い、プロトコル処理部B520における受信処理を前提としたケースについては記載を省略する。当該処理は、受信パケット取得部1002が、受信パケットが存在するか確認を行う毎に実施される。図12においては、図8と同様の処理であるS904、S905に関しては同一の参照番号を付してその説明を省略する。
ステップS1301では、プロトコル処理部A510の受信パケット取得部1002aは、ポーリング、割込みなどにより、受信パケット種別判断部1001を参照して、プロトコル処理部A510が処理すべき受信パケットが存在するかを確認する。
なお、プロトコル処理部A510やプロトコル処理部B520は、所定の期間/所定の回数処理がない場合、動作を行わないストール状態に遷移する。そのため、受信パケット種別判断部1001は、受信パケットの判断が終わると、処理すべきプロトコル処理部のストール状態を解除し、動作可能な状態へ遷移させる。処理対象の受信パケットが存在する場合(S1301でYes)、S1302に進む。
ステップS1302では、受信パケット取得部1002aは、通信制御部224から受信パケットを取得する。そして、プロトコル部A511は、受信パケットに対してIPv4や機能を限定したTCPプロトコル処理など必要なプロトコル処理を実施する。
以上説明したとおり第2実施形態によれば、省電力モードで動作している際に、通信制御部の受信パケット種別判断部が受信パケットを解析する。そして、受信パケットのプロトコル種別に応じて対応するプロトコル処理部を判断する。つまり、処理を行うべきプロトコル処理部のみストール状態から解除して受信処理を行う。これにより、プロトコル処理部がストール状態に遷移できる機会が更に増え、電力消費をさらに低減させることが可能となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
210 システム部;219 省電力モード移行制御部;220 ネットワーク通信部;225 プロトコル処理部;226 プロトコル部;227 受信パケット取得部;230 電源制御部

Claims (14)

  1. 通信装置であって、
    他の通信装置から、第1のアドレス長、もしくは、第2のアドレス長のパケットを受信する受信手段と、
    前記受信手段が受信したパケットが前記第1のアドレス長である場合に、該パケットに対して第1のプロトコル処理を行う第1のプロセッサと、
    前記受信手段が受信したパケットが前記第2のアドレス長である場合に、該パケットに対して第2のプロトコル処理を行う第2のプロセッサと、
    前記受信手段が受信したパケットのアドレス長が前記第1のアドレス長である場合には該パケットを前記第1のプロセッサに転送し、該パケットのアドレス長が前記第2のアドレス長である場合には該パケットを前記第2のプロセッサに転送する転送手段と、
    を有することを特徴とする通信装置。
  2. 前記通信装置は、第1の電力モードと該第1の電力モードよりも前記通信装置の消費電力が低い第2の電力モード とで動作可能であり、
    前記転送手段は、前記通信装置が前記第2の電力モードで動作している場合に、前記受信手段が受信したパケットのアドレス長に基づいて、該パケットを前記第1のプロセッサもしくは前記第2のプロセッサに転送することを特徴とする請求項1に記載の通信装置。
  3. 前記第1のプロセッサは、前記受信手段が受信したパケットを取得する第1の取得手段を有し、
    前記第2のプロセッサは、前記受信手段が受信したパケットを取得する第2の取得手段を有し、
    前記通信装置は、前記通信装置が前記第2の電力モードで動作している場合、前記第1の取得手段、もしくは、前記第2の取得手段のいずれか一方が無効となるように制御する制御手段を更に有することを特徴とする請求項2に記載の通信装置。
  4. 前記受信手段が受信するパケットのうち、前記第1のアドレス長のパケットの方が前記第2のアドレス長のパケットよりも多い場合に、前記制御手段は、前記第2の取得手段が無効として動作するように制御することを特徴とする請求項3に記載の通信装置。
  5. 前記制御手段は、前記通信装置に設定されているアドレス長に基づいて、前記第1の取得手段、もしくは、前記第2の取得手段のいずれか一方が無効として動作するように制御することを特徴とする請求項3に記載の通信装置。
  6. 前記通信装置が前記第2の電力モードで動作している場合であって、前記転送手段が前記パケットを前記第1のプロセッサに転送する場合、前記転送手段は該パケットを前記第2のプロセッサを介すことなく、前記第1のプロセッサに転送することを特徴とする請求項3から5のいずれか1項に記載の通信装置。
  7. 前記受信手段が受信したパケットのアドレス長が前記第2のアドレス長である場合、前記第1のプロセッサが前記転送手段を制御して、該パケットを前記第1のプロセッサから前記第2のプロセッサに転送することを特徴とする請求項1から6のいずれか1項に記載の通信装置。
  8. 前記受信手段が受信したパケットを前記転送手段が前記第1のプロセッサに転送する際に、前記第1のプロセッサがストール状態である場合、該転送に先行して前記第1のプロセッサのストール状態を解除するための起床要求を送信する送信手段を更に有することを特徴とする請求項1から5のいずれか1項に記載の通信装置。
  9. 前記第1のプロセッサが前記送信手段を制御して前記起床要求を送信させることを特徴とする請求項8に記載の通信装置。
  10. 前記第1のプロセッサは、所定時間、前記受信手段が受信したパケットに対して前記第1のプロトコル処理を行わなかった場合に、ストール状態に移行することを特徴とする請求項1から6のいずれか1項に記載の通信装置。
  11. 前記第1のプロトコル処理は、IPv4パケットの処理であり、
    前記第2のプロトコル処理は、IPv6パケットの処理であることを特徴とする請求項1から7のいずれか1項に記載の通信装置。
  12. 前記受信手段が受信したパケットに含まれるヘッダ情報に基づいて、該パケットのアドレス長が前記第1のアドレス長であるか前記第2のアドレス長であるかを判定する判定手段を更に有し、
    前記転送手段は、前記判定手段の判定結果に基づいて、前記パケットを転送することを特徴とする請求項1から11のいずれか1項に記載の通信装置。
  13. 受信したパケットが第1のアドレス長である場合に、該パケットに対して第1のプロトコル処理を行う第1のプロセッサと、受信したパケットが第2のアドレス長である場合に、該パケットに対して第2のプロトコル処理を行う第2のプロセッサと、を有する通信装置の制御方法であって、
    他の通信装置から、前記第1のアドレス長、もしくは、前記第2のアドレス長のパケットを受信する受信工程と、
    前記受信工程において受信されたパケットのアドレス長に基づいて、該パケットを前記第1のプロセッサもしくは前記第2のプロセッサに転送する転送工程と、
    を有することを特徴とする制御方法。
  14. コンピュータを、請求項1から12のいずれか1項に記載の通信装置の各手段として機能させるためのプログラム。
JP2014104512A 2014-05-20 2014-05-20 通信装置およびその制御方法 Pending JP2015220675A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014104512A JP2015220675A (ja) 2014-05-20 2014-05-20 通信装置およびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014104512A JP2015220675A (ja) 2014-05-20 2014-05-20 通信装置およびその制御方法

Publications (1)

Publication Number Publication Date
JP2015220675A true JP2015220675A (ja) 2015-12-07

Family

ID=54779717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014104512A Pending JP2015220675A (ja) 2014-05-20 2014-05-20 通信装置およびその制御方法

Country Status (1)

Country Link
JP (1) JP2015220675A (ja)

Similar Documents

Publication Publication Date Title
JP6192284B2 (ja) 通信装置及びその制御方法
US7830882B2 (en) Switch scaling for virtualized network interface controllers
US9104406B2 (en) Network presence offloads to network interface
US20110029659A1 (en) Method and System for Network Proxy Services for Energy Efficient Networking
JP5218462B2 (ja) 通信装置
JP2008301077A (ja) ネットワークコントローラ、情報処理装置およびウェイクアップ制御方法
JP6157098B2 (ja) 印刷装置
US9544851B2 (en) Communication terminal, communication method, and computer readable medium
JP6772007B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP2009080584A (ja) プロトコル処理装置及び制御方法
KR20120120354A (ko) 원격 제어 시스템, 원격 제어 방법 및 원격 제어용 프로그램을 기록한 기록 매체
US10587428B2 (en) Communication apparatus, method for controlling communication apparatus, and storage medium
JP6464768B2 (ja) 応答装置及びプログラム
US9746899B2 (en) At least one message to announce entry into relatively lower power state
JP2015220675A (ja) 通信装置およびその制御方法
JP7110573B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
JP2006197051A (ja) ネットワーク通信制御装置およびネットワーク通信制御方法
JP2009088918A (ja) 無線lanアクセスポイントおよびプログラム
WO2021234922A1 (ja) 電源管理装置、電源管理システム、電源管理方法、および、電源管理プログラム
US11832177B2 (en) Transmission system comprising first and second bridge devices
JP6794202B2 (ja) 通信装置およびその制御方法
KR102064794B1 (ko) 로컬 단말에 대한 제어 방법 및 원격 컨트롤러 및 로컬 단말
US20150156166A1 (en) Communication method and mobile electronic device using the same
JP6480747B2 (ja) 通信装置、制御方法、及びプログラム
JP2014059726A (ja) 情報処理装置