JP2004192256A - ネットワークコントローラ - Google Patents
ネットワークコントローラ Download PDFInfo
- Publication number
- JP2004192256A JP2004192256A JP2002358391A JP2002358391A JP2004192256A JP 2004192256 A JP2004192256 A JP 2004192256A JP 2002358391 A JP2002358391 A JP 2002358391A JP 2002358391 A JP2002358391 A JP 2002358391A JP 2004192256 A JP2004192256 A JP 2004192256A
- Authority
- JP
- Japan
- Prior art keywords
- time
- cpu
- protocol
- network controller
- cpu operation
- 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.)
- Withdrawn
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】TCP/IP処理のタイマ値、バッファ容量、パケットの送信間隔等の情報の組み合わせにより、CPUの動作速度を変更し、低消費電力を実現するネットワークコントローラを提供する。
【解決手段】プロトコル処理を行うプロトコル処理部と、プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間をタイマ値に基づいて算出し、予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを比較結果に基づいて変更する。
【選択図】 図4
【解決手段】プロトコル処理を行うプロトコル処理部と、プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間をタイマ値に基づいて算出し、予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを比較結果に基づいて変更する。
【選択図】 図4
Description
【0001】
【発明の属する技術分野】
本発明は、アプリケーションの通信状態やTCP/IPプロトコルの通信状態に応じてCPUの動作クロックを変更し、低消費電力を実現するTCP/IP処理を実行するネットワークコントローラに関する。
【0002】
【従来の技術】
近年、デジタル家電等の分野における技術開発の結果、データ通信のプロトコルとしてTCP/IP処理機能を持ったデジタル家電が登場しつつある。TCP/IPのような機能は、従来では、OSのモジュールとして提供されてきたが、組み込み機器のような製品用にEthernet(登録商標)処理やTCP/IP処理を1チップのLSIで実現するネットワークコントローラのような製品が検討されている。
【0003】
組み込み機器用LSIの低消費電力の実現方法として、低消費電力の機構を組み込み用プロセッサ本体の設計やプロセスルールで実現する方法が取られている。
また、ネットワークコントローラにおいても、OSI7階層のうち、物理層、データリンク層に対して、ハードウェア設計、実装技術において低消費電力を実現する方法が取られている。
【0004】
【特許文献1】
特開平11−4255
【0005】
【発明が解決しようとする課題】
上述したように、従来はTCP/IP処理はほとんどがOSのカーネルモジュールやRTOSのタスクとしてソフトウェアで実装されていたため、低電力を実現するための仕組みが提供されていない。
一方で、本発明がターゲットとする情報家電のようなシステムでは、ネットワーク接続機能を実現するために消費電力が増大してしまうという問題点があった。
【0006】
本発明は、このような事情を考慮してなされたものであり、その目的は、TCP/IP処理のタイマ値、バッファ容量、パケットの送信間隔等の情報の組み合わせにより、CPUの動作速度を変更し、低消費電力を実現するネットワークコントローラを提供することにある。
【0007】
【課題を解決するための手段】
本発明は上記の課題を解決すべくなされたもので、本発明のネットワークコントローラは、プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部と、該プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出し、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更するCPU動作変更判断処理部を具備することを特徴とする。
【0008】
また本発明のネットワークコントローラは、前記記憶部は、さらに、前記プロトコル処理におけパケット送受信間隔及び直近のパケット送受信時刻を保持し、前記CPU動作変更判断処理部は、さらに、該パケット送受信間隔及び直近のパケット送受信時刻を読み出して、前記CPU動作モードを該パケット送受信間隔及び直近のパケット送受信時刻に基づいて変更することを特徴とする。
【0009】
また本発明のネットワークコントローラは、前記記憶部は、さらに、前記プロトコル処理におけパケット送受信間隔及び直近のパケット送受信時刻を保持し、前記CPU動作変更判断処理部は、さらに、該パケット送受信間隔及び直近のパケット送受信時刻を読み出して、次パケットの送受信予測時刻を算出し、現在時刻に前記予測スリープ時間を加算した時刻と、該送受信予測時刻とを比較し、CPU動作モードを該比較結果に基づいて変更することを特徴とする。
【0010】
また本発明のネットワークコントローラは、前記CPU動作変更時間は、前記ネットワークコントローラに接続されたホストCPUより指定された値であることを特徴とする。
【0011】
また本発明のネットワークコントローラは、前記パケット送受信間隔は、連続したパケットの送受信間隔幅に基づいて決定されることを特徴とする。
【0012】
また本発明のCPU動作変更制御方法は、プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、該ネットワークコントローラのCPUの動作モードを変更するCPU動作変更制御方法であって、前記プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出し、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更することを特徴とする。
【0013】
また本発明のCPU動作変更制御プログラムは、プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、該ネットワークコントローラのCPUの動作モードを変更するCPU動作変更制御処理を該CPUに実行させるためのプログラムであって、前記プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出する処理と、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更する処理を
前記CPUに実行させるためのプログラムである。
【0014】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。
図1は、本実施形態のネットワークコントローラを適用したデジタル家電の構成を示す構成図である。本実施形態において、デジタル家電は、Host CPU・1と、ネットワークコントローラ2と、PHY(Phisical Media Interface)・3からなる。
Host CPU・1は、本デジタル家電のメインのアプリケーションを実行するCPU(中央演算処理装置)であり、ネットワークコントローラ2とバスを介して接続される。
PHY・3は、OSI参照モデルの物理層レイヤとして、伝送リソース、すなわちケーブルやコネクタなどの物理的な条件や、伝送フレームなど各信号を伝送するために必要な機能を実装する物理層インターフェイスであり、ネットワークコントローラ2とバスを介して接続される。
【0015】
図2は、本実施形態のネットワークコントローラ2のハードウェア構成を示すブロック図である。本実施形態において、ネットワークコントローラ2は、コントローラ用のCPU・4と、ROM・5と、RAM・6と、タイマ7と、Host インターフェイス(以下、IFとする。)・8と、MII(Media Independent Interface)・9とから構成される。
【0016】
CPU・4は、半導体メモリ等の記憶部であるROM・5に記憶されたモニタ、RTOS用の制御ソフトウェアモジュール等を読み出して、ネットワークコントローラ2におけるTCP/IP処理等を実行する。
ここで、CPU・4は、例えば、動作周波数が100MHzの通常モードと動作周波数が50MHzの低消費電力モードを有しており、ネットワークコントローラ2で動作するファームウェア(後述するCPU動作変更判断処理部・14に相当)から、CPU・4へ所定の命令を実行することで通常モードから低消費電力モードへの移行、低消費電力モードから通常モードへの復帰が可能である。
RAM・6は、TCP/IP処理のためのプロトコルデータ等を一時的に記憶する半導体メモリ等の記憶部である。
タイマ7は、CPU・4の制御切替のトリガとなるタイムスライスを生成するハードウェアタイマである。
Host IF・8は、ネットワークコントローラ2をHost CPU・1に接続するためのCPUインターフェイスである。
MII・9は、ネットワークコントローラ2をPHY・3に接続するためのメディア独立インターフェイスである。
【0017】
図3は、本実施形態のネットワークコントローラ2のソフトウェア構成を示す機能ブロック図である。本実施形態のネットワークコントローラ2は、TCP/IP処理部10と、プロトコルデータ管理部11と、CPU動作設定処理部13と、CPU動作変更判断処理部14と、プロトコル処理部15と、パケット送受信間隔監視部16とから構成される。
【0018】
TCP/IP処理部10は、TCP/UDP/IPv4/IPv6/ICMPv4/ICMPv6等のTCP/IPのプロトコル処理を行い、プロトコル管理データをプロトコルデータ管理部11に、パケット送受信間隔及び直近のパケット受信時刻、送信時刻をパケット送受信間隔監視部16にそれぞれ書き込む。
ここで、プロトコル処理としては、IPv4 Only/IPv6 Only/Dual Stack、すなわち、IPv4のみを使用する場合、IPv6のみを使用する場合、IPv4及びIPv6を共存して使用する場合がある。
プロトコルデータ管理部11は、TCP/IP処理部10、プロトコル処理部15における各プロトコル処理に必要なデータ、すなわち、CPU・4の動作モード変更に関するパラメータを管理する。
ここで、CPU・4の動作モード変更に関するパラメータとは、TCP処理であれば、各種タイマ値(再送タイマ、持続タイマ、保留タイマ等)、RTT(Round Trip Time)、遅延ACK時間、ウィンドウサイズ等のコネクション管理情報である。また、IPv4処理であれば、ルーティングテーブルや設定されたアドレス情報等である。また、IPv6処理であれば、アドレスの有効時間のタイマ、Prefixの有効時間のタイマ、Multicastに関するタイマ等である。
【0019】
CPU動作設定処理部13は、外部プログラムモジュール12とのインターフェイスとなり、CPU・4の動作条件として、例えば、CPU動作変更時間の設定要求を受け付け、その要求をCPU動作変更判断処理部14に対して出力する。
ここで、外部プログラムモジュール12は、例えば、CPU・4がスリープ状態に遷移する条件や動作クロックを変化させる条件、すなわち、CPUの動作モードの移行条件、すなわち、CPU動作変更時間を指定する。
CPU動作変更判断処理部14は、プロトコルデータ管理部11が管理するCPU・4の動作モード変更に関するパラメータの値が更新される場合、パケット送受信部16を参照し、次のパケット送信までの時間、次のパケット受信での時間を更新されたパラメータの値に基づいて計算する機能を有する。(本発明においては、この計算結果を「予測スリープ時間」と定義する。)また、CPU動作変更判断処理部14は、予測スリープ時間と、CPU動作設定処理部13から入力されるCPU動作変更時間とを比較し、CPU動作モードを比較結果に基づいて変更するインターフェイスを持つ。
ここで、CPU動作モードを変更するインターフェイスとは、例えば、アセンブラのsleep命令や動作クロックを変更する命令などである。
【0020】
プロトコル処理部15は、TCP/IP以外のHTTP、SNMP、DHCP、RIP等のアプリケーションプロトコルのプロトコル処理を実行し、プロトコル管理データをプロトコルデータ管理部11に書き込む。
パケット送受信間隔監視部16は、パケット送信時における連続したパケットの送信間隔を保持し、時間的に最近の、つまり直近のパケット送信時刻を保持する(図6の上段を参照)。また、パケット送受信間隔監視部16は、パケット受信時における連続したパケットの受信間隔を保持し、時間的に最近の、つまり直近のパケット受信時刻を保持する(図6の下段を参照)。
【0021】
以下、本実施形態のネットワークコントローラ2の動作について、図面を参照して説明する。まず本実施形態のネットワークコントローラ2の動作の前提条件について説明する。
(前提条件)
・ ネットワークコントローラ2は、IPv6機能を搭載しており、特定のMulticast Groupに属している(要請Multicast/ICMP Name Lookup等のMulticast Addressを利用しており、20秒おきにMLDパケットを再送するものとする。)。
・ 本実施形態においては、TCPセッションの管理データとIPv6(MLD用)の管理データを参照して予測スリープ時間を算出する。
以上の前提に基づいて、本実施形態のネットワークコントローラ2の動作について説明する。
【0022】
図4は、CPU動作変更判断処理部14におけるCPU動作モード変更処理の過程を示すフローチャートである。
まず上述のデジタル家電におけるシステム初期化時に、Host CPU・1はネットワークコントローラ2に対して、500msec以上の待ち時間検出時に動作周波数を下げることを指令するコマンドを出力する。
ネットワークコントローラ2において、CPU動作設定処理部13が、このコマンド(=CPU動作変更時間の設定要求)を受け付け、CPU・4のCPU動作変更時間を設定する。すなわち、本実施形態においては、Host CPU・1が外部プログラムモジュール12と同様の制御処理を行う。
【0023】
次に、Host CPU・1のメインアプリケーションは、TCP/IP処理部10に対してセッション生成要求を送信する。ネットワークコントローラ2において、TCP/IP処理部10は、Host IF・8経由でTCPセッション要求を受信し、プロトコルデータ管理部11にTCPセッション管理データ1をセットする(図5のTCPセッション管理データ1を参照)。
【0024】
今、Host CPU・1のメインアプリケーションとTCP/IP処理部10の間でこの処理を複数回、例えばもう一度行い、TCP/IP処理部10が計2つのTCPセッション(図5のTCPセッション管理データ1、TCPセッション管理データ2を参照)を生成して、Host CPU・1のメインアプリケーションがデータ通信を開始したとする。
このとき、図5に示すように、プロトコルデータ管理部11には、TCPセッション管理データ1と、TCPセッション管理データ2と、IPv6管理データがセットされている。
【0025】
CPU動作変更判断処理部14は、定期的(例えば、100msec毎)、あるいは、前回算出した予測スリープ時間よりも長いタイマ値がプロトコルデータ管理部11にセットされた時点で処理を開始する。
【0026】
すなわち、CPU動作変更判断処理部14は、まず受信バッファにデータがあるか否かを確認する(図4のステップS1を参照)。
受信バッファにデータがあれば(ステップS1でYesの場合)、続いてパケットが送信されてくる可能性が高いことから、CPU動作変更判断処理部14はCPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。一方、受信バッファにデータがなければ(ステップS1でNoの場合)、CPU動作変更判断処理部14は、チェックしていないプロトコル管理データがあるか否かを確認する(ステップS2)。
例えば、TCPセッション管理データ1、2またはIPv6管理データのうち、いずれかが未チェックのプロトコル管理データである場合(ステップS2でYesの場合)、CPU動作変更判断処理部14は、未チェックのプロトコル管理データに書き込まれたタイマ値を読み出して、予測スリープ時間を算出し、前回算出した予測スリープ時間を更新する(ステップS3)。
ここで読み出すタイマ値は、例えば、TCPセッションデータ1、2のRTT、各種タイマ値、IPv6管理データのMLDパケット再送タイマ値である。
また、予測スリープ時間は、読み出したRTT、各種タイマ値の残り時間の最小値とする。
【0027】
予測スリープ時間の更新後、CPU動作変更判断処理部14は、CPU動作設定処理部13に設定されたCPU動作変更時間と更新後の予測スリープ時間とを比較し、予測スリープ時間がCPU動作変更時間より短い場合は、ステップS2に戻って、ステップS2〜S4を繰り返す。そして、TCPセッション管理データ1、2またはIPv6管理データがすべてチェック済みとなった場合(ステップS2でNoの場合)、CPU動作変更判断処理部14は、CPU動作変更判断処理部14はCPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。
【0028】
一方、CPU動作変更時間と更新後の予測スリープ時間とを比較し、予測スリープ時間がCPU動作変更時間より長い場合(ステップS4でYesの場合)、CPU動作変更判断処理部14は、パケット送受信間隔監視部16よりパケットの受信間隔、送信間隔、直近のパケット受信時刻、送信時刻を読み出す。
そして、CPU動作変更判断処理部14は、この直近のパケット受信時刻にパケットの受信間隔時間分を加算した時刻(=次のパケットの受信予想時刻)と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの受信予想時刻の方が早い場合(ステップS5でNoの場合)、すなわち、
次のパケットの受信予想時刻 < 現在時刻+予測スリープ時間分
の関係式を満たす場合、
CPU動作変更判断処理部14は、CPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。
【0029】
また、CPU動作変更判断処理部14は、同様に、この直近のパケット送信時刻にパケットの送信間隔時間分を加算した時刻(=次のパケットの送信予想時刻)と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの送信予想時刻の方が早い場合(ステップS5でNoの場合)、すなわち、
次のパケットの送信予想時刻 < 現在時刻+予測スリープ時間分
の関係式を満たす場合、CPU動作変更判断処理部14はCPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。
【0030】
一方、次のパケットの受信予想時刻と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの受信予想時刻の方が遅く、かつ、次のパケットの送信予想時刻と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの送信予想時刻の方が遅い場合(ステップS5でYesの場合)、
すなわち、
次のパケットの受信予想時刻 > 現在時刻+予測スリープ時間分
かつ
次のパケットの送信予想時刻 > 現在時刻+予測スリープ時間分
の関係式を満たす場合、CPU動作変更判断処理部14は、CPU・4の動作モードを低消費電力モードに変更する命令を出力する(ステップS7)。
【0031】
CPU・4は、この命令を受けて、動作モードを低消費電力モードに変更する。そして、CPU・4は、外部からの割り込みがかかるまで、つまり他の通信デバイスからパケットを受信するまで、又は、Host CPU・1から送信パケットを受信するまで、プロトコル処理を低消費電力モードで実行する(ステップS8)。
【0032】
次に、以上の動作の具体例を説明する。Host CPU・1側のメインアプリケーションがデータ通信中に通信経路上で輻輳が発生した場合、TCPセッションで管理しているRTT値が大きくなり、1つのTCPセッションのRTTが550msec、他方のTCPセッションのRTT値が600msecに更新されたとする。このとき、その他のタイマ値の残り時間が550msecより大きい状態であれば、ステップS3でCPU動作判断処理部14は、予測スリープ時間を550msecに更新する。このとき、設定された500msecを超える待ち時間が発生する可能性があるので、CPUの動作クロックを50MHzに変更する命令をCPU・4に対して出力する。また、この際、パケット送受信間隔監視部16の情報を参照してより精度の高い予測を行うことも考えられる。
【0033】
たとえば、図6の上段に示す送信間隔の例では、送信間隔と現在時刻の関連から連続した送信処理が予測され、予測スリープ時間が550msecになっても、CPUの動作クロックを下げないという判断が可能である。
また、図6の下段に示す受信間隔の例では、例えば、Host CPU・1がネットワークコントローラ2に対して、200msec以下の予測スリープ時間を検出した際にCPUの動作クロックを変更する設定を行った場合、TCPにおける遅延ACKの残り時間を考慮して予測スリープ時間を計算することができる。すなわち、遅延ACKにより、ACKの送信を遅らせている期間は、パケット送信処理が発生しないことから、CPUの動作クロックを下げることが考えられる。
【0034】
ネットワークコントローラ2は、動作クロックを50MHzに下げた状態でプロトコル処理を続行し、パケットの送受信間隔が500msecより小さくなると、CPU動作変更判断処理部14は、CPU・4に対して、CPUの動作クロックを元の100MHzに復帰させる命令を出力する。CPU・4はこの命令を実行し、動作クロックを100MHzに戻す。
なお、ここでは、パケット送受信間隔の情報を動作クロック復帰の判断に利用したが、Host CPU・1から複数パケット化が必要な量のデータ送信コマンドを受け付けた場合に復帰することも考えられる。
【0035】
以上説明したように、本実施形態のネットワークコントローラによれば、CPU動作変更時間をHost CPU・1側から設定可能とすることで、HostCPU・1のメインアプリケーションの特性に応じて、柔軟に変更できる効果が得られる。したがって、ネットワークコントローラの消費電力をHost CPU・1のメインアプリケーションの特性に応じて、最適化する制御を行うことで低消費電力を実現することができる効果が得られる。
また、パケットの送受信間隔の情報を基にCPUの動作変更判断を実行可能となり、より精度の高い予測が可能となり、ネットワークコントローラの消費電力をより最適化することができる効果が得られる。
特に通常、通信プロトコル処理では、統計データを残す目的やSNMPのMIBデータとする目的のために送受信が完了後にパケット数等を更新する。本発明は、その更新処理の追加処理としてパケット送受信間隔の更新を行うため、計算負荷が小さい。
【0036】
また、本発明のネットワークコントローラは、ネットワークコントローラとのインターフェイスを備えたCPUであって、コマンド命令やデータ送受信が可能なCPUであれば、どのような種類のCPUも適用可能である。
また、本発明のネットワークコントローラは、データリンク層、物理層に依存しないので様々な通信方式に適用可能である。
また、本発明のネットワークコントローラは、TCP/IP処理に限られず、MAC層の処理を内蔵したネットワークコントローラであっても良い。MAC層の処理を内蔵する場合、MACプロトコルのタイマ値をCPUの動作モード変更のトリガとすることが考えられる。
また、本実施形態のネットワークコントローラでは、動作モードが通常モードと低消費電力モードとを有する場合を示したが、本発明はこれに限られず、CPUコアの実装する動作モードを採用してもよい。なお、CPUの動作クロックが変更不可能な場合は、一定時間の予測スリープ時間を検出したら、CPUはsleep状態に移行し、sleep状態の復帰は、割り込みやHost CPU・1からのコマンド等のイベント検出をトリガとして行う。
また、CPU動作変更時間を直接、CPU動作変更判断処理部14に設定するのではなく、要求受付のインターフェイスとなるCPU動作設定部を設けることにより、新しい設定パラメータの追加が容易にできる効果が得られる。
【0037】
なお、本実施形態のネットワークコントローラにおいては、予測スリープ時間の計算アルゴリズムとして、各種タイマ値から最短のものを選ぶという方法を示したが、実装段階では、接続するデバイス毎(例えば、IEEE802.11a/b/g、IEEE802.3x、IEEE1394、Bluetooth、USB)、また、ネットワークコントローラを搭載している機器が、常時電源に接続されている場合、または、機器内増のバッテリで動作している場合毎にテストシミュレーションを行うことにより最適化されて決定される。
また、本実施形態のネットワークコントローラ2では、送受信バッファ量については、これを積極的に利用しない例を示したが、本発明はこれに限られず、ステップS1において、送受信バッファ量の大小に応じた判定処理をおこなってもよい。
また、本実施形態のネットワークコントローラ2では、主にTCP/IP処理部10のプロトコル管理データによりCPUの動作変更判断処理を行ったが、本発明はこれに限られず、プロトコル処理部15のプロトコル処理におけるタイマ値やバッファ等をも考慮してCPUの動作変更判断処理をしてもよい。
また、本実施形態のネットワークコントローラ2では、主にプロトコル処理の低消費電力をネットワークコントローラ側でのせイ魚により実現するが、本発明はこれに限られず、Host CPU・1が明示的にネットワークコントローラ・2に対して命令を発行し、低消費電力モードへ移行させても良い。
【0038】
本発明がターゲットとするデジタル家電等のネットワーク機器では、汎用のPCと異なり、明確なアプリケーションの利用が想定される。したがって、本システムでは、不特定多数のサービスを提供する情報機器というよりは、少人数の利用者に対して、特定のサービスを提供する機器、あるいは、クライアントとして特定のサービスを利用する端末機器として採用されることが想定される。
このようなシステムでは、同時に生成するTCPセッションや管理するプロトコルデータの情報量も少なく、ネットワークに接続されていても、常に通信しているとは限らないので、本発明で利用するタイムアウト値、バッファ量、パケット送受信間隔により低消費電力モードへの判断基準とする方式は、低消費電力の実現方法として有効である。
【0039】
なお、上述したネットワークコントローラにおけるCPU動作変更判断処理に関する一連の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【図1】本実施形態のデジタル家電の構成を示すブロック図である。
【図2】本実施形態のネットワークコントローラ2のハードウェア構成を示すブロック図である。
【図3】本実施形態のネットワークコントローラ2のソフトウェア構成を示すブロック図である。
【図4】CPU動作変更判断処理部14の動作を示すフローチャートである。
【図5】プロトコルデータ管理部11に格納されるプロトコル管理データを示すブロック図である。
【図6】パケットの送受信間隔と現在時刻の関連を示す図である。
【符号の説明】
1…Host CPU・4…ネットワークコントローラ、3…PHY、4…CPU、5…ROM、6…RAM、7…タイマ、8…Host IF、9…MII、10…TCP/IP処理部、11…プロトコルデータ管理部、12…外部プログラムモジュール、13…CPU動作設定処理部、14…CPU動作変更判断処理部、15…プロトコル処理部、16…パケット送受信間隔監視部
【発明の属する技術分野】
本発明は、アプリケーションの通信状態やTCP/IPプロトコルの通信状態に応じてCPUの動作クロックを変更し、低消費電力を実現するTCP/IP処理を実行するネットワークコントローラに関する。
【0002】
【従来の技術】
近年、デジタル家電等の分野における技術開発の結果、データ通信のプロトコルとしてTCP/IP処理機能を持ったデジタル家電が登場しつつある。TCP/IPのような機能は、従来では、OSのモジュールとして提供されてきたが、組み込み機器のような製品用にEthernet(登録商標)処理やTCP/IP処理を1チップのLSIで実現するネットワークコントローラのような製品が検討されている。
【0003】
組み込み機器用LSIの低消費電力の実現方法として、低消費電力の機構を組み込み用プロセッサ本体の設計やプロセスルールで実現する方法が取られている。
また、ネットワークコントローラにおいても、OSI7階層のうち、物理層、データリンク層に対して、ハードウェア設計、実装技術において低消費電力を実現する方法が取られている。
【0004】
【特許文献1】
特開平11−4255
【0005】
【発明が解決しようとする課題】
上述したように、従来はTCP/IP処理はほとんどがOSのカーネルモジュールやRTOSのタスクとしてソフトウェアで実装されていたため、低電力を実現するための仕組みが提供されていない。
一方で、本発明がターゲットとする情報家電のようなシステムでは、ネットワーク接続機能を実現するために消費電力が増大してしまうという問題点があった。
【0006】
本発明は、このような事情を考慮してなされたものであり、その目的は、TCP/IP処理のタイマ値、バッファ容量、パケットの送信間隔等の情報の組み合わせにより、CPUの動作速度を変更し、低消費電力を実現するネットワークコントローラを提供することにある。
【0007】
【課題を解決するための手段】
本発明は上記の課題を解決すべくなされたもので、本発明のネットワークコントローラは、プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部と、該プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出し、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更するCPU動作変更判断処理部を具備することを特徴とする。
【0008】
また本発明のネットワークコントローラは、前記記憶部は、さらに、前記プロトコル処理におけパケット送受信間隔及び直近のパケット送受信時刻を保持し、前記CPU動作変更判断処理部は、さらに、該パケット送受信間隔及び直近のパケット送受信時刻を読み出して、前記CPU動作モードを該パケット送受信間隔及び直近のパケット送受信時刻に基づいて変更することを特徴とする。
【0009】
また本発明のネットワークコントローラは、前記記憶部は、さらに、前記プロトコル処理におけパケット送受信間隔及び直近のパケット送受信時刻を保持し、前記CPU動作変更判断処理部は、さらに、該パケット送受信間隔及び直近のパケット送受信時刻を読み出して、次パケットの送受信予測時刻を算出し、現在時刻に前記予測スリープ時間を加算した時刻と、該送受信予測時刻とを比較し、CPU動作モードを該比較結果に基づいて変更することを特徴とする。
【0010】
また本発明のネットワークコントローラは、前記CPU動作変更時間は、前記ネットワークコントローラに接続されたホストCPUより指定された値であることを特徴とする。
【0011】
また本発明のネットワークコントローラは、前記パケット送受信間隔は、連続したパケットの送受信間隔幅に基づいて決定されることを特徴とする。
【0012】
また本発明のCPU動作変更制御方法は、プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、該ネットワークコントローラのCPUの動作モードを変更するCPU動作変更制御方法であって、前記プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出し、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更することを特徴とする。
【0013】
また本発明のCPU動作変更制御プログラムは、プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、該ネットワークコントローラのCPUの動作モードを変更するCPU動作変更制御処理を該CPUに実行させるためのプログラムであって、前記プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出する処理と、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更する処理を
前記CPUに実行させるためのプログラムである。
【0014】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。
図1は、本実施形態のネットワークコントローラを適用したデジタル家電の構成を示す構成図である。本実施形態において、デジタル家電は、Host CPU・1と、ネットワークコントローラ2と、PHY(Phisical Media Interface)・3からなる。
Host CPU・1は、本デジタル家電のメインのアプリケーションを実行するCPU(中央演算処理装置)であり、ネットワークコントローラ2とバスを介して接続される。
PHY・3は、OSI参照モデルの物理層レイヤとして、伝送リソース、すなわちケーブルやコネクタなどの物理的な条件や、伝送フレームなど各信号を伝送するために必要な機能を実装する物理層インターフェイスであり、ネットワークコントローラ2とバスを介して接続される。
【0015】
図2は、本実施形態のネットワークコントローラ2のハードウェア構成を示すブロック図である。本実施形態において、ネットワークコントローラ2は、コントローラ用のCPU・4と、ROM・5と、RAM・6と、タイマ7と、Host インターフェイス(以下、IFとする。)・8と、MII(Media Independent Interface)・9とから構成される。
【0016】
CPU・4は、半導体メモリ等の記憶部であるROM・5に記憶されたモニタ、RTOS用の制御ソフトウェアモジュール等を読み出して、ネットワークコントローラ2におけるTCP/IP処理等を実行する。
ここで、CPU・4は、例えば、動作周波数が100MHzの通常モードと動作周波数が50MHzの低消費電力モードを有しており、ネットワークコントローラ2で動作するファームウェア(後述するCPU動作変更判断処理部・14に相当)から、CPU・4へ所定の命令を実行することで通常モードから低消費電力モードへの移行、低消費電力モードから通常モードへの復帰が可能である。
RAM・6は、TCP/IP処理のためのプロトコルデータ等を一時的に記憶する半導体メモリ等の記憶部である。
タイマ7は、CPU・4の制御切替のトリガとなるタイムスライスを生成するハードウェアタイマである。
Host IF・8は、ネットワークコントローラ2をHost CPU・1に接続するためのCPUインターフェイスである。
MII・9は、ネットワークコントローラ2をPHY・3に接続するためのメディア独立インターフェイスである。
【0017】
図3は、本実施形態のネットワークコントローラ2のソフトウェア構成を示す機能ブロック図である。本実施形態のネットワークコントローラ2は、TCP/IP処理部10と、プロトコルデータ管理部11と、CPU動作設定処理部13と、CPU動作変更判断処理部14と、プロトコル処理部15と、パケット送受信間隔監視部16とから構成される。
【0018】
TCP/IP処理部10は、TCP/UDP/IPv4/IPv6/ICMPv4/ICMPv6等のTCP/IPのプロトコル処理を行い、プロトコル管理データをプロトコルデータ管理部11に、パケット送受信間隔及び直近のパケット受信時刻、送信時刻をパケット送受信間隔監視部16にそれぞれ書き込む。
ここで、プロトコル処理としては、IPv4 Only/IPv6 Only/Dual Stack、すなわち、IPv4のみを使用する場合、IPv6のみを使用する場合、IPv4及びIPv6を共存して使用する場合がある。
プロトコルデータ管理部11は、TCP/IP処理部10、プロトコル処理部15における各プロトコル処理に必要なデータ、すなわち、CPU・4の動作モード変更に関するパラメータを管理する。
ここで、CPU・4の動作モード変更に関するパラメータとは、TCP処理であれば、各種タイマ値(再送タイマ、持続タイマ、保留タイマ等)、RTT(Round Trip Time)、遅延ACK時間、ウィンドウサイズ等のコネクション管理情報である。また、IPv4処理であれば、ルーティングテーブルや設定されたアドレス情報等である。また、IPv6処理であれば、アドレスの有効時間のタイマ、Prefixの有効時間のタイマ、Multicastに関するタイマ等である。
【0019】
CPU動作設定処理部13は、外部プログラムモジュール12とのインターフェイスとなり、CPU・4の動作条件として、例えば、CPU動作変更時間の設定要求を受け付け、その要求をCPU動作変更判断処理部14に対して出力する。
ここで、外部プログラムモジュール12は、例えば、CPU・4がスリープ状態に遷移する条件や動作クロックを変化させる条件、すなわち、CPUの動作モードの移行条件、すなわち、CPU動作変更時間を指定する。
CPU動作変更判断処理部14は、プロトコルデータ管理部11が管理するCPU・4の動作モード変更に関するパラメータの値が更新される場合、パケット送受信部16を参照し、次のパケット送信までの時間、次のパケット受信での時間を更新されたパラメータの値に基づいて計算する機能を有する。(本発明においては、この計算結果を「予測スリープ時間」と定義する。)また、CPU動作変更判断処理部14は、予測スリープ時間と、CPU動作設定処理部13から入力されるCPU動作変更時間とを比較し、CPU動作モードを比較結果に基づいて変更するインターフェイスを持つ。
ここで、CPU動作モードを変更するインターフェイスとは、例えば、アセンブラのsleep命令や動作クロックを変更する命令などである。
【0020】
プロトコル処理部15は、TCP/IP以外のHTTP、SNMP、DHCP、RIP等のアプリケーションプロトコルのプロトコル処理を実行し、プロトコル管理データをプロトコルデータ管理部11に書き込む。
パケット送受信間隔監視部16は、パケット送信時における連続したパケットの送信間隔を保持し、時間的に最近の、つまり直近のパケット送信時刻を保持する(図6の上段を参照)。また、パケット送受信間隔監視部16は、パケット受信時における連続したパケットの受信間隔を保持し、時間的に最近の、つまり直近のパケット受信時刻を保持する(図6の下段を参照)。
【0021】
以下、本実施形態のネットワークコントローラ2の動作について、図面を参照して説明する。まず本実施形態のネットワークコントローラ2の動作の前提条件について説明する。
(前提条件)
・ ネットワークコントローラ2は、IPv6機能を搭載しており、特定のMulticast Groupに属している(要請Multicast/ICMP Name Lookup等のMulticast Addressを利用しており、20秒おきにMLDパケットを再送するものとする。)。
・ 本実施形態においては、TCPセッションの管理データとIPv6(MLD用)の管理データを参照して予測スリープ時間を算出する。
以上の前提に基づいて、本実施形態のネットワークコントローラ2の動作について説明する。
【0022】
図4は、CPU動作変更判断処理部14におけるCPU動作モード変更処理の過程を示すフローチャートである。
まず上述のデジタル家電におけるシステム初期化時に、Host CPU・1はネットワークコントローラ2に対して、500msec以上の待ち時間検出時に動作周波数を下げることを指令するコマンドを出力する。
ネットワークコントローラ2において、CPU動作設定処理部13が、このコマンド(=CPU動作変更時間の設定要求)を受け付け、CPU・4のCPU動作変更時間を設定する。すなわち、本実施形態においては、Host CPU・1が外部プログラムモジュール12と同様の制御処理を行う。
【0023】
次に、Host CPU・1のメインアプリケーションは、TCP/IP処理部10に対してセッション生成要求を送信する。ネットワークコントローラ2において、TCP/IP処理部10は、Host IF・8経由でTCPセッション要求を受信し、プロトコルデータ管理部11にTCPセッション管理データ1をセットする(図5のTCPセッション管理データ1を参照)。
【0024】
今、Host CPU・1のメインアプリケーションとTCP/IP処理部10の間でこの処理を複数回、例えばもう一度行い、TCP/IP処理部10が計2つのTCPセッション(図5のTCPセッション管理データ1、TCPセッション管理データ2を参照)を生成して、Host CPU・1のメインアプリケーションがデータ通信を開始したとする。
このとき、図5に示すように、プロトコルデータ管理部11には、TCPセッション管理データ1と、TCPセッション管理データ2と、IPv6管理データがセットされている。
【0025】
CPU動作変更判断処理部14は、定期的(例えば、100msec毎)、あるいは、前回算出した予測スリープ時間よりも長いタイマ値がプロトコルデータ管理部11にセットされた時点で処理を開始する。
【0026】
すなわち、CPU動作変更判断処理部14は、まず受信バッファにデータがあるか否かを確認する(図4のステップS1を参照)。
受信バッファにデータがあれば(ステップS1でYesの場合)、続いてパケットが送信されてくる可能性が高いことから、CPU動作変更判断処理部14はCPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。一方、受信バッファにデータがなければ(ステップS1でNoの場合)、CPU動作変更判断処理部14は、チェックしていないプロトコル管理データがあるか否かを確認する(ステップS2)。
例えば、TCPセッション管理データ1、2またはIPv6管理データのうち、いずれかが未チェックのプロトコル管理データである場合(ステップS2でYesの場合)、CPU動作変更判断処理部14は、未チェックのプロトコル管理データに書き込まれたタイマ値を読み出して、予測スリープ時間を算出し、前回算出した予測スリープ時間を更新する(ステップS3)。
ここで読み出すタイマ値は、例えば、TCPセッションデータ1、2のRTT、各種タイマ値、IPv6管理データのMLDパケット再送タイマ値である。
また、予測スリープ時間は、読み出したRTT、各種タイマ値の残り時間の最小値とする。
【0027】
予測スリープ時間の更新後、CPU動作変更判断処理部14は、CPU動作設定処理部13に設定されたCPU動作変更時間と更新後の予測スリープ時間とを比較し、予測スリープ時間がCPU動作変更時間より短い場合は、ステップS2に戻って、ステップS2〜S4を繰り返す。そして、TCPセッション管理データ1、2またはIPv6管理データがすべてチェック済みとなった場合(ステップS2でNoの場合)、CPU動作変更判断処理部14は、CPU動作変更判断処理部14はCPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。
【0028】
一方、CPU動作変更時間と更新後の予測スリープ時間とを比較し、予測スリープ時間がCPU動作変更時間より長い場合(ステップS4でYesの場合)、CPU動作変更判断処理部14は、パケット送受信間隔監視部16よりパケットの受信間隔、送信間隔、直近のパケット受信時刻、送信時刻を読み出す。
そして、CPU動作変更判断処理部14は、この直近のパケット受信時刻にパケットの受信間隔時間分を加算した時刻(=次のパケットの受信予想時刻)と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの受信予想時刻の方が早い場合(ステップS5でNoの場合)、すなわち、
次のパケットの受信予想時刻 < 現在時刻+予測スリープ時間分
の関係式を満たす場合、
CPU動作変更判断処理部14は、CPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。
【0029】
また、CPU動作変更判断処理部14は、同様に、この直近のパケット送信時刻にパケットの送信間隔時間分を加算した時刻(=次のパケットの送信予想時刻)と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの送信予想時刻の方が早い場合(ステップS5でNoの場合)、すなわち、
次のパケットの送信予想時刻 < 現在時刻+予測スリープ時間分
の関係式を満たす場合、CPU動作変更判断処理部14はCPU動作変更処理を停止して、プロトコル処理を継続する(ステップS6)。
【0030】
一方、次のパケットの受信予想時刻と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの受信予想時刻の方が遅く、かつ、次のパケットの送信予想時刻と、現在時刻に予測スリープ時間分を加算した時刻とを比較し、次のパケットの送信予想時刻の方が遅い場合(ステップS5でYesの場合)、
すなわち、
次のパケットの受信予想時刻 > 現在時刻+予測スリープ時間分
かつ
次のパケットの送信予想時刻 > 現在時刻+予測スリープ時間分
の関係式を満たす場合、CPU動作変更判断処理部14は、CPU・4の動作モードを低消費電力モードに変更する命令を出力する(ステップS7)。
【0031】
CPU・4は、この命令を受けて、動作モードを低消費電力モードに変更する。そして、CPU・4は、外部からの割り込みがかかるまで、つまり他の通信デバイスからパケットを受信するまで、又は、Host CPU・1から送信パケットを受信するまで、プロトコル処理を低消費電力モードで実行する(ステップS8)。
【0032】
次に、以上の動作の具体例を説明する。Host CPU・1側のメインアプリケーションがデータ通信中に通信経路上で輻輳が発生した場合、TCPセッションで管理しているRTT値が大きくなり、1つのTCPセッションのRTTが550msec、他方のTCPセッションのRTT値が600msecに更新されたとする。このとき、その他のタイマ値の残り時間が550msecより大きい状態であれば、ステップS3でCPU動作判断処理部14は、予測スリープ時間を550msecに更新する。このとき、設定された500msecを超える待ち時間が発生する可能性があるので、CPUの動作クロックを50MHzに変更する命令をCPU・4に対して出力する。また、この際、パケット送受信間隔監視部16の情報を参照してより精度の高い予測を行うことも考えられる。
【0033】
たとえば、図6の上段に示す送信間隔の例では、送信間隔と現在時刻の関連から連続した送信処理が予測され、予測スリープ時間が550msecになっても、CPUの動作クロックを下げないという判断が可能である。
また、図6の下段に示す受信間隔の例では、例えば、Host CPU・1がネットワークコントローラ2に対して、200msec以下の予測スリープ時間を検出した際にCPUの動作クロックを変更する設定を行った場合、TCPにおける遅延ACKの残り時間を考慮して予測スリープ時間を計算することができる。すなわち、遅延ACKにより、ACKの送信を遅らせている期間は、パケット送信処理が発生しないことから、CPUの動作クロックを下げることが考えられる。
【0034】
ネットワークコントローラ2は、動作クロックを50MHzに下げた状態でプロトコル処理を続行し、パケットの送受信間隔が500msecより小さくなると、CPU動作変更判断処理部14は、CPU・4に対して、CPUの動作クロックを元の100MHzに復帰させる命令を出力する。CPU・4はこの命令を実行し、動作クロックを100MHzに戻す。
なお、ここでは、パケット送受信間隔の情報を動作クロック復帰の判断に利用したが、Host CPU・1から複数パケット化が必要な量のデータ送信コマンドを受け付けた場合に復帰することも考えられる。
【0035】
以上説明したように、本実施形態のネットワークコントローラによれば、CPU動作変更時間をHost CPU・1側から設定可能とすることで、HostCPU・1のメインアプリケーションの特性に応じて、柔軟に変更できる効果が得られる。したがって、ネットワークコントローラの消費電力をHost CPU・1のメインアプリケーションの特性に応じて、最適化する制御を行うことで低消費電力を実現することができる効果が得られる。
また、パケットの送受信間隔の情報を基にCPUの動作変更判断を実行可能となり、より精度の高い予測が可能となり、ネットワークコントローラの消費電力をより最適化することができる効果が得られる。
特に通常、通信プロトコル処理では、統計データを残す目的やSNMPのMIBデータとする目的のために送受信が完了後にパケット数等を更新する。本発明は、その更新処理の追加処理としてパケット送受信間隔の更新を行うため、計算負荷が小さい。
【0036】
また、本発明のネットワークコントローラは、ネットワークコントローラとのインターフェイスを備えたCPUであって、コマンド命令やデータ送受信が可能なCPUであれば、どのような種類のCPUも適用可能である。
また、本発明のネットワークコントローラは、データリンク層、物理層に依存しないので様々な通信方式に適用可能である。
また、本発明のネットワークコントローラは、TCP/IP処理に限られず、MAC層の処理を内蔵したネットワークコントローラであっても良い。MAC層の処理を内蔵する場合、MACプロトコルのタイマ値をCPUの動作モード変更のトリガとすることが考えられる。
また、本実施形態のネットワークコントローラでは、動作モードが通常モードと低消費電力モードとを有する場合を示したが、本発明はこれに限られず、CPUコアの実装する動作モードを採用してもよい。なお、CPUの動作クロックが変更不可能な場合は、一定時間の予測スリープ時間を検出したら、CPUはsleep状態に移行し、sleep状態の復帰は、割り込みやHost CPU・1からのコマンド等のイベント検出をトリガとして行う。
また、CPU動作変更時間を直接、CPU動作変更判断処理部14に設定するのではなく、要求受付のインターフェイスとなるCPU動作設定部を設けることにより、新しい設定パラメータの追加が容易にできる効果が得られる。
【0037】
なお、本実施形態のネットワークコントローラにおいては、予測スリープ時間の計算アルゴリズムとして、各種タイマ値から最短のものを選ぶという方法を示したが、実装段階では、接続するデバイス毎(例えば、IEEE802.11a/b/g、IEEE802.3x、IEEE1394、Bluetooth、USB)、また、ネットワークコントローラを搭載している機器が、常時電源に接続されている場合、または、機器内増のバッテリで動作している場合毎にテストシミュレーションを行うことにより最適化されて決定される。
また、本実施形態のネットワークコントローラ2では、送受信バッファ量については、これを積極的に利用しない例を示したが、本発明はこれに限られず、ステップS1において、送受信バッファ量の大小に応じた判定処理をおこなってもよい。
また、本実施形態のネットワークコントローラ2では、主にTCP/IP処理部10のプロトコル管理データによりCPUの動作変更判断処理を行ったが、本発明はこれに限られず、プロトコル処理部15のプロトコル処理におけるタイマ値やバッファ等をも考慮してCPUの動作変更判断処理をしてもよい。
また、本実施形態のネットワークコントローラ2では、主にプロトコル処理の低消費電力をネットワークコントローラ側でのせイ魚により実現するが、本発明はこれに限られず、Host CPU・1が明示的にネットワークコントローラ・2に対して命令を発行し、低消費電力モードへ移行させても良い。
【0038】
本発明がターゲットとするデジタル家電等のネットワーク機器では、汎用のPCと異なり、明確なアプリケーションの利用が想定される。したがって、本システムでは、不特定多数のサービスを提供する情報機器というよりは、少人数の利用者に対して、特定のサービスを提供する機器、あるいは、クライアントとして特定のサービスを利用する端末機器として採用されることが想定される。
このようなシステムでは、同時に生成するTCPセッションや管理するプロトコルデータの情報量も少なく、ネットワークに接続されていても、常に通信しているとは限らないので、本発明で利用するタイムアウト値、バッファ量、パケット送受信間隔により低消費電力モードへの判断基準とする方式は、低消費電力の実現方法として有効である。
【0039】
なお、上述したネットワークコントローラにおけるCPU動作変更判断処理に関する一連の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【図1】本実施形態のデジタル家電の構成を示すブロック図である。
【図2】本実施形態のネットワークコントローラ2のハードウェア構成を示すブロック図である。
【図3】本実施形態のネットワークコントローラ2のソフトウェア構成を示すブロック図である。
【図4】CPU動作変更判断処理部14の動作を示すフローチャートである。
【図5】プロトコルデータ管理部11に格納されるプロトコル管理データを示すブロック図である。
【図6】パケットの送受信間隔と現在時刻の関連を示す図である。
【符号の説明】
1…Host CPU・4…ネットワークコントローラ、3…PHY、4…CPU、5…ROM、6…RAM、7…タイマ、8…Host IF、9…MII、10…TCP/IP処理部、11…プロトコルデータ管理部、12…外部プログラムモジュール、13…CPU動作設定処理部、14…CPU動作変更判断処理部、15…プロトコル処理部、16…パケット送受信間隔監視部
Claims (7)
- プロトコル処理を行うプロトコル処理部と、
該プロトコル処理におけるプロトコルタイマ値を保持する記憶部と、
該プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出し、該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更するCPU動作変更判断処理部
を具備することを特徴とするネットワークコントローラ。 - 前記記憶部は、さらに、前記プロトコル処理におけパケット送受信間隔及び直近のパケット送受信時刻を保持し、
前記CPU動作変更判断処理部は、さらに、該パケット送受信間隔及び直近のパケット送受信時刻を読み出して、前記CPU動作モードを該パケット送受信間隔及び直近のパケット送受信時刻に基づいて変更する
ことを特徴とする請求項1に記載のネットワークコントローラ。 - 前記記憶部は、さらに、前記プロトコル処理におけパケット送受信間隔及び直近のパケット送受信時刻を保持し、
前記CPU動作変更判断処理部は、さらに、該パケット送受信間隔及び直近のパケット送受信時刻を読み出して、次パケットの送受信予測時刻を算出し、現在時刻に前記予測スリープ時間を加算した時刻と、該送受信予測時刻とを比較し、CPU動作モードを該比較結果に基づいて変更する
ことを特徴とする請求項1に記載のネットワークコントローラ。 - 前記CPU動作変更時間は、前記ネットワークコントローラに接続されたホストCPUより指定された値である
ことを特徴とする請求項1から請求項3のいずれかの項に記載のネットワークコントローラ。 - 前記パケット送受信間隔は、連続したパケットの送受信間隔幅に基づいて決定される
ことを特徴とする請求項1から請求項3のいずれかの項に記載のネットワークコントローラ。 - プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、該ネットワークコントローラのCPUの動作モードを変更するCPU動作変更制御方法であって、
前記プロトコルタイマ値を読み出し、
自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出し、
該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、
CPU動作モードを該比較結果に基づいて変更する
ことを特徴とするCPU動作変更制御方法。 - プロトコル処理を行うプロトコル処理部と、該プロトコル処理におけるプロトコルタイマ値を保持する記憶部とを有するネットワークコントローラにおいて、該ネットワークコントローラのCPUの動作モードを変更するCPU動作変更制御処理を該CPUに実行させるためのプログラムであって、
前記プロトコルタイマ値を読み出し、自身が次にパケットを送信、又は受信するまでの時間である予測スリープ時間を該タイマ値に基づいて算出する処理と、
該予測スリープ時間と予め設定されたCPU動作変更時間とを比較し、CPU動作モードを該比較結果に基づいて変更する処理を
前記CPUに実行させるためのCPU動作変更制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002358391A JP2004192256A (ja) | 2002-12-10 | 2002-12-10 | ネットワークコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002358391A JP2004192256A (ja) | 2002-12-10 | 2002-12-10 | ネットワークコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004192256A true JP2004192256A (ja) | 2004-07-08 |
Family
ID=32758118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002358391A Withdrawn JP2004192256A (ja) | 2002-12-10 | 2002-12-10 | ネットワークコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004192256A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008087727A1 (ja) | 2007-01-18 | 2008-07-24 | Panasonic Corporation | 通信装置及び電力供給方法 |
JP2011113202A (ja) * | 2009-11-25 | 2011-06-09 | Ricoh Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
CN102457424A (zh) * | 2010-10-19 | 2012-05-16 | 英业达集团(天津)电子技术有限公司 | 多播封包的发送速度控制方法 |
JP2013516009A (ja) * | 2010-01-11 | 2013-05-09 | クアルコム,インコーポレイテッド | 動的電力管理のためのドメイン固有言語、コンパイラ、およびjit |
JP2013516710A (ja) * | 2010-01-11 | 2013-05-13 | クアルコム,インコーポレイテッド | 中央処理装置内のデータをサンプリングするシステムおよび方法 |
US9235251B2 (en) | 2010-01-11 | 2016-01-12 | Qualcomm Incorporated | Dynamic low power mode implementation for computing devices |
US10051562B2 (en) | 2015-07-17 | 2018-08-14 | Ricoh Company, Ltd. | Communication apparatus, power control method, and recording medium |
CN114072741A (zh) * | 2019-08-20 | 2022-02-18 | 欧姆龙株式会社 | 控制系统、控制装置以及程序 |
-
2002
- 2002-12-10 JP JP2002358391A patent/JP2004192256A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008087727A1 (ja) | 2007-01-18 | 2008-07-24 | Panasonic Corporation | 通信装置及び電力供給方法 |
JP4732523B2 (ja) * | 2007-01-18 | 2011-07-27 | パナソニック株式会社 | 通信装置及び電力供給方法 |
US8171313B2 (en) | 2007-01-18 | 2012-05-01 | Panasonic Corporation | Communication device and power supply method |
JP2011113202A (ja) * | 2009-11-25 | 2011-06-09 | Ricoh Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
JP2013516009A (ja) * | 2010-01-11 | 2013-05-09 | クアルコム,インコーポレイテッド | 動的電力管理のためのドメイン固有言語、コンパイラ、およびjit |
JP2013516710A (ja) * | 2010-01-11 | 2013-05-13 | クアルコム,インコーポレイテッド | 中央処理装置内のデータをサンプリングするシステムおよび方法 |
US9182810B2 (en) | 2010-01-11 | 2015-11-10 | Qualcomm Incorporated | Domain specific language, compiler and JIT for dynamic power management |
US9235251B2 (en) | 2010-01-11 | 2016-01-12 | Qualcomm Incorporated | Dynamic low power mode implementation for computing devices |
CN102457424A (zh) * | 2010-10-19 | 2012-05-16 | 英业达集团(天津)电子技术有限公司 | 多播封包的发送速度控制方法 |
US10051562B2 (en) | 2015-07-17 | 2018-08-14 | Ricoh Company, Ltd. | Communication apparatus, power control method, and recording medium |
CN114072741A (zh) * | 2019-08-20 | 2022-02-18 | 欧姆龙株式会社 | 控制系统、控制装置以及程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gunaratne et al. | Managing energy consumption costs in desktop PCs and LAN switches with proxying, split TCP connections, and scaling of link speed | |
Lim et al. | Design, implementation, and evaluation of energy-aware multi-path TCP | |
US8165015B1 (en) | Modifying a rate based on at least one performance characteristic | |
KR101379869B1 (ko) | 패킷 데이터 네트워크들에서 물리 계층 디바이스들에 대한 자기 적응 동적 전력 감소 메커니즘을 위한 방법 및 시스템 | |
JP5867188B2 (ja) | 情報処理装置、輻輳制御方法および輻輳制御プログラム | |
US9112781B2 (en) | Deactivating a packet tunnel based on at least one performance characteristic | |
KR101552382B1 (ko) | 네트워크 접속을 유휴화하기 위한 방법 및 장치 | |
US11671210B2 (en) | Retransmission control method, communications interface, and electronic device | |
CN104052684A (zh) | 动态适配计算机网络中的最大传输单元大小的方法和系统 | |
JP5573844B2 (ja) | 通信端末および通信方法 | |
JP2004192256A (ja) | ネットワークコントローラ | |
Araujo et al. | BEEP: Balancing energy, redundancy, and performance in fat-tree data center networks | |
CN110192378B (zh) | 控制非最佳路径的使用的装置和方法 | |
JP5218979B2 (ja) | データ転送装置 | |
JP3918859B2 (ja) | ネットワーク、ルータ装置及びそれに用いる経路更新抑止方法並びにそのプログラム | |
WO2005055546A1 (ja) | セッション中継装置、セッション中継方法及びセッション中継プログラム | |
US10972442B1 (en) | Distributed predictive packet quantity threshold reporting | |
JP2010239299A (ja) | ネットワークの管理システム及び管理方法 | |
KR101001046B1 (ko) | 중계 장치 및 중계 방법 | |
US20100070668A1 (en) | Interrupt control apparatus, interrupt control system, interrupt control method, and interrupt control program | |
WO2021073367A1 (zh) | 一种数据处理方法、设备及系统 | |
JP7110573B2 (ja) | 情報処理装置、情報処理プログラム及び情報処理方法 | |
JP6405692B2 (ja) | 送信装置、送信装置の制御方法、送信プログラム及び通信システム | |
JP5915755B2 (ja) | 情報処理装置 | |
KR100951532B1 (ko) | 홈 네트워크 시스템의 활성/비활성 선택 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060307 |