(57)【特許請求の範囲】
【請求項１】
外部装置とデータの送受信を行うサブシステムと、
前記サブシステムで受信されたデータの処理および前記サブシステムから送信されるデータの生成を行うメインシステムと、
前記メインシステムにおいて生成され前記サブシステムから送信されるデータの単位時間あたりの生成量を判定する第１の判定手段と、
前記サブシステムが前記外部装置にデータを送信する際の通信種別を判定する第２の判定手段と、
前記第１の判定手段による判定結果と、前記第２の判定手段による判定結果と、に基づいて、前記サブシステムの電力モードを選択する選択手段と、
を有することを特徴とする通信装置。
【請求項２】
外部装置とデータの送受信を行うサブシステムと、
前記サブシステムで受信されたデータの処理および前記サブシステムから送信されるデータの生成を行うメインシステムと、
前記外部装置との通信のために前記メインシステムにおいて必要とされるスループットを判定する第１の判定手段と、
前記サブシステムが前記外部装置にデータを送信する際の通信種別を判定する第２の判定手段と、
前記第１の判定手段による判定結果と、前記第２の判定手段による判定結果と、に基づいて、前記サブシステムの電力モードを選択する選択手段と、
を有することを特徴とする通信装置。
【請求項３】
前記第２の判定手段は、前記サブシステムが前記外部装置にデータを送信する際の通信が、有線による通信であるか、無線による通信であるかを判定することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記第２の判定手段は、前記サブシステムが前記外部装置にデータを送信する際の通信が、ＩＥＥＥ８０２シリーズのいずれの規格に準拠した通信であるかを判定することを特徴とする請求項１または２に記載の通信装置。
【請求項５】
前記サブシステムは、
前記外部装置と有線を介して通信するための有線通信制御手段と、
前記外部装置と無線を介して通信するための無線通信制御手段と、
を有することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記選択手段による前記サブシステムの電力モードの選択とは、前記サブシステムのクロック周波数を選択することであることを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
外部装置とデータの送受信を行うサブシステムと、前記サブシステムで受信されたデータの処理および前記サブシステムから送信されるデータの生成を行うメインシステムと、を有する通信装置の通信制御方法であって、
第１の判定手段が、前記メインシステムにおいて生成され前記サブシステムから送信されるデータの単位時間あたりの生成量を判定する第１の判定工程と、
第２の判定手段が、前記サブシステムが前記外部装置にデータを送信する際の通信種別を判定する第２の判定工程と、
選択手段が、前記第１の判定工程の判定結果と、前記第２の判定工程の判定結果と、に基づいて、前記サブシステムの電力モードを選択する選択工程と、
を有することを特徴とする通信制御方法。
【請求項８】
外部装置とデータの送受信を行うサブシステムと、前記サブシステムで受信されたデータの処理および前記サブシステムから送信されるデータの生成を行うメインシステムと、を有する通信装置の通信制御方法であって、
第１の判定手段が、前記外部装置との通信のために前記メインシステムにおいて必要とされるスループットを判定する第１の判定工程と、
第２の判定手段が、前記サブシステムが前記外部装置にデータを送信する際の通信種別を判定する第２の判定工程と、
選択手段が、前記第１の判定工程の判定結果と、前記第２の判定工程の判定結果と、に基づいて、前記サブシステムの電力モードを選択する選択工程と、
を有することを特徴とする通信制御方法。
【請求項９】
コンピュータを、
請求項１乃至６のいずれか１項に記載の通信装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、メインプロセッサとサブプロセッサで構成されるようなマルチプロセッサ搭載システムにおいて、低消費電力化を実現する様々な方法が提案されている。このようなシステムでは、各プロセッサから共通にアクセス可能な外部メモリと各プロセッサが占有するローカルメモリが搭載される。低消費電力化を行うためには、外部メモリに対するアクセスの停止や、各プロセッサ等の主要制御部へのクロック供給の停止などが有効と考えられている。ただし、低消費電力時に外部メモリへのアクセスを停止した場合、低消費電力時の処理をローカルメモリのみで行う必要があるため、ローカルメモリのサイズを増加する必要があった。
【０００３】
このような問題を解決するために、従来技術では、メインシステム及びサブシステムと独立した低消費電力モードを検知する低消費電力モード検出部を装備することが提案されている。そして、低消費電力時に各プロセッサの有するローカルメモリを各プロセッサと共有化する手順が提案されている（特許文献１参照）。
【０００４】
これにより、プロセッサの有するローカルメモリサイズの削減と低消費電力化の両立を実現している。通信処理を実行するための通信プロトコルとしては、ＴＣＰ/ＩＰプロトコルを使用した通信処理が実行されている（非特許文献１参照）。通信処理を実行するための各種通信規格はIEEE（Institute of Electrical and Electronic Engineers）に規定される各種通信規格が使用されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５-３４６６７２号公報
【非特許文献】
【０００６】
【非特許文献１】書籍『詳細TCP/ＩＰ  Vol.1  プロトコル』発行元『株式会社ピアゾン・エデュケーション』
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の従来技術では、低消費電力モードと通常モードの２つのモードを二者択一的に切り替える方法であるため、複数の低消費電力モードを実装することが必要な場合は適切なモードを選択する新たな手順や仕組みが必要となる。具体的には、サブプロセッサを使用した通信処理において、通信相手や実行中のアプリケーション、通信路の品質などの要因によって、低レートから高レートの中から適切な通信レートを選択して通信処理が行われることが必要となる。
【０００８】
データ通信の通信レートが低い状態で通信処理が実行されている場合には、サブプセッサの処理量も少なくて済むことが想定される。そのような場合にサブプロセッサが通常モードで通信処理を実行することは、適切に低消費電力化を行っているとは言えない。
【０００９】
また、上記の従来技術は、低消費電力モードに切り替わった後のメモリ制御方法であるため、より効果的に低消費電力の効果を得るためには、どのような条件やタイミングで低消費電力モードの選択を実施するか決定する必要もある。つまり、通信相手とどのようなアプリケーションで、さらにどのような通信手段を使用してデータ通信を行っているかを正確に測定して最適なタイミングで適切なモードの選択と切り替えを実行する必要がある。具体的には、通信相手とデータ通信を行う同じアプリケーションであっても、映像のストリーム転送のようにリアルタイム性の高い通信が必要な場合と、ファイル転送のようにリアルタイム性の低い通信が要求される場合がある。前者の場合、優先事項を通信処理＞低消費電力化と判断し、後者の場合、優先事項を通信処理＜低消費電力化と判断する。そして、同じデータ通信を行うアプリケーションではあるが、前者の場合は通常モード、後者の場合は低消費電力モードを選択するようなモード選択制御が必要となる。
【課題を解決するための手段】
【００１０】
本発明は、様々な要因によって生じる通信レートの変動や通信装置の動作状態の変化に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能な通信技術を提供する。
【００１１】
本発明の一つの側面に係る通信装置は、
外部装置とデータの送受信を行うサブシステムと、
前記サブシステムで受信されたデータの処理および前記サブシステムから送信されるデータの生成を行うメインシステムと、
前記メインシステムにおいて生成され前記サブシステムから送信されるデータの単位時間あたりの生成量を判定する第１の判定手段と、
前記サブシステムが前記外部装置にデータを送信する際の通信種別を判定する第２の判定手段と、
前記第１の判定手段による判定結果と、前記第２の判定手段による判定結果と、に基づいて、前記サブシステムの電力モードを選択する選択手段と、
を有することを特徴とする。
【００１２】
あるいは、本発明の他の側面に係る通信制御方法は、外部装置とデータの送受信を行うサブシステムと、前記サブシステムで受信されたデータの処理および前記サブシステムから送信されるデータの生成を行うメインシステムと、を有する通信装置の通信制御方法であって、
第１の判定手段が、前記メインシステムにおいて生成され前記サブシステムから送信されるデータの単位時間あたりの生成量を判定する第１の判定工程と、
第２の判定手段が、前記サブシステムが前記外部装置にデータを送信する際の通信種別を判定する第２の判定工程と、
選択手段が、前記第１の判定工程の判定結果と、前記第２の判定工程の判定結果と、に基づいて、前記サブシステムの電力モードを選択する選択工程と、
を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、様々な要因によって生じる通信レートの変動や通信装置の動作状態の変化に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能になる。
【図面の簡単な説明】
【００１４】
【図１】（ａ）第１乃至第５実施形態に係る通信装置の構成を示すブロック図、（ｂ）メインシステムの稼働率と処理状況とをパラメータとして、サブシステムの動作モードの選択を説明する図。
【図２】第１実施形態の通信装置におけるサブシステムの動作モードの設定処理の流れを説明する図。
【図３】（ａ）第２実施形態にかかる通信装置におけるサブシステムの動作モードと選択するためのルックアップテーブル、（ｂ）第２実施形態の通信装置におけるサブシステムの動作モードの設定処理の流れを説明する図。
【図４】第２実施形態にかかる通信装置がデータの受信処理を実行する際のサブシステムにおける動作モードの設定処理の流れを説明する図。
【図５】（ａ）ソケット情報と、通信装置で実行されるアプリケーションによって要求されるスループットとの対応関係を示す図、（ｂ）サブシステムの動作モードを選択するためのルックアップテーブル。
【図６】第３実施形態の通信装置におけるサブシステムの動作モードを設定するための処理の流れを説明する図。
【図７】（ａ）サブシステムの動作モードを選択するためのルックアップテーブル、（ｂ）第４実施形態の通信装置におけるサブシステムの動作モードを設定するための処理の流れを説明する図。
【図８】（ａ）通信装置が通信状態にある場合、実効スループットの時間的な推移を示した図、（ｂ）第５実施形態の通信装置におけるサブシステムの動作モードを設定するための処理の流れを説明する図。
【図９】図８（ｂ）のステップＳ８０６の処理の流れを説明する図。
【発明を実施するための形態】
【００１５】
（第１実施形態）
図１（ａ）の参照により、通信装置の構成を説明する。通信装置は、メインバス１０３にメインシステム１０１とサブシステム１０２と共通メモリコントローラ１０８を介して共通メモリ１０９が接続されている。共通メモリコントローラ１０８はメインバス１０３から共通メモリ１０９にアクセスするための制御を行う。これによって、共通メモリ１０９に対してメインシステム１０１やサブシステム１０２からのリード/ライト等のアクセスが可能となっている。メインバス１０３には、タイマー１１８が接続されており、メインシステム１０１やサブシステム１０２からアクセスが可能となっている。タイマー１１８は、日時や時刻などの時間情報やメインシステム１０１やサブシステム１０２の制御によって時間間隔を計測する。
【００１６】
メインシステム１０１は、通信装置が実行するアプリケーションに関する制御を行うシステムである。例えば、通信装置がプリンタであれば印刷に関わる制御、カメラであれば撮像に関わる制御、ディスプレイであれば表示に関わる制御を行う。メインシステム１０１は、メインプロセッサ１０４によって制御されている。メインシステム１０１の内部にはローカルバス１０７があり、メインプロセッサ１０４がローカルバス１０７に接続されている。メインプロセッサ１０４は、ローカルバス１０７、バスブリッジ１０６を介してメインバス１０３、共通メモリコントローラ１０８、共通メモリ１０９、タイマー１１８とアクセス可能である。
【００１７】
メインシステム状態検出部１０５は、メインシステム１０１で実行されているデータ処理の状況やメインプロセッサ１０４の稼働率などの、メインシステム１０１の動作状態の検出を行う機能を有している。詳細な事例については後の項にて記載する。メインシステム状態検出部１０５によって検出された情報はバスブリッジ１０６、メインバス１０３、共通メモリコントローラ１０８を介して共通メモリ１０９内の所定の記憶領域に書込まれる。
【００１８】
サブシステム１０２は、サブプロセッサ１１０によって制御されている。サブシステム１０２の内部にはローカルバス１１６があり、サブプロセッサ１１０がローカルバス１１６に接続されている。サブプロセッサ１１０は、ローカルバス１１６、バスブリッジ１１２を介してメインバス１０３、共通メモリコントローラ１０８、共通メモリ１０９、タイマー１１８とアクセス可能である。
【００１９】
サブシステム１０２は通信処理を実行するためのサブシステムであるので、サブプロセッサ１１０には各種の通信プロトコルを処理するための機能が装備されており、必要となる時間情報はタイマー１１８から取得される。サブシステム状態検出部１１１は、サブシステム１０２で実行されている通信処理の状態（接続状態、切断状態等）を検出する機能を有している。その他の機能については後の項にて説明する。
【００２０】
サブシステム状態検出部１１１によって検出された情報はバスブリッジ１１２、メインバス１０３、共通メモリコントローラ１０８を介して共通メモリ１０９内の所定の記憶領域に書込まれる。また、サブプロセッサ１１０がローカルバス１１６を経由してサブシステム状態検出部１１１の検出結果を読込むことも可能となっている。
【００２１】
サブシステム１０２には動作モードを選択する機能も装備されている。サブシステム１０２のモード選択制御部１１３によって動作モードの切り替えが行われる。モード選択制御部１１３は、後述するようにメインシステム１０１の状態に応じて動作モードの選択を行う機能を有する。また、モード選択制御部１１３はクロック信号発生回路で構成され、動作モードの切り替えに応じて、複数の周波数の中からいずれか１つの周波数を選択して出力する機能も装備している。動作モードの切り替えにより、サブシステム１０２のシステムクロックとして出力するクロック周波数は変化する。サブシステム１０２には、データ通信用のインターフェースとして有線通信コントローラ１１４と無線通信コントローラ１１５とが装備されている。有線通信コントローラ１１４は、ＭＡＣ層及びＰＨＹ層の部分までを装置に実装し、イーサネット（登録商標）と接続されるような構成になっている。
【００２２】
無線通信コントローラ１１５は、ＩＥＥＥ８０２．１１関連規格に準拠した無線ＬＡＮモジュールと接続するＨｏｓｔ＿ＩＦ（ＵＳＢ or ＳＤＩＯ or ＰＣＩ等）で構成される。サブプロセッサ１１０は、指示によって無線通信コントローラ１１５に搭載されるコントロールＬＳＩを制御する機能を有する。
【００２３】
プロセッサ間通信部１１７はメインシステム１０１とサブシステム１０２とをメインバス１０３を経由せずに接続する通信経路を提供する。プロセッサ間通信部１１７の内部はレジスタ構成になっており、レジスタ内の所定ビットに書込みがあればサブ（或はメイン）システムに対する割込み信号をアサートする仕様になっている。例えば、メインプロセッサ１０４からローカルバス１０７経由でプロセッサ間通信部１１７へアクセスを行って、内部の所定ビットを"１"とする。この時、サブプロセッサ１１０に対して通知したい内容（コマンド）等も内部レジスタに同時に書込まれる。プロセッサ間通信部１１７の内部の所定ビットに"１"が書込まれると、サブプロセッサ１１０に対して割込み信号をアサートしてメインプロセッサ１０４からのアクセス要求が通知される。
【００２４】
割込み信号を受信したサブプロセッサ１１０は、プロセッサ間通信部１１７の内部レジスタへアクセスを行って通知内容を確認した後、所定ビットに"０"を書込んで初期状態に戻す。このような手順を実行することでメインプロセッサ１０４からサブプロセッサ１１０へのプロセッサ間通信を実現する。また、サブプロセッサ１１０からメインプロセッサ１０４へプロセッサ間通信を行う場合は上記と逆の手順を実行することでプロセッサ間通信を実現することが可能となっている。
【００２５】
図１（ｂ）の参照により、メインシステム１０１の稼働率とデータ処理状況とをパラメータとして、サブシステム１０２の動作モードを選択する例について説明する。メインシステム１０１が実行しているデータ処理の状況をルックアップテーブルの列パラメータとし、メインシステムの稼働率をルックアップテーブルの行パラメータとしてサブシステムの動作モードが決定される。図１（ｂ）において、省電力レベル１から４は、サブシステム１０２の動作モードにおいて電力消費レベルが低い動作モードから高い動作モードを示している。電力消費レベルが低い動作モードから、高い動作モードへの切り替えは、モード選択制御部１１３において発生するクロックを切り替えることで実現している。すなわち電力消費レベルの低い動作モードに対応する低い周波数から、電力消費レベルの高い動作モードに対応する高い周波数へ切り替えることで実現している。
【００２６】
図１（ｂ）は、スキャナ機能とデータ通信機能とを装備したプリンタ装置に通信装置が組み込まれた場合を例にして、データ処理状況とメインシステム１０１稼働率とをパラメータとした場合を例示している。図１（ｂ）のデータ処理状況については、メインプロセッサ１０４が一定の周期で現在実行しているデータ処理に関する情報を共通メモリ１０９の所定アドレスに書込む。或は、メインプロセッサ１０４が実行しているデータ処理の状況が変化したタイミングでデータ処理情報を共通メモリ１０９の所定アドレスに書込むことも可能である。
【００２７】
メインシステム稼働率については、メインシステム状態検出部１０５でメインプロセッサ１０４の稼動状態を監視し、その結果を元に共通メモリ１０９の所定アドレスに書込む。或は、メインシステム状態検出部１０５がメインプロセッサ１０４の稼動状態を監視し、その監視結果をメインシステム状態検出部１０５の内部に一次的に記憶しておくことも可能である。その後、一定の周期で、メインプロセッサ１０４がメインシステム状態検出部１０５の内部に一次的に記憶されている情報を共通メモリ１０９内部の所定アドレスに書込むことも可能である。
【００２８】
メインプロセッサ１０４の稼働率は、メインシステム状態検出部１０５によって検出される。メインシステム状態検出部１０５は、ローカルバス１０７に対するメインプロセッサ１０４からのアクセス発生頻度を監視し、所定時間におけるアクセス発生頻度を計測する。この計測結果を元にメインプロセッサ１０４の稼動率を算出して数値化する機能を有する。
【００２９】
サブプロセッサ１１０は、一定の周期で共通メモリ１０９にアクセスを行って所定アドレスに書込まれているメインシステム１０１の状態を確認する。モード選択制御部１１３には予め図１（ｂ）に示すようなルックアップテーブルが内部に記憶されている。モード選択制御部１１３は、メインシステム１０１の状態確認の結果として共通メモリ１０９から読取ったメインシステム１０１の状態とルックアップテーブルとからサブシステム１０２の動作モードを選択して決定する。例えば、メインシステム１０１の状態確認の結果が、「スキャン動作（転送無し）」、「メインシステム稼働率１０％未満」の場合、電力消費レベルが最も低い省電力レベル１が選択される。
【００３０】
次に、図２を参照して、サブシステム１０２の動作モードを設定する通信制御処理の流れを説明する。図１（ａ）に示す通信装置において、メインシステム１０１で実行しているデータ処理の状況と稼働率とをサブシステム１０２が認識し、その情報に従ってサブシステム１０２の動作モードをルックアップテーブルの参照により切り替える手順となっている。
【００３１】
ステップＳ２０１において、本処理が開始する。ステップＳ２０２では、サブシステム１０２においてデータ通信が開始されたか否かが判定される。サブシステム１０２において、データ通信が開始されれば（Ｓ２０２−Ｙｅｓ）、処理はステップＳ２０３に進められ、データ通信が開始されなければ（Ｓ２０２−Ｎｏ）、データ通信開始待ちの状態で待機する。本ステップでは、メインシステム１０１がどのような状態であるかに関わらず、サブシステム１０２によってデータ通信が開始されたかどうかが判定される。本ステップの判定の結果、サブシステム１０２がデータ通信を開始したことは、プロセッサ間通信部１１７によってメインシステム１０１に通知される。
【００３２】
ステップ２０３において、データ通信の開始を起点としてサブシステム１０２は時間の経過の計測を開始し、一定時間が経過したか否かを判定する。一定時間が経過したと、サブプロセッサ１１０が判断した場合（Ｓ２０３−Ｙｅｓ）、ステップＳ２０４に処理は進められる。一方、一定時間が経過していない場合（Ｓ２０３−Ｎｏ）、時間計測を継続する。本ステップにおいて、サブシステム１０２は、タイマー１１８から時間情報等を取得して時間の経過を測定し、その結果が一定の値（時間）を超えたかどうかが判断される。一定の時間としては、例えば、数十ｍＳ（ミリ秒）〜数Ｓ（秒）が設定される。
【００３３】
ステップＳ２０４において、サブシステム１０２がメインシステム１０１の動作状態を示す情報を取得する。メインシステム１０１の動作状態を示す情報は、メインプロセッサ１０４によって、共通メモリ１０９に書込まれる。そして、メインプロセッサ１０４は、プロセッサ間通信部１１７を使用してサブプロセッサ１１０に共通メモリ１０９内の記憶領域を示すアドレス情報を通知する。サブプロセッサ１１０は、アドレス情報を用いて共通メモリ１０９に書込まれている最新のメインシステム１０１の動作状態を示す情報を読取る。ここで読取られる動作状態を示す情報は、例えば、メインシステム１０１のデータ処理状況と稼働率とが含まれる。
【００３４】
ステップＳ２０５において、モード選択制御部１１３は、ステップＳ２０４で取得された動作状態を示す情報に対応する動作モードを、モード選択制御部１１３の内部に予め記憶されているルックアップテーブルを参照して選択する。
【００３５】
ステップＳ２０６において、先のステップＳ２０５で選択された動作モードがサブシステム１０２の動作モードとして設定される。サブプロセッサ１１０の制御によって、モード選択制御部１１３は、選択された動作モードに対応するシステムクロックを出力する。
【００３６】
ステップＳ２０７において、通信を終了するか否かが判定される。サブシステム１０２によってデータ通信の終了が検出されれば（Ｓ２０７−Ｙｅｓ）、処理をステップＳ２０８に処理を進め処理を終了する。データ通信の終了が検出されなければ（Ｓ２０７−Ｎｏ）、処理はステップＳ２０３に戻され、同様の処理が繰り返される。一定時間の周期で、動作モードの設定が行われるので、メインシステム１０１の動作状態に合わせた最適な動作モードの選択が可能になる。ステップＳ２０８では、図１（ａ）に示す通信装置は起動状態であるが、サブシステム１０２によるデータ通信は終了している状態を示している。
【００３７】
本実施形態によれば、様々な要因によって生じる通信レートの変動や通信装置の動作状態の変化に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能になる。
【００３８】
（第２実施形態）
図１（ａ）の参照により第２実施形態に係る通信装置を説明する。サブシステム状態検出部１１１は、サブシステム１０２で実行されている通信種別（通信規格）を検出する機能を有している。サブシステム状態検出部１１１は、通信接続を有線で行っているのか無線で行っているのか、あるいは使用している通信規格は何であるのかを検知する機能を有する。具体的には、無線通信であればＩＥＥＥ８０２．１１ｎの規格に対応しているのか、ＩＥＥＥ８０２．１１ｂ／ｇ／ａ等の規格に対応しているのかを検知する。有線通信であればＩＥＥＥ８０２．３ｕの規格に対応しているのか、ＩＥＥＥ８０２．３ｚの規格に対応しているのかを検知する。
【００３９】
有線通信コントローラ１１４や無線通信コントローラ１１５は、内部レジスタを装備しており、内部レジスタには各コントローラがアクティブ状態か否か、使用している通信規格は何かを示す内容が書込まれる。サブシステム状態検出部１１１は、有線通信コントローラ１１４や無線通信コントローラ１１５の内部レジスタへアクセスを行って、内部レジスタに書込まれている内容を元にアクティブ状態の有無や使用している通信規格を検知する。
【００４０】
通信装置がデータ送信処理を実行する際に、メインシステム状態検出部１０５はデータ送信用のペイロードをアプリケーションの処理能力として単位時間当たりに準備可能な情報量を算出する。メインシステム状態検出部１０５は、送信用データとしてペイロードの生成開始時にタイマー１１８を起動させる。そして、ペイロードの生成完了時におけるタイマー１１８の計測値（タイマー値）を読取る。これにより１送信単位当たりのペイロード生成時間を取得することが可能となる。このときメインプロセッサ１０４からメインシステム状態検出部１０５へは送信用データとして生成するペイロードの情報量も通知されている。これらの情報を元に、メインシステム状態検出部１０５はタイマー値とペイロードの情報量とから、単位時間当たりのペイロードの処理速度（処理能力）を算出する。図１（ａ）に示す通信装置において、データ送信を行うようなアプリケーションが起動されている場合、メインシステム１０１が送信用データとしてペイロードを生成して、その生成の結果が共通メモリ１０９の所定の記憶領域に書込まれる。この際、算出されたペイロード生成能力（単位時間当たりのペイロードの処理速度（処理能力））も共通メモリ１０９の所定の記憶領域に書込まれる。共通メモリ１０９からサブシステム１０２が、メインシステム１０１により生成されたペイロード部分とペイロードの処理速度（処理能力）とを読出す。その後、サブシステム１０２が通信プロトコル処理を行うのに必要となるヘッダ等の情報がペイロードに付加され、サブシステムの送信準備が完了する。そして、有線通信コントローラ１１４あるいは無線通信コントローラ１１５を経由して通信相手にデータが送信される。この際、サブシステム１０２は、メインシステム１０１におけるペイロードの処理速度（処理能力）とサブシステム１０２における通信規格との情報を用いて、サブシステム１０２の動作モードを選択する。通信装置がデータの送信処理を実行する際のサブシステムにおける動作モードを設定する通信制御処理の流れは、後に図３（ｂ）の参照により詳細に説明する。
【００４１】
図３（ｂ）の参照により、第２実施形態にかかる通信装置がデータの送信処理を実行する際のサブシステムにおける動作モードの設定処理の流れを説明する。本処理は、通信装置においてデータ送信を行うようなアプリケーションが起動している場合のデータ処理である。データ通信（データ送信）中に使用する通信規格と、メインシステム１０１におけるペイロードの処理速度（処理能力）に応じてサブシステム１０２の動作モードが切り替えられる。
【００４２】
ステップＳ３０１において、送信処理が開始する。ステップＳ３０２では、サブシステム１０２においてデータ通信が開始されたか否かが判定される。メインシステム１０１で起動しているアプリケーションの指示に従って、サブシステム１０２がデータ送信を行うための通信接続処理を開始する。サブシステム１０２において、データ通信が開始されれば（Ｓ３０２−Ｙｅｓ）、処理はステップＳ３０３に進められ、データ通信が開始されなければ（Ｓ３０２−Ｎｏ）、データ通信開始待ちの状態で待機する。その後、データ通信（データ送信）が可能となったら、プロセッサ間通信部１１７によってメインシステム１０１に通知される。
【００４３】
ステップＳ３０３では、サブシステム１０２において、使用されている通信規格が検出され、その検出結果が共通メモリ１０９に格納される。サブシステム状態検出部１１１は、有線通信コントローラ１１４や無線通信コントローラ１１５の内部レジスタにアクセスしてアクティブ状態か否か、使用している通信規格は何かを示す内容を読取る。その後、サブシステム状態検出部１１１は、検出された通信規格等の情報を共通メモリ１０９の内部に書込む。
【００４４】
ステップＳ３０４において、メインシステム１０１がデータ送信するためのペイロードを生成することが可能（ペイロード準備可能）であるか否を判定する。ペイロードの生成が可能であれば（Ｓ３０４−Ｙｅｓ）、ステップＳ３０７に処理を進め、ペイロードの生成が可能でなければ（Ｓ３０４−Ｎｏ）、ステップＳ３０５に処理を進める。
【００４５】
ステップＳ３０５において、サブシステム１０２において、データ通信（データ送信）が終了したか否かが判定される。データ通信（データ送信）の終了を示す信号が検出されれば（Ｓ３０５−Ｙｅｓ）、ステップＳ３１６に進められ処理は終了する。一方、ステップＳ３０５の判定において、データ通信（データ送信）の終了を示す信号が検出されない場合（Ｓ３０５−Ｎｏ）、処理はステップＳ３０６に進められる。
【００４６】
ステップＳ３０６において、サブシステム１０２が通信プロトコル処理を実行するためにヘッダ情報等をペイロードに付加して通信パケットを生成する準備が完了（サブシステム送信準備完了）しているかどうかを判定する。サブシステムの送信準備完了が完了と判定された場合（Ｓ３０６−Ｙｅｓ）、処理はステップＳ３１１に進められる。一方、ステップＳ３０６の判定において、サブシステムの送信準備を完了していないと判定された場合（Ｓ３０６−Ｎｏ）、処理はステップＳ３０４に戻され、同様の処理が繰り返される。
【００４７】
説明をステップＳ３０７に戻し、ステップＳ３０７において、メインシステム状態検出部１０５が、タイマー１１８を起動させる。メインシステム状態検出部１０５は、メインプロセッサ１０４から内部の所定レジスタに所定値を書込まれることでタイマーを起動させる。
【００４８】
ステップＳ３０８において、メインシステム１０１によってデータ送信を行うためのペイロードを生成する処理が実行される。詳細には、メインシステム１０１で実行されているアプリケーションに従って、メインプロセッサ１０４の制御によって通信相手に送信するためのペイロードが生成される。このときのペイロードのサイズは、データ通信を行うために使用される通信プロトコルに応じて、１単位分の通信パケットを生成するのに必要なデータサイズとなる。ペイロードはメインプロセッサ１０４が共通メモリ１０９上の所定の記憶領域にペイロードを書込むことで準備される。
【００４９】
ステップＳ３０９において、メインシステム状態検出部１０５が、タイマー１１８を停止させ、１単位分のペイロード生成能力（単位時間当たりのペイロードの処理速度（処理能力））を算出し、算出結果を共通メモリ１０９の所定の記憶領域に書込む。メインシステム状態検出部１０５は、メインプロセッサ１０４から内部の所定レジスタに所定値が書込まれると、タイマー１１８を停止させる。そして、メインシステム状態検出部１０５は、タイマー１１８から停止した時点における計測値（タイマー値）を取得することによって、ステップＳ３０８で実行されたペイロード生成時間を検知する。その後、既にメインプロセッサ１０４から通知済みのペイロードのサイズと生成時間から１単位分の通信パケットを形成するのに必要とされるペイロードを生成するための処理速度（処理能力）を算出する。そして、算出された処理速度（処理能力）を共通メモリ１０９の所定の記憶領域に書込み、処理が完了する。ここで、共通メモリ１０９内部の記憶領域のアドレス情報は、プロセッサ間通信部１１７を使用して、予めメインプロセッサ１０４からメインシステム状態検出部１０５に通知されている。
【００５０】
ステップＳ３１０において、サブシステム１０２は、通信プロトコル処理を実行するために、ヘッダ情報等をペイロードに付加して、通信パケットを生成する準備が完了（サブシステムの送信準備完了）しているかどうかを判定する。送信準備完了と判定される場合（Ｓ３１０−Ｙｅｓ）、処理はステップＳ３１１に進められる。一方、送信準備が完了していないと判定される場合（Ｓ３１０−Ｎｏ）、処理はステップＳ３０４に戻され同様の処理が繰り返される。
【００５１】
ステップＳ３１１において、生成された通信パケットが、有線通信コントローラ１１４あるいは無線通信コントローラ１１５を経由して、通信相手に送信される。通信相手に送信される通信パケットの単位は、通信パケット１単位分となる。ステップＳ３１２において、メインシステム１０１におけるペイロードの処理速度（処理能力）とサブシステム１０２で使用している通信規格の情報とを取得する。サブシステム状態検出部１１１は、メインプロセッサ１０４から通知されたアドレス情報を用いて、共通メモリ１０９に書込まれている最新の情報を読取る。
【００５２】
ステップＳ３１３で、モード選択制御部１１３はペイロードの処理能力及び通信規格の情報と、モード選択制御部１１３の内部に予め記憶されているルックアップテーブルとを比較して、サブシステム１０２の動作モードを選択する。
【００５３】
ステップＳ３１４において、先のステップＳ３１３で選択された動作モードにしたがって、サブシステム１０２の動作モードが設定される。サブプロセッサ１１０の制御によって、モード選択制御部１１３が選択した動作モードに対応するシステムクロックが出力される。
【００５４】
ステップＳ３１５において、サブシステム１０２における通信が終了したか否かが判断される。サブシステム１０２においてデータ送信の終了を示す信号が検出されれば（Ｓ３１５−Ｙｅｓ）、データ通信は終了する（Ｓ３１６）。一方、データ送信の終了を示す信号が検出されなければ、処理はステップＳ３０３に進められ、同様の処理が繰り返される。
【００５５】
次に、通信装置におけるデータの受信時の処理を説明する。メインシステム状態検出部１０５は、受信したデータから抽出されるペイロード部分に対するアプリケーションの処理能力を検出する機能を有する。ここで、処理能力とは受信データ（通信パケット）から抽出されたペイロードをメインシステム１０１が単位時間当たりに処理できる能力を示す。通信装置において、データの受信処理を行うようなアプリケーションが起動している場合、サブシステム１０２は、有線通信コントローラ１１４あるいは無線通信コントローラ１１５を経由して通信相手から通信パケットを受信する。
【００５６】
受信した通信パケットから通信プロトコル上、必要となるヘッダ情報等を取り除いてペイロードが抽出される。その後、アプリケーションが起動しているメインシステム１０１へペイロードが引き渡される。メインシステム１０１でペイロードを受け取った後、次のペイロードを受け取り可能となるまでの時間と処理可能なペイロードの情報量とから単位時間当たりの処理能力を検出する。メインシステム状態検出部１０５は、ペイロードがメインシステム１０１へ引き渡されたタイミングでタイマー１１８を起動させる。そして、メインシステム１０１は、次のペイロードの受け取りが可能となったタイミングでタイマー１１８を停止させ、そのときのタイマー１１８の計測値（タイマー値）を読取る。このときメインプロセッサ１０４からメインシステム状態検出部１０５へは処理されたペイロードの情報量も通知されている。ペイロードの情報量とタイマー値とを元に、メインシステム状態検出部１０５は単位時間当たりのペイロードの処理速度（処理能力）を算出する。
【００５７】
モード選択制御部１１３には予め図３（ａ）に示すようなルックアップテーブルが内部に記憶されている。図３（ａ）のルックアップテーブルの参照により、モード選択制御部１１３は、メインシステム１０１の処理能力と使用中の通信規格とをパラメータにしてサブシステム１０２の動作モード（省電力レベル）を特定することができる。メインシステム１０１で実行しているアプリケーションによるペイロードの処理能力をルックアップテーブルの行パラメータとし、サブシステム１０２で使用している通信規格を列パラメータとしてサブシステム１０２の動作モードが決定される。省電力レベル１から４は、サブシステム１０２の動作モードにおいて電力消費レベルが低い動作モード（省電力レベル１が対応）から、電力消費レベルが高い動作モード（省電力レベル４が対応）を示している。通信装置がデータの受信処理を実行する際のサブシステムにおける動作モードの設定処理の流れは、後に図４の参照により詳細に説明する。
【００５８】
図４の参照により、第２実施形態にかかる通信装置がデータの受信処理を実行する際のサブシステムにおける動作モードの設定処理の流れを説明する。本処理は、通信装置においてデータ受信を行うようなアプリケーションが起動している場合のデータ処理である。データ通信（データ受信）中に使用する通信規格と、メインシステム１０１におけるペイロードの処理速度（処理能力）に応じてサブシステム１０２の動作モードが切り替えられる。
【００５９】
ステップＳ４０１において、受信処理が開始する。ステップＳ４０２において、データ通信が開始されたか否かが判定される。メインシステム１０１で起動しているアプリケーションの指示に従って、サブシステム１０２がデータ受信を行うための通信接続処理を開始する。サブシステム１０２において、データ通信が開始されれば（Ｓ４０２−Ｙｅｓ）、処理はステップＳ４０３に進められ、データ通信が開始されなければ（Ｓ４０２−Ｎｏ）、データ通信開始待ちの状態で待機する。その後、データ通信（データ受信）が可能となったら、プロセッサ間通信部１１７によってメインシステム１０１に通知される。
【００６０】
ステップＳ４０３において、サブシステム１０２において、使用されている通信規格が検出され、その検出結果が共通メモリ１０９に格納される。サブシステム状態検出部１１１は、有線通信コントローラ１１４や無線通信コントローラ１１５の内部レジスタにアクセスしてアクティブ状態か否か、使用している通信規格は何かを示す内容を読取る。その後、サブシステム状態検出部１１１は、検出された通信規格等の情報を共通メモリ１０９の内部に書込む。
【００６１】
ステップＳ４０４において、サブシステム１０２が通信パケットからヘッダ情報等を取り除いてペイロードを抽出する準備が完了（サブシステム受信準備完了）しているかどうかを判定する。サブシステム１０２の受信準備が完了していると判定される場合（Ｓ４０４−Ｙｅｓ）、処理はステップＳ４０５に進められ、サブシステム１０２の受信準備が完了していないと判定される場合（Ｓ４０４−Ｎｏ）、受信準備の完了待ちの状態となる。
【００６２】
ステップＳ４０５において、サブシステム１０２が、通信相手から受信した通信パケットからヘッダ等の情報を取り除いて、ペイロードを抽出する。本処理は、例えば、有線通信コントローラ１１４あるいは無線通信コントローラ１１５を経由して、通信相手から受信した通信パケットの１単位毎の処理として実行される。抽出されたペイロードは、共通メモリ１０９上の所定の記憶領域に書込まれる。
【００６３】
ステップＳ４０６において、通信パケットから抽出されたペイロードをメインシステム１０１が処理することが可能か否かが判定される。ペイロードの処理が可能であると判定された場合（Ｓ４０６−Ｙｅｓ）、処理はステップＳ４０８に進められる。一方、ペイロードの処理が可能でないと判定された場合（Ｓ４０６−Ｎｏ）、処理はステップＳ４０７に進められる。ここで、「ペイロードの処理が可能」とは、例えば、メインシステム１０１側で、通信パケットから抽出されたペイロードの受け取り準備が完了している場合、あるいはペイロードを処理用バッファメモリ等に格納可能な状態をいう。
【００６４】
ステップＳ４０７において、サブシステム１０２が通信パケットからヘッダ情報等を取り除いてペイロードを抽出する準備が完了（サブシステム受信準備完了）しているかどうかを判定する。サブシステム１０２の受信準備が完了していると判定される場合（Ｓ４０７−Ｙｅｓ）、処理はステップＳ４０５に進められ、サブシステムの受信準備が完了していないと判定される場合（Ｓ４０７−Ｎｏ）、処理はステップＳ４０６に戻される。
【００６５】
ペイロードの処理が可能であると判定された場合（Ｓ４０６−Ｙｅｓ）、処理はステップＳ４０８に進められる。ステップＳ４０８において、メインシステム状態検出部１０５が、タイマー１１８を起動させる。メインシステム状態検出部１０５は、メインプロセッサ１０４から内部の所定レジスタに所定値が書込まれることでタイマー１１８を起動させる。
【００６６】
ステップＳ４０９において、アプリケーションが起動しているメインシステム１０１において、メインプロセッサ１０４の制御の下、サブシステム１０２から受け取ったペイロードに対して所望の信号処理が実行される。このときのペイロードのサイズは、データ通信を行うために使用される通信プロトコルに応じて、１単位分の通信パケットから抽出されたペイロードのサイズとなる。ペイロードはメインプロセッサ１０４が共通メモリ１０９上の所定の記憶領域からペイロードを読取ることからスタートする。
【００６７】
ステップＳ４１０において、メインシステム状態検出部１０５が、タイマー１１８を停止させ、１単位分のペイロード処理能力を算出し、算出結果を共通メモリ１０９へ書込む。メインシステム状態検出部１０５は、メインプロセッサ１０４から内部の所定レジスタに所定値が書込まれると、タイマー１１８を停止させる。そして、メインシステム状態検出部１０５は、タイマー１１８から停止した時点における計測値（タイマー値）を取得することによって、ステップＳ４０９で実行されたペイロード処理に要した処理時間を算出する。その後、既にメインプロセッサ１０４から通知済みのペイロードのサイズと処理時間とから１単位分の通信パケットから抽出したペイロードの処理速度（処理能力）を算出する。メインシステム状態検出部１０５は、算出された処理速度（処理能力）を共通メモリ１０９の内部に書込む。ここで、共通メモリ１０９内部の記憶領域のアドレス情報は、プロセッサ間通信部１１７を使用して、予めメインプロセッサ１０４からメインシステム状態検出部１０５に通知されている。
【００６８】
ステップＳ４１１において、メインシステム１０１におけるペイロードの処理速度とサブシステム１０２で使用している通信規格の情報が取得される。サブシステム状態検出部１１１は、プロセッサ間通信部１１７を使用して通知されたアドレス情報を用いて共通メモリ１０９に書込まれている最新のペイロードの処理速度と、サブシステム１０２で使用している通信規格の情報を読取る。
【００６９】
ステップＳ４１２で、モード選択制御部１１３はペイロードの処理能力及び通信規格の情報と、モード選択制御部１１３の内部に予め記憶されているルックアップテーブルとを比較して、サブシステム１０２の動作モードを選択する。
【００７０】
ステップＳ４１３で、先のステップＳ４１２で選択された動作モードにしたがって、サブシステム１０２の動作モードが設定される。サブプロセッサ１１０の制御によって、モード選択制御部１１３が選択した動作モードに対応するシステムクロックが出力される。
【００７１】
ステップＳ４１４において、サブシステム１０２における通信が終了したか否かが判断される。サブシステム１０２においてデータ送信の終了を示す信号が検出されれば（Ｓ４１４−Ｙｅｓ）、データ通信は終了する（Ｓ４１５）。一方、データ送信の終了を示す信号が検出されなければ、処理はステップＳ４０３に進められ、同様の処理が繰り返される。
【００７２】
本実施形態によれば、送信用のデータのデータ処理能力、受信されたデータの処理能力、および通信種別に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能になる。
【００７３】
（第３実施形態）
図１（ａ）の参照により第３実施形態にかかる通信装置を説明する。通信装置のサブシステム１０２は、有線通信コントローラ１１４または無線通信コントローラ１１５を経由して通信相手とＴＣＰ/ＩＰプロトコルを使用してデータ通信を行う機能を有している。そして、ネットワークアドレス（例えば、ＩＰアドレスが含まれ、以下ネットワークアドレスを「ＩＰアドレス」と表記する）とポート番号の組み合わせで表現されるソケットを使用して、通信相手と、通信に使用するアプリケーションと、を特定して接続を行う。通信相手の選択や決定は、メインシステム１０１で起動しているアプリケーションによって行われる。従って、通信相手を特定するソケット情報の管理はメインシステム１０１によって行われる。
【００７４】
図５（ａ）は、ソケット情報と、通信装置で実行されるアプリケーションによって要求されるスループット（要求スループット）との対応関係を示す図である。ＩＰアドレスによって通信相手が特定される。ポート番号により、通信相手とデータ通信を行うためのアプリケーションが特定される。同じ通信相手（ＩＰアドレス）であっても使用するポート番号（使用するアプリケーション）によって、アプリケーションが要求するスループットは異なる。例えば、ソケット１は、ＩＰアドレス１とポート番号１の組み合わせで構成されており、要求スループットは１０Ｍｂｐｓ以下であることを示している。ソケット１を使用する場合は、例えば、制御コマンドの送受信のようなアプリケーションであるため、要求スループットが１０Ｍｂｐｓ以下で充分であることを示している。同様にソケット２は、ＩＰアドレス２とポート番号２の組み合わせで構成され、要求スループットが１０〜５０Ｍｂｐｓ程度であるアプリケーションで使用されることを示している。また、ソケット３では、ＩＰアドレスはソケット１と同じであるが、ポート番号が異なる。この場合、ソケット１と同じ通信相手であるが、映像データのストリーミング転送のようにアプリケーションが要求するスループットがソケット１の場合よりも高いことを示している。ソケット４についても同様であり、ＩＰアドレスはソケット２の場合と同じであるが、ポート番号が異なる。この場合、ソケット２の場合と同じ通信相手であるが、ポート番号４により特定されるアプリケーションが要求するスループットが、ポート番号２で特定されるアプリケーションのスループットよりも高いことを示している。
【００７５】
通信装置のメインプロセッサ１０４は、ソケット情報を共通メモリ１０９の所定の記憶領域に格納する。共通メモリ１０９の記憶領域には、ＩＰアドレスと、ポート番号と、要求スループットとが関連付けられた状態で格納されている。メインプロセッサ１０４は、新規のソケット情報を共通メモリ１０９の記憶領域に追加し、既に格納されているソケット情報の内容に関して変更が生じた場合は、既存のソケット情報の内容を更新する。
【００７６】
図５（ｂ）は、メインシステム１０１において要求される通信のスループット（要求スループット）と、使用している通信規格と、をパラメータとしてサブシステム１０２の動作モードを選択するためのルックアップテーブルである。メインシステム１０１で実行しているアプリケーションが要求するスループット値を行パラメータとし、サブシステム１０２で使用している通信規格を列パラメータとして、動作モードが決定される。省電力レベル１から省電力レベル４は、サブシステム１０２の動作モードにおいて電力消費レベルが低い動作モード（省電力レベル１に対応）から高い動作モード（省電力レベル４）を示している。モード選択制御部１１３には予め図５（ｂ）に示すようなルックアップテーブルが記憶されている。
【００７７】
次に、図６の参照により、第３実施形態の通信装置におけるサブシステム１０２の動作モードを設定するための処理の流れを説明する。ステップＳ６０１において、処理が開始する。この段階では、図１（ａ）に示す通信装置は起動状態であり、これからサブシステム１０２を使用したデータ通信が始まろうとしている状態である。
【００７８】
ステップＳ６０２において、サブシステム１０２においてデータ通信が開始されたか否かが判定される。メインシステム１０１で起動しているアプリケーションの指示に従って、サブシステム１０２がデータ送信を行うための通信接続処理を開始する。サブシステム１０２において、データ通信が開始されれば（Ｓ６０２−Ｙｅｓ）、処理はステップＳ６０３に進められ、データ通信が開始されなければ（Ｓ６０２−Ｎｏ）、データ通信開始待ちの状態で待機する。その後、データ通信が可能となったら、プロセッサ間通信部１１７によってメインシステム１０１に通知される。
【００７９】
ステップＳ６０３において、メインプロセッサ１０４は、メインシステム１０１で実行されるアプリケーション、通信相手（ＩＰアドレス）、アプリケーションの要求スループットをソケット情報として共通メモリ１０９に格納する。そして、メインプロセッサ１０４は、プロセッサ間通信部１１７を使用してサブプロセッサ１１０に共通メモリ１０９内の記憶領域を示すアドレス情報を通知する。
【００８０】
ステップＳ６０４において、サブシステム１０２のサブプロセッサ１１０は、メインプロセッサ１０４から通知されたアドレス情報を用いて、先のステップＳ６０３で格納されたソケット情報を共通メモリ１０９から取得する。
【００８１】
ステップＳ６０５において、サブシステム状態検出部１１１は、有線通信コントローラ１１４や無線通信コントローラ１１５の内部レジスタにアクセスしてアクティブ状態か否か、現在使用している通信規格は何かを示す内容を読取る。ここで読取られた通信規格の情報は共通メモリ１０９に書込まれる。
【００８２】
ステップＳ６０６において、先のステップＳ６０４で取得されたソケット情報と、ステップ６０５で取得された通信規格の情報と、モード選択制御部１１３に予め記憶されているルックアップテーブル（図５（ｂ））とを比較する。モード選択制御部１１３は、比較結果に従いルックアップテーブルの行パラメータと、列パラメータと、に対応するサブシステム１０２の省電力レベルを選択する。ステップＳ６０７において、先のステップＳ６０６で選択された省電力レベルがサブシステム１０２の動作モードとして設定される。
【００８３】
ステップＳ６０８において、通信の終了するか否かが判定される。サブシステム１０２によってデータ通信の終了が検出されれば（Ｓ６０８−Ｙｅｓ）、処理をステップＳ６１０に進め、終了する。データ通信の終了が検出されなければ（Ｓ６０８−Ｎｏ）、処理はステップＳ６０９に進められる。ステップＳ６０９では、サブプロセッサ１１０によって一定時間の測定が行われ、一定時間が経過したと判定された場合（Ｓ６０９−Ｙｅｓ）、処理はステップＳ６０３に戻され、同様の処理が繰り返される。一方、一定時間が経過していないと判定された場合（Ｓ６０９−Ｎｏ）、一定時間の経過待ちの状態となる。通信開始（Ｓ６０２−Ｙｅｓ）によりタイマー１１８が起動され、時間の計測が始まる。通信開始からの時間経過は、サブシステム１０２において、タイマー１１８から時間情報を取得して時間の経過を測定し、その結果が一定の値（所定の経過時間）を超えたかどうかで判定される。例えば、経過時間は数十ｍＳ（ミリ秒）〜数Ｓ（秒）に設定することが可能である。ステップＳ６０８において、通信状態が継続していれば、ステップＳ６０３〜６０７の処理により所定の経過時間を単位として（一定周期）、サブシステム１０２の最適な動作モードを選択することが可能になる。
【００８４】
本実施形態によれば、使用するアプリケーション、通信相手により要求されるスループット、通信種別などの条件に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能になる。
【００８５】
（第４実施形態）
図１（ａ）の参照により第４実施形態にかかる通信装置を説明する。サブシステム１０２は、無線通信コントローラ１１５を経由して通信相手と無線ＬＡＮの規格を使用してデータ通信を行う機能を有している。そして、転送するデータ種別毎に優先順位を設定して優先順位の高いデータ種別が優先的に送信機会を与えられるようなＱｏＳ制御を行う。ここで、ＱｏＳ制御とは、ＩＥＥＥ８０２．１１ｅに規定のＱｏＳ制御を示しており、送信データの優先順位はアクセスカテゴリとして定義される。
【００８６】
図７（ａ）は、実際のデータ通信により求められる実効スループットと、転送するデータのアクセスカテゴリとをパラメータとしてサブシステム１０２の動作モードを選択するためのルックアップテーブルである。サブシステム１０２によって測定された実効スループットの値を行パラメータとし、サブシステム１０２から送信するデータに設定されているアクセスカテゴリを列パラメータとしてサブシステムの動作モードが決定される。ルックアップテーブルの省電力レベル１から４は、サブシステム１０２の動作モードにおいて電力消費レベルが低い動作モード（省電力レベル１に対応）から高い動作モード（省電力レベル４に対応）を示している。モード選択制御部１１３には予め図７（ａ）に示すような図７（ａ）のルックアップテーブルが記憶されている。
【００８７】
図７（ａ）において、アクセスカテゴリが設定されていない場合（設定無し）は、測定された実効スループットが増加するにしたがって省電力レベルも１から２、２から３、３から４へと切り替えられる。これに対して、アクセスカテゴリ設定されている場合は、測定された実効スループットと、設定されているアクセスカテゴリと、に対応する省電力レベルが選択される。
【００８８】
次に、サブシステム１０２における実効スループットの測定方法を説明する。サブシステム状態検出部１１１は、通信プロトコルに基づき、ヘッダ情報を付加するような通信パケットの生成処理をサブプロセッサ１１０が開始したタイミングでタイマー１１８を起動させる。そして、サブシステム状態検出部１１１は、次の通信パケット、或は複数個後の通信パケットの生成処理をサブプロセッサ１１０が実行可能となったタイミングで、タイマー１１８を停止させる。サブシステム状態検出部１１１は、タイマー１１８の計測値（タイマー値）を読取り、タイマー１１８をリセットする。サブシステム状態検出部１１１は、タイマー１１８が計測中における通信パケットの情報量と、タイマー値とからデータ送信における実効スループットを算出する。
【００８９】
通信装置のメインプロセッサ１０４は、メインシステム１０１で実行されているアプリケーションが生成した送信対象となるデータ（送信データ）のアクセスカテゴリを共通メモリ１０９の所定の記憶領域に格納する。そして、メインシステム１０１からサブシステム１０２へ送信データが引き渡される時にデータ種別情報としてアクセスカテゴリ情報も引き渡される。サブシステム１０２では、送信データとアクセスカテゴリとを受け取って、アクセスカテゴリに準じた通信パケットを生成し、生成された通信パケットは無線通信コントローラ１１５を経由して通信相手に送信される。
【００９０】
次に、図７（ｂ）の参照により、第４実施形態の通信装置におけるサブシステム１０２の動作モードを設定するための処理の流れを説明する。ステップＳ７０１において、処理が開始する。この段階では、図１（ａ）に示す通信装置は起動状態であり、これからサブシステム１０２を使用したデータ通信が始まろうとしている状態である。
【００９１】
ステップＳ７０２において、サブシステム１０２においてデータ通信が開始されたか否かが判定される。メインシステム１０１で起動しているアプリケーションの指示に従って、サブシステム１０２がデータ送信を行うための通信接続処理を開始する。サブシステム１０２において、データ通信が開始されれば（Ｓ７０２−Ｙｅｓ）、処理はステップＳ７０３に進められ、データ通信が開始されなければ（Ｓ７０２−Ｎｏ）、データ通信開始待ちの状態で待機する。その後、データ通信が可能となったら、プロセッサ間通信部１１７によってメインシステム１０１に通知される。
【００９２】
ステップＳ７０３において、メインプロセッサ１０４は、メインシステム１０１で起動しているアプリケーションによって生成された送信データと、送信データのアクセスカテゴリとを共通メモリ１０９の所定の記憶領域に格納する。そして、メインプロセッサ１０４は、プロセッサ間通信部１１７を使用してサブプロセッサ１１０に共通メモリ１０９内の記憶領域を示すアドレス情報を通知する。
【００９３】
ステップＳ７０４において、通知されたアドレス情報を用いてサブプロセッサ１１０が共通メモリ１０９の記憶領域にアクセスして、送信データとアクセスカテゴリとを取得する。
【００９４】
ステップＳ７０５において、サブシステム１０２のサブシステム状態検出部１１１によってデータの送信時に要した実際のスループット（実効スループット）が測定される。測定結果はサブシステム１０２の内部に一次的に保存される。ステップＳ７０６では、先のステップＳ７０５で一次的に保存された実効スループットの情報を、サブプロセッサ１１０が読取る。
【００９５】
ステップＳ７０７において、Ｓ７０４で取得された送信データ及びアクセスカテゴリと、Ｓ７０６で取得された実効スループットと、モード選択制御部１１３の内部に記憶されているルックアップテーブル（図７（ａ））と、を比較して省電力レベルを選択する。
【００９６】
ステップＳ７０８において、先のステップ７０７で選択された省電力レベルを、サブシステム１０２の動作モードとして設定する。動作モードの設定により、サブシステム１０２のシステムクロックとして、設定された動作モードに対応するクロック周波数が出力される。
【００９７】
ステップＳ７０９において、サブシステム１０２における通信が終了したか否かが判断される。サブシステム１０２においてデータ送信の終了を示す信号が検出されれば（Ｓ７０９−Ｙｅｓ）、データ通信は終了する（Ｓ７１４）。ステップＳ７１４では、サブシステム１０２によるデータ通信は終了している状態であるが、通信装置が起動状態である。一方、データ送信の終了を示す信号が検出されなければ（Ｓ７０９−Ｎｏ）、処理はステップＳ７１０に進められる。
【００９８】
ステップＳ７１０において、サブプロセッサ１１０は、所定のタイミングで共通メモリ１０９に格納されているアクセスカテゴリの情報を取得して、アクセスカテゴリの情報に変更があるか否かを判定する。アクセスカテゴリに変更がない場合（Ｓ７１０−Ｎｏ）、処理はステップＳ７１３に進められる。ステップＳ７１３では、サブプロセッサ１１０によって一定時間の測定が行われ、一定時間が経過したと判定された場合（Ｓ７１３−Ｙｅｓ）、処理はステップＳ７０５に戻され、同様の処理が繰り返される。一方、一定時間が経過していないと判定された場合（Ｓ７１３−Ｎｏ）、処理はステップＳ７０９に進められ、通信終了が判定される。通信開始（Ｓ７０２−Ｙｅｓ）によりタイマー１１８が起動され、時間の計測が始まる。通信開始からの時間経過は、サブシステム１０２において、タイマー１１８から時間情報を取得して時間の経過を測定し、その結果が一定の値（所定の経過時間）を超えたかどうかで判定される。
【００９９】
一方、ステップＳ７１０において、アクセスカテゴリの変更が有ると判定された場合（Ｓ７１０−Ｙｅｓ）、処理はステップＳ７１１に進められる。メインシステム１０１で起動しているアプリケーションが映像データストリームの送信状態からファイル転送状態へ移行した場合、アクセスカテゴリはＡＣ_ＶＩからＡＣ_ＢＥに移行する。また、映像データストリーム最中において同時に制御コマンドも送信するような場合、アクセスカテゴリはＡＣ_ＶＩからＡＣ_ＶＩ＋ＡＣ_ＢＥの２種類のアクセスカテゴリを混在して転送する状態へ移行する。例えば、上記のようなアクセスカテゴリの変化がサブプロセッサ１１０により検出された場合、サブプロセッサ１１０はアクセスカテゴリの変更が有ると判定する。
【０１００】
ステップＳ７１１において、メインプロセッサ１０４は、メインシステム１０１で起動しているアプリケーションによって生成された送信データと、変更されたアクセスカテゴリとを共通メモリ１０９の所定の記憶領域に格納する。そして、メインプロセッサ１０４は、プロセッサ間通信部１１７を使用してサブプロセッサ１１０に共通メモリ１０９内の記憶領域を示すアドレス情報を通知する。
【０１０１】
ステップＳ７１２において、通知されたアドレス情報を用いてサブプロセッサ１１０が共通メモリ１０９の記憶領域にアクセスして、送信データと変更されたアクセスカテゴリとを取得する。その後処理は、ステップＳ７０６に戻され、同様の処理が繰り返される。
【０１０２】
本実施形態によれば、アクセスカテゴリの設定や実効スループットなどの通信装置の動作状態の変化に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能になる。
【０１０３】
（第５実施形態）
図１（ａ）の参照により第５実施形態にかかる通信装置を説明する。図８（ａ）は、通信装置が通信状態にある場合、実効スループットの時間的な推移を示した図である。波形８０１は、様々な要因によって実効スループットが時間的に変動している状態を示している。実効スループットが変動する要因として、例えば、ネットワーク上で発生する輻輳によるもの、通信相手機器の受信能力や送信能力の時間的変動によるもの等がある。また、無線通信であれば、無線通信路の通信品質の低下なども実効スループットが変動する要因となっている。第一レベル８０２と第二レベル８０３はそれぞれ実効スループットの規定レベルを示しており、サブシステム１０２内で定義される。第一レベル８０２は、第二レベル８０３よりも高い値に定義される。そして、この値は、サブシステム状態検出部１１１の内部に予め設定されている。
【０１０４】
棒グラフ８０４は、サブシステム１０２がサンプリング時間（ｔ１、ｔ２、・・・ｔ３５・・・）において測定した実効スループットの測定結果を示している。
【０１０５】
次に、図８（ｂ）の参照により、第５実施形態の通信装置におけるサブシステム１０２の動作モードを設定するための処理の流れを説明する。本実施形態の処理の例として、動作クロックが最も高い周波数で動作するようなパフォーマンスの高い動作モード（省電力レベル４）でデータ転送を行っている状態で、実効スループットの変化に応じた動作モードの選択、設定手順の処理の流れを説明する。ステップＳ８０１において、処理が開始する。図１（ａ）に示す通信装置は起動状態であり、これからサブシステム１０２を使用したデータ通信が始まろうとしている状態である。
【０１０６】
ステップＳ８０２において、サブシステム１０２においてデータ通信が開始されたか否かが判定される。メインシステム１０１で起動しているアプリケーションの指示に従って、サブシステム１０２がデータ送信を行うための通信接続処理を開始する。サブシステム１０２において、データ通信が開始されれば（Ｓ８０２−Ｙｅｓ）、処理はステップＳ８０３に進められ、データ通信が開始されなければ（Ｓ８０２−Ｎｏ）、データ通信開始待ちの状態で待機する。その後、データ通信が可能となったら、プロセッサ間通信部１１７によってメインシステム１０１に通知される。ここで、サブシステム１０２の動作モードとしては、省電力レベル４の動作モードで通信処理を行うものとする。
【０１０７】
ステップＳ８０３において、サブプロセッサ１１０が共通メモリ１０９に書込まれている最新のメインシステム１０１の稼働率を示す情報を読取る。稼働率の取得方法は、第１実施形態で説明した手順と同様の手順となるので、ここでは説明を省略する。
【０１０８】
ステップＳ８０４において、サブシステム状態検出部１１１が送信データの実効スループットを測定する。サブシステム状態検出部１１１によって測定された測定結果はサブシステム１０２の内部に一次的に保存される。実効スループットの測定方法と手順は、第４実施形態で説明した手順と同様の手順となるので、ここでは説明を省略する。
【０１０９】
ステップＳ８０５では、先のステップＳ８０４で一次的に保存された実効スループットの情報を、サブプロセッサ１１０が読取る。
【０１１０】
ステップＳ８０６において、ステップＳ８０３で取得された稼働率と、ステップＳ８０５で取得された実効スループットと、を用いて図９に記載のアルゴリズムを実行してサブシステム１０２の動作モードを選択する。図９の具体的な処理の流れは、後述する。
【０１１１】
ステップＳ８０７において、先のステップＳ８０６で選択された省電力レベルを、サブシステム１０２の動作モードとして設定する。動作モードの設定により、サブシステム１０２のシステムクロックとして、設定された動作モードに対応するクロック周波数が出力される。
【０１１２】
ステップＳ８０８において、サブシステム１０２における通信が終了したか否かが判断される。サブシステム１０２においてデータ送信の終了を示す信号が検出されれば（Ｓ８０８−Ｙｅｓ）、データ通信は終了する（Ｓ８１０）。ステップＳ８１０では、サブシステム１０２によるデータ通信は終了している状態であるが、通信装置が起動状態である。一方、データ送信の終了を示す信号が検出されなければ（Ｓ８０８−Ｎｏ）、処理はステップＳ８０９に進められる。
【０１１３】
ステップＳ８０９において、サブプロセッサ１１０によって一定時間の測定が行われ、一定時間が経過したと判定された場合（Ｓ８０９−Ｙｅｓ）、処理はステップＳ８０３に戻され、同様の処理が繰り返される。一方、一定時間が経過していないと判定された場合（Ｓ８０９−Ｎｏ）、一定時間の経過待ちの状態となる。ここで、一定時間とは、図８（ａ）に示す時間のサンプリング間隔（例えば、ｔ１〜ｔ２、ｔ２〜ｔ３、・・・・ｔ３４〜ｔ３５）である。
【０１１４】
次に、図９の参照により、図８（ｂ）のステップＳ８０６で実行される処理の具体的な処理の流れを説明する。本処理は、ステップＳ８０３で取得された稼働率と、ステップＳ８０５で取得された実効スループットと、を用いて実行される。ステップＳ９０１で本処理が開始する。ステップＳ９０２において、メインシステム１０１の稼働率が８０％を超えているか否かが判断される。サブシステム１０２が、メインシステム１０１の稼働率が８０％以上であると判断した場合（Ｓ９０２−Ｙｅｓ）、処理はステップＳ９０３に進められる。メインシステム１０１の稼働率が８０％を超えている状態は、消費電力が高い状態であると想定できる。このような状態は、装置内のデバイス温度が上昇する要因でもあり、仮に規定の温度以上に上昇した場合は、デバイスの安定的な動作等を確保する必要がある。
【０１１５】
一方、ステップＳ９０２において、稼働率が８０％未満であると判断された場合（Ｓ９０２−Ｎｏ）、処理はステップＳ９１０へ進められる。ステップＳ９１０では、省電力レベルの変更を行わずに処理は終了する（Ｓ９１２）。
【０１１６】
ステップＳ９０３において、サブシステム１０２の動作モードが省電力レベル４に設定されているか否かが判断される。サブシステム１０２の動作モードが省電力レベル４に設定されていると判断された場合（Ｓ９０３−Ｙｅｓ）、処理はステップＳ９０４に進められる。一方、省電力レベル４が設定されていないと判断された場合（Ｓ９０３−Ｎｏ）、処理はステップＳ９０６に進められる。ここで、省電力レベル４は、電力消費レベルの高い動作モードに対応する省電力レベルを示している。
【０１１７】
ステップＳ９０４において、サブシステム１０２における通信の実効スループットが、予め規定してある第一レベル以上になったか否かが判断される。サブシステム１０２における通信の実効スループットが第一レベル以上であると判断された場合（Ｓ９０４−Ｙｅｓ）、処理はステップＳ９０５に進められる。第一レベル以上と判断される場合を図８（ａ）のサンプリング時間で示すと、ｔ４、ｔ７、ｔ１７、ｔ１８、ｔ１９、ｔ２０、ｔ３２のサンプリングタイミングとなる。このｔ４、ｔ７、ｔ１７、ｔ１８、ｔ１９、ｔ２０、ｔ３２の状態は、メインシステム１０１の稼働率が８０％以上で、且つサブシステム１０２実効スループットも高い状態である。この状態は装置全体として高負荷となる。
【０１１８】
一方、実効スループットが第一レベル未満であると判断された場合（Ｓ９０４−Ｎｏ）、処理はステップＳ９１０に進められる。ステップＳ９１０では、省電力レベルの変更を行わずに処理は終了する（Ｓ９１２）。
【０１１９】
ステップＳ９０５において、サブシステム１０２における通信の実効スループットが、第一レベル以上になった期間が連続で一定時間以上か否かが判断される。実効スループットが第一レベル以上になった期間が連続で一定時間以上であると判断された場合（Ｓ９０５−Ｙｅｓ）、処理はステップＳ９０９に進められ、電力消費レベルの低い動作モードに対応する省電力レベル３に変更され（Ｓ９０９）、処理を終了する。第一レベル以上になった期間が連続して一定時間以上と判断される場合を図８（ａ）のサンプリング時間で説明すると、例えば、ｔ１６からｔ２０のサンプリングタイミングとなる。ｔ１６からｔ２０のサンプリングタイミングでは、メインシステム１０１の稼働率が８０％以上で、且つサブシステム１０２実効スループットも高い状態が一定時間続いた状態である。この状態は装置全体として、高負荷による温度上昇が発生するため、例えば、省電力レベル４よりも更に電力消費の少ない省電力レベル３に動作モードを変更する。ステップＳ９０９の例では、電力消費の少ない省電力レベルとして省電力レベル３に設定変更する例を示しているが、本発明の趣旨は、この例に限定されるものではなく、例えば、省電力レベル２、あるいは省電力レベル１に変更することも可能である。
【０１２０】
ステップＳ９０６において、サブシステム１０２における動作モードが省電力レベル４から省電力レベル３へ変更されてから一定時間以上経過したか否かが判断される。一定時間以上経過したと判断された場合（Ｓ９０６−Ｙｅｓ）、処理はステップＳ９０７に進められる。ここで、動作モードが変更されてから一定時間以上経過したと判断される場合を図８（ａ）のサンプリング時間で示すと、例えば、ｔ２５以降のサンプリングタイミングが該当する。ｔ２０のタイミングで動作モードが切り替えられているとする。ｔ２１からｔ２４までの期間を一定期間とすると、一定期間以上に該当するサンプリングタイミングは、ｔ２５以降となる。
【０１２１】
ステップＳ９０６の判断で、一定期間以上経過していないと判断された場合（Ｓ９０６−Ｎｏ）、処理はステップＳ９１０に進められる。ステップＳ９１０では、省電力レベルの変更を行わずに処理は終了する（Ｓ９１２）。例えば、省電力レベル３の設定が維持される。
【０１２２】
ステップＳ９０７において、サブシステム１０２における通信の実効スループットが、予め規定してある第二レベル８０３以上になったかどうか否かが判断される。実効スループットが第二レベル８０３以上であると判断された場合（Ｓ９０７−Ｙｅｓ）、処理はステップＳ９０８に進められる。第二レベル８０３以上と判断される場合を図８（ａ）のサンプリング時間で示すと、ｔ２５、ｔ２７〜ｔ３５のサンプリングタイミングとなる。ｔ２５、ｔ２７〜ｔ３５のサンプリングタイミングでは、省電力レベル４から省電力レベル３に変更された後、一定時間経過後で、第二レベル８０３の実効スループット以上になったサンプリングタイミングである。
【０１２３】
ステップＳ９０７において、実効スループットが第二レベル以上でないと判断された場合（Ｓ９０７−Ｎｏ）、処理はステップＳ９１０に進められる。ステップＳ９１０では、省電力レベルの変更を行わずに処理は終了する（Ｓ９１２）。例えば、省電力レベル３の設定が維持される。
【０１２４】
ステップＳ９０８において、サブシステム１０２における通信の実効スループットが、第二レベル８０３以上になった期間が連続で一定時間以上か否かが判断される。第二レベル８０３以上になった期間が連続で一定時間以上であると判断された場合（Ｓ９０８−Ｙｅｓ）、処理はステップＳ９１１に進められる。第二レベル以上になった期間が連続で一定時間以上と判断される場合を図８（ａ）のサンプリング時間の参照により説明する。ｔ２０のサンプリングタイミングで動作モードが省電力レベル３に変更されるとする。その後、一定時間（例えば、ｔ２１からｔ２４までの期間）経過後に、第二レベル以上が一定期間（例えば、ｔ２７からｔ２９までのサンプリング期間に対応する期間）以上となった場合、処理はステップＳ９１１に進められる。
【０１２５】
一方、ステップＳ９０８において、第二レベル８０３以上になった期間が連続で一定時間以上でないと判断される場合（Ｓ９０８−Ｎｏ）、処理はステップＳ９１０に進められる。ステップＳ９１０では、省電力レベルの変更を行わずに処理は終了する（Ｓ９１２）。例えば、例えば、ｔ２７からｔ２９においては、省電力レベル３の設定が維持される。
【０１２６】
ステップＳ９１１において、サブシステム１０２の動作モードを省電力レベル３から省電力レベル４に設定変更を行う。動作モードを省電力レベル３から省電力レベル４に変化させることは、サブシステム１０２のシステムクロックを上昇させて通信処理能力を高めることを意味する。図８（ａ）のサンプリング時間で示すと、ｔ２９の直後、すなわちｔ３０のサンプリングタイミングで、動作モードが省電力レベル３から省電力レベル４に設定変更され、処理は終了する（Ｓ９１２）。ステップＳ９１２において、本処理（図８（ｂ）のステップＳ８０６）は終了し、処理は図８（ｂ）のステップＳ８０７に進められる。
【０１２７】
本実施形態によれば、稼働率や実効スループットなどの通信装置の動作状態の変化に応じて、電力消費レベルを制御するための適切な動作モードを設定して、データ通信を行うことが可能になる。
【０１２８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005543241.tif 000002
【図２】
0005543241.tif 000003
【図３】
0005543241.tif 000004
【図４】
0005543241.tif 000005
【図５】
0005543241.tif 000006
【図６】
0005543241.tif 000007
【図７】
0005543241.tif 000008
【図８】
0005543241.tif 000009
【図９】
0005543241.tif 000010