(57)【要約】      （修正有）【課題】ＣＰＵの動作周波数を制御して、通信のスループットを低下させることなく、消費電力を抑制することができる携帯端末装置の制御方法を提供する。【解決手段】通信に関連する処理を実行するＣＰＵを有する携帯端末装置の制御方法に於いて、前記ＣＰＵの動作周波数を変化させ、前記動作周波数の変化後に無線回線の通信量に変化が生じたかどうかを判断し、前記通信量に変化が生じたかどうかの判断結果に基づき、前記ＣＰＵの動作周波数を決定する、携帯端末装置の制御方法。【選択図】図６
2014063398.tif 000002
【特許請求の範囲】
【請求項１】
通信に関連する処理を実行するＣＰＵ有する携帯端末装置の制御方法に於いて、
前記ＣＰＵの動作周波数を変化させ、
前記動作周波数の変化後に無線回線の通信量に変化が生じたかどうかを判断し、
前記通信量に変化が生じたかどうかの判断結果に基づき、前記ＣＰＵの動作周波数を決定する、携帯端末装置の制御方法。
【請求項２】
請求項１に記載の携帯端末装置の制御方法に於いて、
前記ＣＰＵの動作周波数を上昇させ、
前記動作周波数の上昇後に前記通信量が増加した場合、前記ＣＰＵの動作周波数を、前記上昇前の動作周波数よりも高い動作周波数に設定する、携帯端末装置の制御方法。
【請求項３】
請求項２に記載の携帯端末装置の制御方法に於いて、
前記ＣＰＵの動作周波数を上昇させ、
前記動作周波数の上昇後に前記通信量が増加しない場合、前記ＣＰＵの動作周波数を、前記上昇前の動作周波数、もしくは、前記上昇前の動作周波数よりも低い動作周波数に設定する、携帯端末装置の制御方法。
【請求項４】
請求項１乃至３の何れかに記載の携帯端末装置の制御方法に於いて、
前記ＣＰＵの動作周波数を低下させ、
前記動作周波数の低下後に前記通信量が減少しない場合、前記ＣＰＵの動作周波数を、前記低下前の動作周波数よりも低い動作周波数に設定する、携帯端末装置の制御方法。
【請求項５】
請求項４に記載の携帯端末装置の制御方法に於いて、
前記ＣＰＵの動作周波数を低下させ、
前記動作周波数の低下後に前記通信量が減少した場合、前記ＣＰＵの動作周波数を、前記低下前の動作周波数、もしくは、前記低下前の動作周波数よりも高い動作周波数に設定する、携帯端末装置の制御方法。
【請求項６】
請求項１乃至５の何れかに記載の携帯端末装置の制御方法に於いて、さらに、
前記ＣＰＵの利用率に基づき、前記ＣＰＵの動作周波数を変化させるかどうかを判断する、携帯端末装置の制御方法。
【請求項７】
請求項１乃至６の何れかに記載の携帯端末装置の制御方法に於いて、さらに、
前記動作周波数の変更前の通信量が増加している場合に、前記動作周波数の上限値を上昇させる、携帯端末装置の制御方法。
【請求項８】
請求項７に記載の携帯端末装置の制御方法に於いて、さらに、
前記動作周波数の変更前の通信量が増加している場合に、前記動作周波数の上限値を、前記ＣＰＵの動作周波数の最大値まで上昇させる、携帯端末装置の制御方法。
【請求項９】
請求項１乃至８の何れかに記載の携帯端末装置の制御方法に於いて、
前記ＣＰＵは、前記通信に関連する処理の他に、通信に関連しない処理を実行する、携帯端末装置の制御方法。
【請求項１０】
通信に関連するアプリを実行するＣＰＵを有する携帯端末装置に於いて、
前記ＣＰＵの動作周波数を変化させ、
前記動作周波数の変化後に無線回線の通信量に変化が生じたかどうかを判断する判断部と、
前記通信量に変化が生じたかどうかの判断結果に基づき、前記ＣＰＵの動作周波数を決定する制御部と、
を備える携帯端末装置。
【請求項１１】
通信に関連するアプリを実行するＣＰＵを有する携帯端末装置の制御プログラムに於いて、
前記制御プログラムは、前記携帯端末装置に、
前記ＣＰＵの動作周波数を変化させ、
前記動作周波数の変化後に無線回線の通信量に変化が生じたかどうかを判断し、
前記通信量に変化が生じたかどうかの判断結果に基づき、前記ＣＰＵの動作周波数を決定する、制御プログラム。
【請求項１２】
通信に関連するアプリをＯＳカーネル上で実行するＣＰＵを備える携帯端末装置の制御方法に於いて、
前記通信に関連するアプリの実行によるＣＰＵ負荷と、前記通信に関連するアプリに付随する前記ＯＳカーネルの実行によるＣＰＵ負荷と、前記携帯端末装置の通信可能な帯域幅と、に基づき、前記ＣＰＵの動作周波数を決定する、携帯端末装置の制御方法。
【請求項１３】
請求項１２に記載の携帯端末装置の制御方法に於いて、
前記通信に関連するアプリの実行によるＣＰＵ負荷と、前記通信に関連するアプリに付随する前記ＯＳカーネルの実行によるＣＰＵ負荷と、の合計に基づき、前記通信に関連するアプリによる無線回線の通信量の理論最大値を算出し、
前記携帯端末装置の通信可能な帯域幅と、前記通信量の理論最大値と、の比較結果に基づき、前記ＣＰＵの動作周波数を決定する、携帯端末装置の制御方法。
【請求項１４】
請求項１３に記載の携帯端末装置の制御方法に於いて、
前記携帯端末装置の通信可能な帯域幅が前記通信量の理論最大値よりも大きい場合、前記ＣＰＵの動作周波数を上昇させる、携帯端末装置の制御方法。
【請求項１５】
請求項１３に記載の携帯端末装置の制御方法に於いて、
前記携帯端末装置の通信可能な帯域幅が前記通信量の理論最大値よりも小さい場合、前記ＣＰＵの動作周波数を低下させる、携帯端末装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、携帯端末装置の制御方法、制御プログラム、携帯端末装置に関する。
【背景技術】
【０００２】
近年、携帯端末装置は、複数のアプリケーションプログラムを同時に実行させることが出来るようになり、例えばバックグラウンドで動作する音楽再生アプリにより音楽を再生しながら、フォアグラウンドで動作する天気アプリにより天気予報を確認する、などの「…しながら、〜をする」という利用シーンが拡大しつつある。これに伴い、携帯端末装置の消費電力も増加しており、消費電力の削減が重要な課題となりつつある。
【０００３】
以上のような背景から、ＣＰＵの処理負荷に応じて、ＣＰＵの動作周波数の上限値及び下限値の範囲でＣＰＵの動作周波数を動的に制御し、消費電力を削減する仕組みが開発されている。本仕組みでは、例えば、ＣＰＵの処理負荷が低下した場合、ＣＰＵの動作周波数が自動的に低下し、逆にＣＰＵの処理負荷が上昇した場合、ＣＰＵの動作周波数が自動的に上昇する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１−２９２４１６号公報
【特許文献２】特開２０１０−３９７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、携帯端末装置が通信を実施している最中に、ＣＰＵの処理能力が不足してしまい、通信のスループットが充分に上がらないことがある。通信のスループットが充分に上がらないと、通信に寄与するデバイスの稼働時間が長くなり、結果として、携帯端末装置の消費電力が増加することがある。
【０００６】
このため、携帯端末装置が通信を実施している場合に、ＣＰＵの動作周波数の上限値を上昇させて、ＣＰＵの処理能力が通信のボトルネックとなることを回避しても良い。
【０００７】
ところが、携帯端末装置が通信を実施している事実だけをもって、ＣＰＵの動作周波数の上限値を上昇させても、通信のスループットが充分に上昇しないことがある。例えば、ＣＰＵが通信に関係しない他のアプリを実行している場合や、通信相手のサーバや基幹ネットワークの都合で通信のスループットが抑制されている場合、ＣＰＵの動作周波数の上限値を上昇させても、通信のスループットが上昇せず、かえって携帯端末装置の消費電力を増加させることもある。
【０００８】
開示の技術によれば、ＣＰＵの動作周波数を制御して、通信のスループットを低下させることなく、消費電力を抑制することができる携帯端末装置の制御方法、制御プログラム、携帯端末装置を提供する。
【課題を解決するための手段】
【０００９】
開示の技術の一観点によれば、通信に関連する処理を実行するＣＰＵを有する携帯端末装置の制御方法に於いて、前記ＣＰＵの動作周波数を変化させ、前記動作周波数の変化後に無線回線の通信量に変化が生じたかどうかを判断し、前記通信量に変化が生じたかどうかの判断結果に基づき、前記ＣＰＵの動作周波数を決定する、携帯端末装置の制御方法が提供される。
【発明の効果】
【００１０】
本開示の技術の一観点によれば、ＣＰＵの動作周波数を制御して、通信のスループットを低下させることなく、消費電力を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態にかかる携帯端末装置のハードウェア構成の概略図である。
【図２】第１の実施形態にかかる携帯端末装置の機能ブロックの概略図である。
【図３】第１の実施形態にかかるＣＰＵ動作周波数上限制御処理のフローチャートである。
【図４】第１の実施形態にかかる通信量の遷移グラフである。
【図５】第１の実施形態にかかる「安定化待機モード」のフローチャートである。
【図６】第１の実施形態にかかる「サーチモード」のフローチャートである。
【図７】第１の実施形態にかかるＣＰＵ動作周波数上限制御処理の状態遷移図である。
【図８】第２の実施形態にかかるＣＰＵ動作周波数上限制御処理のフローチャートである。
【図９】第２の実施形態にかかる「制御モード」のフローチャートである。
【図１０】第２の実施形態にかかる「増加モード」のフローチャートである。
【図１１】第２の実施形態にかかるＣＰＵの動作周波数の上限値の遷移グラフである。
【図１２】第２の実施形態にかかる「減少モード」のフローチャートである。
【図１３】第３の実施形態にかかる「増加モード」のフローチャートである。
【図１４】第３実施形態にかかるＣＰＵの動作周波数の上限値の遷移グラフである。
【図１５】第４の実施形態にかかるＣＰＵの動作周波数の遷移グラフである。
【図１６】第４の実施形態にかかる携帯端末装置の機能ブロックの概略図である。
【図１７】第５の実施形態にかかるＣＰＵの動作周波数の遷移グラフである。
【図１８】第５の実施形態にかかる携帯端末装置の機能ブロックの概略図である。
【図１９】第５の実施形態の変形例にかかる携帯端末装置の機能ブロックの概略図である。
【図２０】第６の実施形態にかかる携帯端末装置の機能ブロックの概略図である。
【図２１】第７の実施形態にかかる携帯端末装置の機能ブロックの概略図である。
【図２２】第８の実施形態にかかる携帯端末装置の機能ブロックの概略図である。
【図２３】第８の実施形態にかかるＣＰＵ動作周波数上限制御処理のフローチャートである。
【発明を実施するための形態】
【００１２】
［第１の実施形態］
以下、図１〜図７を参照して、第１の実施形態を説明する。
【００１３】
［携帯端末装置１００］
第１の実施形態にかかる携帯端末装置１００を説明する。ここでは、携帯端末装置１００に搭載するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として、Ａｎｄｒｏｉｄ（登録商標）を採用する。但し、本発明の態様は、これに限定されるものではなく、Ａｎｄｒｏｉｄ以外のＯＳを採用しても良い。又、本実施形態にかかる携帯端末装置１００は、特に限定されるものではないが、例えばスマートフォンやタブレットＰＣなどの携帯型の情報処理装置を想定する。
【００１４】
［携帯端末装置１００のハードウェア］
図１は、第１の実施形態にかかる携帯端末装置１００のハードウェア構成の概略図である。
【００１５】
図１に示すように、本実施形態にかかる携帯端末装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メインメモリ１０２、補助メモリ１０３、クロック供給回路１０４、電圧供給回路１０５、バッテリ１０６、電源回路１０７、外部給電部１０８、ディスプレイ１０９、タッチスクリーン１１０、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１１１、ブルートゥースＩ／Ｆ（Ｉｎｔｅｒｅｆａｃｅ）１１２、センサ１１３、をハードウェアモジュールとして備える。これらのハードウェアモジュールは、バス１１６により相互接続されている。
【００１６】
ＣＰＵ１０１は、ベースバンドＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ）ではなく、アプリケーションプログラムを実行するプロセッサを想定している。ＣＰＵ１０１は、クロック供給回路１０４から供給されるクロック信号及び電圧供給回路１０５から供給される電圧により動作して、携帯端末装置１００の各種ハードウェアモジュールを制御する。ＣＰＵ１０１は、複数の動作周波数の設定値を備え、このうち、指定される何れかの動作周波数で動作する。さらに、ＣＰＵ１０１は、補助メモリ１０３に格納された各種プログラムをメインメモリ１０２に読み出すとともに、該メインメモリ１０２に読み出した各種プログラムを実行することで、各種機能を実現する。各種機能の詳細は、後述することとする。
【００１７】
メインメモリ１０２は、ＣＰＵ１０１により実行される各種プログラムを格納する。さらに、メインメモリ１０２は、ＣＰＵ１０１のワークエリアとして使用され、ＣＰＵ１０１による処理に必要な各種データを記憶する。メインメモリ１０２としては、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを用いても良い。
【００１８】
補助メモリ１０３は、携帯端末装置１００を動作させる各種プログラムを格納している。各種プログラムとしては、例えば、携帯端末装置１００により実行されるアプリケーションプログラムのほか、アプリケーションプログラムの実行環境であるＯＳ１０００などがある。本実施形態にかかる制御プログラム１１００も補助メモリ１０３に格納されている。補助メモリ１０３としては、例えば、ハードディスクやフラッシュメモリ等の不揮発メモリを用いても良い。
【００１９】
クロック供給回路１０４は、ＣＰＵ１０１に供給するためのクロック信号を生成する。クロック供給回路１０４は、例えばクロック信号を発振する水晶振動子と、ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）と、により実現しても良い。
【００２０】
電圧供給回路１０５は、電源回路１０７から供給される電力に基づき、ＣＰＵ１０１に供給するための可変電圧を生成する。電圧供給回路１０５は、ボルテージディテクタと、ボルテージレギュレータと、により実現しても良い。
【００２１】
バッテリ１０６は、電源回路１０７に電力を供給する。バッテリ１０６は、例えばリチウムイオン電池等の電池と、電池保護ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と、により実現しても良い。
【００２２】
電源回路１０７は、バッテリ１０６から供給される電力を、電源線（図示しない）を介して、携帯端末装置１００の各種ハードウェアモジュールに供給する。なお、外部給電部１０８に外部電源（図示しない）が接続されている場合、電源回路１０７は、外部給電部１０８から供給される電力を、携帯端末装置１００の各種ハードウェアモジュールに供給しても良い。電源回路１０７は、例えばスイッチングレギュレータと、ボルテージレギュレータと、により実現しても良い。
【００２３】
ディスプレイ１０９は、ＣＰＵ１０１により制御され、ユーザに提示する画像情報を表示する。タッチスクリーン１１０は、ディスプレイ１０９に貼り付けられ、ユーザの指先やペン先などで接触された位置情報を入力する。本実施形態では、タッチスクリーン１１０を、ユーザ操作の為の位置入力デバイスとして使用する。
【００２４】
ネットワークＩ／Ｆ１１１は、ＣＰＵ１０１により制御され、例えばＧＰＳ（Ｇｒｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などによる通信のインターフェースとして機能する。
【００２５】
センサ１１３は、携帯端末装置１００の状態情報を取得する。センサ１１３としては、例えば、加速度センサ、ジャイロセンサ、照度センサ、地磁気センサ、傾きセンサ、加圧センサ、接近センサ、温度センサ、などを備えていても良い。
【００２６】
［携帯端末装置１００の機能ブロック］
図２は、第１の実施形態にかかる携帯端末装置１００の機能ブロックの概略図である。
【００２７】
図２に示すように、本実施形態にかかる携帯端末装置１００は、ＣＰＵ動作周波数制御モジュール１２１、スケジューラ１２２、通信モジュール１２３、データ通信量測定部１２４、ＣＰＵ負荷測定部１２５、判定部１２６、制御部１２７を備える。
【００２８】
このうち、データ通信量測定部１２４、ＣＰＵ負荷測定部１２５、判定部１２６、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値を設定する為の「ＣＰＵ動作周波数上限制御モジュール」を構成する。
【００２９】
［ＯＳ１０００］
ＣＰＵ動作周波数制御モジュール１２１、スケジューラ１２２、通信モジュール１２３は、何れもＣＰＵ１０１が、メインメモリ１０２にＯＳ１０００のカーネルを読み込むとともに、該メインメモリ１０２に読み込んだカーネルを実行することで実現される。
【００３０】
（ＣＰＵ動作周波数制御モジュール１２１）
ＣＰＵ動作周波数制御モジュール１２１は、スケジューラ１２２により管理されるＣＰＵ負荷と、制御部１２７により設定されるＣＰＵ１０１の動作周波数の上限値及び下限値と、に基づき、ＣＰＵ１０１の動作周波数を動的に設定する。具体的には、ＣＰＵ動作周波数制御モジュール１２１は、ＣＰＵ１０１が備える複数の動作周波数の設定値のうち、ＣＰＵ利用率が閾値よりも大きくなる最低（最小）の動作周波数を、ＣＰＵ１０１に設定することとなる。このため、ＣＰＵ１０１は、ＣＰＵ負荷に過不足の無い処理能力を提供することができる。なお、動作周波数の上限値及び下限値は、制御部１２７により設定されるパラメータである。
【００３１】
（スケジューラ１２２）
スケジューラ１２２は、ＯＳ１０００により管理されるプロセス動作情報に基づき、ＣＰＵ利用率を算出する。ＣＰＵ利用率とは、単位時間のうち、ＯＳやアプリケーションプログラムがＣＰＵ１０１の処理時間を占有している割合である。
【００３２】
（通信モジュール１２３）
通信モジュール１２３は、ネットワークＩ／Ｆ１１１を経由する、即ち出入りするデータ送受信を管理する。通信モジュール１２３は、ネットワークＩ／Ｆ１１１を経由するデータ量の累積値を管理する。さらに、通信モジュール１２３は、携帯端末装置１００が通信可能な帯域幅を記憶する。
【００３３】
［制御プログラム１１００］
データ通信量測定部１２４、ＣＰＵ負荷測定部１２５、判定部１２６、制御部１２７は、何れもＣＰＵ１０１が、メインメモリ１０２に制御プログラム１１００を読み込むとともに、該メインメモリ１０２に読み込んだ制御プログラム１１００を実行することで実現される。
【００３４】
（データ通信量測定部１２４）
データ通信量測定部１２４は、定期的に、例えば１０〜１０００［ｍｓｅｃ］毎に、通信モジュール１２３により管理される無線回線の累積通信量を取得して、通信モジュール１２３による単位時間あたりの通信量［ｂｐｓ］を算出する。さらに、データ通信測定部１２４は、単位時間あたりの通信量に基づき、通信モジュール１２３による通信量の変化状況、即ち通信量が増加傾向であるのか、減少傾向であるのか、それとも、安定しているのか、を判断する。そして、データ通信測定部１２４は、通信量の変化状態もしくは単位時間あたりの通信量を判定部１２６に通知する。
【００３５】
（ＣＰＵ負荷測定部１２５）
ＣＰＵ負荷測定部１２５は、定期的に、例えば１０〜１０００［ｍｓｅｃ］毎に、スケジューラ１２２からＣＰＵ負荷を取得する。さらに、ＣＰＵ負荷測定部１２５は、スケジューラ１２２から取得されたＣＰＵ負荷が、事前に記憶している閾値を超えているかどうかを判断する。ＣＰＵ負荷が閾値を超えている場合、ＣＰＵ負荷測定部１２５は、ＣＰＵ動作周波数上限制御指示を判定部１２６に通知する。
【００３６】
なお、本実施形態では、ＣＰＵ負荷として、ＣＰＵ利用率を使用する。ＣＰＵ利用率は、単位時間に占有するプログラムの動作時間の割合である。但し、本実施形態は、これに限定されるものではなく、ＣＰＵ利用率に代えて、例えばＣＰＵ割付け待ちのプロセス数の平均値を使用しても良い。ＣＰＵ割付け待ちのプロセス数の平均値は、ＣＰＵ利用率に比例する指標であって、ミドルウェアやアプリケーションから容易に読み取ることができる。このため、ＣＰＵ割付け待ちのプロセス数の平均値を使用すれば、簡単に携帯端末装置１００に実装することができる。
【００３７】
（判定部１２６）
判定部１２６は、ＣＰＵ負荷測定部１２５からＣＰＵ動作周波数上限制御指示が通知されると、データ通信量測定部１２４から通知される通信量の変化状況もしくは単位時間あたりの通信量に基づき、ＣＰＵ１０１の動作周波数の上限値を上げるか、下げるか、もしくは、そのまま維持させるか、を判断する。
【００３８】
（制御部１２７）
制御部１２７は、判定部１２６による判定結果に基づき、ＣＰＵ１０１の動作周波数の上限値を決定して、ＣＰＵ動作周波数制御モジュール１２１に通知する。動作周波数の上限値は、ＣＰＵ１０１が備える複数の動作周波数の何れかに設定される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ上昇させる指示、もしくは、１つ分だけ低下させる指示をＣＰＵ動作周波数制御モジュール１２１に通知する。
【００３９】
［ＣＰＵ動作周波数上限制御処理］
図３は、第１の実施形態にかかるＣＰＵ動作周波数上限制御処理のフローチャートである。図４は、第１の実施形態にかかる通信量の遷移グラフである。
【００４０】
図３に示すように、先ず、判定部１２６は、ＣＰＵ負荷測定部１２５により取得されたＣＰＵ負荷に基づき、該ＣＰＵ負荷が、事前に設定された閾値よりも大きいかどうかを判定する（ステップＳ１０１）。
【００４１】
ここで、ＣＰＵ負荷が閾値よりも大きいと判断された場合（ステップＳ１０１の「Ｙｅｓ」）、ＣＰＵ１０１の処理能力が通信のボトルネックとなる恐れがある。このため、判定部１２６は、サブルーチンとしての「サーチモード」の開始を指示する（ステップＳ１０２）。「サーチモード」は、通信モジュール１２３による通信中に、ＣＰＵ１０１の動作周波数の上限値の設定を最適化するモードである。「サーチモード」の詳細は、後述することとする。
【００４２】
次に、制御部１２７は、「サーチモード」の終了後、サブルーチンとしての「安定化待機モード」の開始を指示する（ステップＳ１０３）。「安定化待機モード」は、通信モジュール１２３による通信量が安定するまで待機するモードである。即ち、「サーチモード」は、通信モジュール１２３による通信量が安定しているときに、即ち安定期間（図４参照）に実施される。「安定化待機モードの詳細」は、後述することとする。
【００４３】
一方、ＣＰＵ負荷が閾値よりも大きいと判断されない場合（ステップＳ１０１の「Ｎｏ」）、ＣＰＵ１０１の処理能力が通信のボトルネックではないどころか、ＣＰＵ１０１の動作周波数の上限値を低下させる余地があると推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ低下させる（ステップＳ１０４）。本実施形態にかかるＣＰＵ動作周波数上限制御モジュールは、定期的にＣＰＵ動作周波数上限制御処理を実行することとなる。
【００４４】
以上のように、本実施形態では、ＣＰＵ負荷が閾値よりも大きければ、ＣＰＵ１０１の処理能力に余裕が無い、即ちＣＰＵ１０１の処理能力が通信のボトルネックになっている恐れがあると判断して、以下の「サーチモード」及び「安定化待機モード」を実行する。
【００４５】
又、ＣＰＵ負荷が閾値よりも小さければ、ＣＰＵ１０１の処理能力に余裕がある、即ちＣＰＵ１０１の処理能力が通信のボトルネックではないと判断して、携帯端末装置１００の省電力化の為に動作周波数の上限値を低下させる。
【００４６】
［安定化待機モード］
図５は、第１の実施形態にかかる「安定化待機モード」のフローチャートである。
【００４７】
図５に示すように、「安定化待機モード」の開始後、先ず、データ通信量測定部１２４は、通信モジュール１２３による通信量を取得する（ステップＳ２０１）。通信量は、特に限定されるものではないが、例えば単位時間あたりのビット数［ｂｐｓ］を使用しても良い。
【００４８】
次に、判定部１２６は、データ通信量測定部１２４により取得された通信量に基づき、通信量の変動指数を算出する（ステップＳ２０２）。具体的には、判定部１２６は、数式（１）を使用して、通信量の変動指数を算出する。
【００４９】
【数１】
2014063398.tif 000003
【００５０】
通信量の変動指数は、前回の測定により取得された通信量を基準とする、今回の測定により取得された通信量の変動の程度を意味する。即ち、変動指数が小さいほど、通信量が安定していると判断される。
【００５１】
なお、本実施形態では、数式（１）を使用して、通信量の変動指数を算出しているが、本発明は、これに限定されるものではなく、通信量が安定したかどうかを判断できる指標であれば、例えば移動加重平均などを使用しても良い。
【００５２】
次に、判定部１２６は、通信量の変動指数が、事前に設定された閾値より小さいかどうか、即ち通信モジュール１２３による通信量が安定しているかどうかを判断する（ステップＳ２０３）。
【００５３】
ここで、通信量の変動指数が閾値よりも小さいと判断された場合（ステップＳ２０３の「Ｙｅｓ」）、即ち通信量が安定していると判断された場合、判定部１２６は、「安定化待機モード」を終了させる。
【００５４】
一方、通信量の変化指数が閾値よりも小さいと判断されない場合（ステップＳ２０３の「Ｎｏ」）、即ち通信量が安定していないと判断された場合、データ通信量測定部１２４は、再度、通信モジュール１２３による通信量を取得する（ステップＳ２０１）。即ち、再度、安定化待機モードが実施されることとなる。
【００５５】
以上のように、本実施形態では、「サーチモード」の終了後、通信モジュール１２３による通信量が安定するまで「安定化待機モード」を実施する。このため、ＣＰＵ１０１の動作周波数の上限値の設定を最適化する「サーチモード」は、通信モジュール１２３による通信量が安定してから開始されることとなる。
【００５６】
［サーチモード］
図６は、第１の実施形態にかかる「サーチモード」のフローチャートである。
【００５７】
図６に示すように、「サーチモード」の開始後、先ず、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ上昇させる（ステップＳ３０１）。
【００５８】
次に、判定部１２６は、データ通信量測定部１２４により取得された通信量に基づき、通信モジュール１２３による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する（ステップＳ３０２）。即ち、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ上昇させたときに、通信量が、どのような変化したのかを判断する。
【００５９】
ここで、通信量が増加したと判断された場合（ステップＳ３０２の「増加」）、ＣＰＵ１０１の処理能力が通信のボトルネックとなっていると推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、さらに１つ分だけ上昇させる（ステップＳ３０１）。
【００６０】
一方、通信量が減少したと判断された場合（ステップＳ３０２の「減少」）、ＣＰＵ１０１の動作周波数の上限値を上昇させたにも拘わらず、通信量が減少していることから、ＣＰＵ１０１の処理能力に無関係の事象に起因すると推測される。例えば、通信環境の変化などに起因して、通信量が減少したと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値を制御することなく、「サーチモード」を終了させる。
【００６１】
又、通信量が変化しないと判断された場合（ステップＳ３０２の「変化なし」）、ＣＰＵ１０１の動作周波数の上限値を上昇させたことに起因して、ＣＰＵ１０１の処理能力が通信のボトルネックでなくなったと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に変更する（ステップＳ３０３）。即ち、直前の動作周波数の上限値が最適値であると推測して、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に戻すのである。
【００６２】
以上のように、本実施形態では、通信量が増加しなくなるまで、ＣＰＵ１０１の動作周波数を１つ分ずつ上昇させることで、ＣＰＵ１０１の処理能力が通信のボトルネックとなっている状況を解消する。
【００６３】
次に、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ低下させる（ステップＳ３０４）。
【００６４】
次に、判定部１２６は、データ通信量測定部１２４により取得された通信量に基づき、通信モジュール１２３による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する（ステップＳ３０５）。
【００６５】
ここで、通信量が変化しないと判断された場合（ステップＳ３０５の「変化なし」）、ＣＰＵ１０１の処理能力が通信のボトルネックではないどころか、ＣＰＵ１０１の動作周波数の上限値を低下させる余地があると推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、さらに１つ分だけ低下させる（ステップＳ３０４）。
【００６６】
一方、通信量が減少したと判断されたら（ステップＳ３０５の「減少」）、ＣＰＵ１０１の動作周波数の上限値を低下させたことに起因して、ＣＰＵ１０１の処理能力が通信のボトルネックとなったと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に変更する（ステップＳ３０６）。即ち、直前の動作周波数の上限値が最適値であると推測して、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に戻すのである。
【００６７】
又、通信量が増加したと判断された場合（ステップＳ３０５の「増加」）、ＣＰＵ１０１の動作周波数の上限値を低下させたにも拘わらず、通信量が増加していることから、ＣＰＵ１０１の処理能力に無関係の事象に起因すると推測される。例えば、通信環境の変化などに起因して、通信量が増加したと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値を制御することなく、「サーチモード」を終了させる。
【００６８】
以上のように、本実施形態では、ＣＰＵ１０１の処理能力がボトルネックである場合、通信量が増加しなくなるまで、即ちＣＰＵ１０１の処理能力が通信のボトルネックでなくなるまで、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分ずつ上昇させる。このため、ＣＰＵ１０１の処理能力が通信のボトルネックである状況を簡単に解消することができる。これにより、通信モジュール１２３による通信が、ＣＰＵ１０１の処理能力により阻害されることがなくなるので、通信の開始から終了までの継続時間（通信時間）を短縮することができる。このため、例えばネットワークＩ／Ｆ１１１などの稼働時間が短縮して、結果として、携帯端末装置１００の消費電力を抑制することができる。
【００６９】
さらに、本実施形態では、ＣＰＵ１０１の処理能力が通信のボトルネックでない場合、通信量が減少するまで、即ちＣＰＵ１０１の処理能力が通信のボトルネックとなるまで、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分ずつ低下させる。このため、ＣＰＵ１０１の処理能力が必要最小に抑制されていない状況、即ちＣＰＵ１０１が過剰な処理能力を発揮している状況を簡単に解消することができる。これにより、ＣＰＵ１０１の消費電力が、ＣＰＵ負荷に見合ったものとなり、携帯端末装置１００の消費電力を抑制することができる。
【００７０】
［ＣＰＵ動作周波数上限制御処理による状態遷移］
図７は、第１の実施形態にかかるＣＰＵ動作周波数上限制御処理の状態遷移図である。
【００７１】
図７に示すように、ＣＰＵ動作周波数上限制御処理では、初期状態、テスト状態、増加探索状態、減少探索状態が定義されている。
【００７２】
先ず、（１）初期状態に於いて、ＣＰＵ負荷が閾値未満である場合、図中の「ｆｎｅｘｔ＝ｆｋ−１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ低下させる。初期状態は、ＣＰＵ負荷が閾値以上、かつ、通信量が変化しなくなるまで継続する。
【００７３】
（２）一方、初期状態に於いて、ＣＰＵ負荷が閾値以上、かつ、通信量が変化しない場合（通信量が安定している場合）、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ上昇させて、テスト状態に遷移する。
【００７４】
（３）テスト状態に於いて、通信量が増加した場合、図中の「ｆｎｅｘｔ＝ｆｋ＋１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ上昇させて、増加探索状態に遷移する。
【００７５】
（４）動作探索状態に於いて、通信量が増加した場合、図中の「ｆｎｅｘｔ＝ｆｋ＋１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ上昇させる。増加探索状態は、通信量が増加しなくなるまで継続する。
【００７６】
（５）増加探索状態に於いて、通信量が変化しなかった場合、図中の「ｆｎｅｘｔ＝ｆｋ−１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ低下させて、初期状態に遷移する。一方、増加探索状態に於いて、通信量が減少した場合、ＣＰＵ１０１の動作周波数の上限値を変化させることなく、初期状態に遷移する。
【００７７】
（６）一方、テスト状態に於いて、通信量が増加しなかった場合、図中の「ｆｎｅｘｔ＝ｆｋ−１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ低下させて、減少探索状態に遷移する。
【００７８】
（７）減少探索状態に於いて、通信量が変化しなかった場合、図中の「ｆｎｅｘｔ＝ｆｋ−１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ減少させる。減少探索状態は、通信量が変化するまで継続する。
【００７９】
（８）減少探索状態に於いて、通信量が減少した場合、図中の「ｆｎｅｘｔ＝ｆｋ＋１」で示すように、ＣＰＵ１０１の動作周波数の上限値を１つ分だけ上昇させて、初期状態に遷移する。一方、減少探索状態に於いて、通信量が増加した場合、ＣＰＵ１０１の動作周波数の上限値を変化させることなく、初期状態に遷移する。
【００８０】
［第２の実施形態］
以下、図８〜図１２を参照して、第２の実施形態を説明する。但し、第１の実施形態と同等の構成や機能の説明は省略することとする。
【００８１】
［ＣＰＵ動作周波数上限制御処理］
図８は、第２の実施形態にかかるＣＰＵ動作周波数上限制御処理のフローチャートである。
【００８２】
図８に示すように、先ず、判定部１２６は、ＣＰＵ負荷測定部１２５により取得されたＣＰＵ負荷に基づき、該ＣＰＵ負荷が、事前に設定された閾値よりも大きいかどうかを判断する（ステップＳ４０１）。
【００８３】
ここで、ＣＰＵ負荷が閾値よりも大きいと判断された場合（ステップＳ４０１の「Ｙｅｓ」）、ＣＰＵ１０１の処理能力が通信のボトルネックとなる恐れがある。このため、判定部１２６は、サブルーチンとしての「制御モード」の開始を指示する（ステップＳ４０２）。「制御モード」は、通信モジュール１２３による通信中に、ＣＰＵ１０１の動作周波数の上限値の設定を最適化するモードである。「制御モード」の詳細は、後述することとする。
【００８４】
一方、ＣＰＵ負荷が閾値よりも大きいと判断されない場合（ステップＳ４０１の「Ｎｏ」）、ＣＰＵ１０１の処理能力が通信のボトルネックではないどころか、ＣＰＵ１０１の動作周波数の上限値を低下させる余地があると推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ低下させる（ステップＳ４０３）。
【００８５】
［制御モード］
図９は、第２の実施形態にかかる「制御モード」のフローチャートである。
【００８６】
図９に示すように、「制御モード」の開始後、先ず、判定部１２６は、データ通信量測定部１２４により取得された通信量に基づき、通信モジュール１２３による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する（ステップＳ５０１）。
【００８７】
ここで、通信量が変化しないと判断された場合（ステップＳ５０１の「変化なし」）、即ち通信量が安定していると判断された場合、判定部１２６は、サブルーチンとしての「サーチモード」の開始を指示する（ステップＳ１０２）。なお、「サーチモード」は、第１の実施形態にかかる「サーチモード」と同等である。
【００８８】
一方、通信量が増加したと判断された場合（ステップＳ５０１の「増加」）、判定部１２６は、サブルーチンとしての「増加モード」の開始を指示する（ステップＳ５０２）。「増加モード」は、通信モジュール１２３による通信量が増加傾向にあるときに、即ち増加期間（図４参照）にあるときに、ＣＰＵ１０１の処理能力が将来的に通信のボトルネックとならないように、事前にＣＰＵ１０１の動作周波数の上限値の設定を制御するモードである。即ち、「増加モード」は、通信モジュール１２３による通信量が増加傾向にあるときに実施される。「増加モード」の詳細は、後述することとする。
【００８９】
又、通信量が減少したと判断された場合（ステップＳ５０１の「減少」）、判定部１２６は、サブルーチンとしての「減少モード」の開始を指示する（ステップＳ５０３）。「減少モード」は、通信モジュール１２３による通信量が減少傾向にあるときに、即ち減少期間（図４参照）にあるときに、ＣＰＵ１０１が過剰な処理能力を発揮しないように、事前にＣＰＵ１０１の動作周波数の上限値の設定を制御するモードである。即ち、「減少モード」は、通信モジュール１２３による通信量が減少傾向にあるときに実施される。「減少モード」の詳細は、後述することとする。
【００９０】
［増加モード］
図１０は、第２の実施形態にかかる「増加モード」のフローチャートである。図１１は、第２の実施形態にかかるＣＰＵ１０１の動作周波数の上限値の遷移グラフである。
【００９１】
図１０に示すように、「増加モード」の開始後、先ず、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、１つ分だけ上昇させる（ステップＳ６０１）。  次に、判定部１２６は、データ通信量測定部１２４により取得された通信量に基づき、通信モジュール１２３による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する（ステップＳ６０２）。
【００９２】
ここで、通信量が増加したと判断された場合（ステップＳ６０２の「増加」）、ＣＰＵ１０１の処理能力が通信のボトルネックとなっていたと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、さらに１つ分だけ上昇させる（ステップＳ６０１）。即ち、本実施形態では、通信量が増加しなくなるまで、図１１に示すように、ＣＰＵ１０１の動作周波数の上限値を、通信量の測定毎に、１つ分ずつ増加させる。
【００９３】
一方、通信量が変化しないと判断された場合（ステップＳ６０２の「変化なし」）、ＣＰＵ１０１の動作周波数の上限値を上昇させたことに起因して、ＣＰＵ１０１の処理能力が通信のボトルネックでなくなったと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に変更する（ステップＳ６０３）。即ち、直前の動作周波数の上限値が最適値であると推測して、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に戻すのである。
【００９４】
又、通信量が減少したと判断された場合（ステップＳ６０２の「減少」）、ＣＰＵ１０１の動作周波数の上限値を上昇させたにも拘わらず、通信モジュール１２３による通信量が減少したことから、ＣＰＵ１０１の処理能力に無関係の事象に起因すると推測される。例えば、通信環境の変化などに起因して、通信量が減少したと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値を制御することなく、「増加モード」を終了させる。
【００９５】
以上のように、本実施形態では、通信量が増加傾向にある場合、ＣＰＵ１０１の処理能力が通信のボトルネックであるかどうかに拘わらず、通信量が増加しなくなるまで、ＣＰＵ１０１の動作周波数の上限値の設定を、１つ分ずつ上昇させる。このため、仮に、通信量の測定時に、ＣＰＵ１０１の処理能力が通信のボトルネックでなくても、通信量の増加に起因して、将来的にＣＰＵ１０１の処理能力が通信のボトルネックになることを、未然に防止することができる。
【００９６】
［減少モード］
図１２は、第２の実施形態にかかる「減少モード」のフローチャートである。
【００９７】
図１２に示すように、「減少モード」の開始後、先ず、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、１つ分だけ上昇させる（ステップＳ７０１）。
【００９８】
次に、判定部１２６は、データ通信量測定部１２４により取得された通信量に基づき、通信モジュール１２３による通信量が、前回の測定による通信量を基準として、増加したかどうかを判断する（ステップＳ７０２）。
【００９９】
ここで、通信量が増加したと判断された場合（ステップＳ７０２の「増加」）、ＣＰＵ１０１の処理能力が通信のボトルネックとなっていたと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、１つ分だけ上昇させる（ステップＳ７０１）。
【０１００】
一方、通信量が増加しないと判断された場合（ステップＳ７０２の「増加しない」）、即ち通信量が減少する、もしくは通信量が変化しないと判断された場合、ＣＰＵ１０１の処理能力が通信のボトルネックとなっていないと推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に変更する（ステップＳ７０３）。即ち、直前に設定された動作周波数の上限値が最適値であると推測して、ＣＰＵ１０１の動作周波数の上限値の設定を、直前の上限値に戻すのである。
【０１０１】
以上のように、本実施形態では、通信量が減少傾向にある場合にも、ＣＰＵ１０１の処理能力が通信のボトルネックであるかどうかに拘わらず、通信量が増加しなくなるまで、ＣＰＵ１０１の動作周波数の上限値の設定を、１つ分ずつ上昇させる。このため、ＣＰＵ１０１の処理能力が通信のボトルネックとなっている状況を確実に解消することができる。
【０１０２】
［第３の実施形態］
以下、図１３、図１４を参照して、第３の実施形態を説明する。但し、第１、第２の実施形態と同等の構成や機能の説明は省略することとする。
【０１０３】
［増加モード］
図１３は、第３の実施形態にかかる「増加モード」のフローチャートである。図１４は、第３実施形態にかかるＣＰＵ１０１の動作周波数の上限値の遷移グラフである。
【０１０４】
本実施形態にかかる「増加モード」は、第２の実施形態にかかる「増加モード」の変形例である。
【０１０５】
図１３に示すように、「増加モード」の開始後、先ず、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を、最大値まで上昇させる（ステップＳ８０１）。最大値としては、例えばＣＰＵ１０１毎に設定されている物理的上限値や、ＣＰＵ１０１の発熱を考慮して設定される熱的上限値などを使用しても良い。
【０１０６】
次に、判定部１２６は、ＣＰＵ負荷測定部１２５により取得されたＣＰＵ負荷に基づき、該ＣＰＵ負荷が、事前に設定された閾値よりも大きいかどうかを判断する（ステップＳ８０２）。
【０１０７】
ここで、ＣＰＵ負荷が閾値よりも大きいと判断された場合（ステップＳ８０２の「Ｙｅｓ」）、ＣＰＵ１０１の動作周波数の上限値が必要最小限に抑制されている、即ちＣＰＵ１０１が過剰な処理能力を発揮していないと推測される。このため、判定部１２６は、「増加モード」を終了させる。
【０１０８】
一方、ＣＰＵ負荷が閾値よりも大きいと判断されない場合（ステップＳ８０２の「Ｎｏ」）、ＣＰＵ１０１の動作周波数の上限値が必要最小限まで抑制されていない、即ちＣＰＵ１０１が過剰な処理能力を発揮していると推測される。このため、制御部１２７は、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７からの指示に基づき、ＣＰＵ１０１の動作周波数の上限値を、１つ分だけ低下させる（ステップＳ８０３）。即ち、本実施形態では、通信量が増加傾向にある場合、図１３に示すように、先ず、ＣＰＵ１０１の動作周波数の上限値を最大値まで上昇させ、その後、ＣＰＵ負荷に基づき、ＣＰＵ１０１の動作周波数の上限値を、１つ分ずつ低下させる。
【０１０９】
以上のように、本実施形態では、通信量が増加傾向にある場合、先ず、ＣＰＵ１０１の動作周波数の上限値を最大値まで上昇させる。このため、ＣＰＵ１０１の処理能力が通信のボトルネックとなることを確実に回避することができる。
【０１１０】
しかも、ＣＰＵ１０１の動作周波数の上限値を最大値まで上昇させた後、ＣＰＵ負荷が閾値より大きくなるまで、ＣＰＵ１０１の動作周波数の上限値の設定を、１つ分ずつ低下させる。このため、ＣＰＵ１０１の動作周波数の上限値を最大値まで上昇させることで、ＣＰＵ１０１が過剰な処理能力を発揮する状況になっても、本実施形態にかかる「増加モード」を実施することで、ＣＰＵ１０１の処理能力を必要最小限に抑制することができる。
【０１１１】
［第４の実施形態］
以下、図１５、図１６を参照して、第４の実施形態を説明する。但し、第１〜第３の実施形態と同等の構成や機能の説明は省略することとする。
【０１１２】
図１５は、第４の実施形態にかかるＣＰＵ１０１の動作周波数の遷移グラフである。
【０１１３】
本実施形態では、ＣＰＵ１０１の動作周波数の遷移履歴（統計情報）に基づき、ＣＰＵ負荷を算出する。具体的には、図１５に示すように、前回の測定から今回の測定までの観測時間（Ｔ０）のうち、ＣＰＵ１０１の動作周波数が上限値に到達していた動作時間（Ｔ１）の割合（Ｔ１／Ｔ０）を、ＣＰＵ負荷として使用する。従って、本実施形態にかかる携帯端末装置１００Ａは、以下のように構成される。
【０１１４】
図１６は、第４の実施形態にかかる携帯端末装置１００Ａの機能ブロックの概略図である。
【０１１５】
図１６に示すように、ＣＰＵ動作周波数制御モジュール１２１は、ＣＰＵ１０１の動作周波数の遷移履歴（統計情報）を管理している。統計情報は、ＯＳ１０００の起動から現在までに計測されたＣＰＵ１０１の動作時間を、動作周波数毎に累積したものである。統計情報は、例えば５０［ｍｓｅｃ］毎に、ＣＰＵ動作周波数制御モジュール１２１により更新される。
【０１１６】
ＣＰＵ負荷測定部１２５Ａは、ＣＰＵ動作周波数制御モジュール１２１から取得されるＣＰＵ１０１の動作周波数の統計情報に基づき、ＣＰＵ負荷を算出する。具体的には、ＣＰＵ負荷測定部１２５Ａは、ＣＰＵ負荷の測定毎に、ＣＰＵ動作周波数制御モジュール１２１からＣＰＵ１０１の動作周波数の統計情報を取得する。さらに、ＣＰＵ負荷測定部１２５Ａは、前回の測定により取得された統計情報と、今回の測定により取得された統計情報と、の差分を算出する。続いて、ＣＰＵ負荷測定部１２５Ａは、統計情報の差分に基づき、前回の測定から今回の測定までの観測時間Ｔ０に、ＣＰＵ１０１の動作周波数が上限値に到達していた動作時間Ｔ１を取得する。最後に、ＣＰＵ負荷測定部１２５Ａは、数式（２）を使用して、ＣＰＵ負荷を算出する。
【０１１７】
【数２】
2014063398.tif 000004
【０１１８】
本実施形態によれば、短期間に更新されるＣＰＵ１０１の動作周波数の統計情報に基づき、前回の測定から今回の測定までの観測時間（Ｔ０）のうち、ＣＰＵ１０１の動作周波数が上限値に到達している動作時間（Ｔ１）の割合を、ＣＰＵ負荷としている。このため、それぞれの観測期間のＣＰＵ負荷を、より正確に把握することができる。しかも、ＣＰＵ１０１の動作周波数の統計情報は、ミドルウェアやアプリケーションから容易に読み取ることができる。このため、ＣＰＵ１０１の動作周波数の統計情報を使用すれば、簡単に携帯端末装置１００に実装することができる。
【０１１９】
なお、本実施形態では、ＣＰＵ負荷として、観測時間のうち、ＣＰＵ１０１の動作周波数が上限値に到達していた動作時間の割合を使用しているが、本発明は、これに限定されるものではない。例えば、ＣＰＵ１０１の動作周波数の統計情報から算出され、かつ、ＣＰＵ負荷に相関性のあるものであれば、例えばＣＰＵ１０１の動作周波数の平均値などをＣＰＵ負荷としても良い。
【０１２０】
［第５の実施形態］
以下、図１７〜図１９を参照しながら、第５の実施形態を説明する。但し、第１〜第３の実施形態と同等の構成や機能の説明は省略することとする。
【０１２１】
図１７は、第５の実施形態にかかるＣＰＵ１０１の動作周波数の遷移グラフである。
【０１２２】
本実施形態では、ＣＰＵ１０１の動作周波数の上限値を基準とする動作周波数（実際の動作周波数）の比率と、ＣＰＵ利用率と、に基づき、ＣＰＵ負荷を算出する。具体的には、図１７に示すように、ＣＰＵ利用率に、ＣＰＵ１０１の動作周波数の上限値を基準とする動作周波数の比率を掛け合わせた、いわゆる重み付けＣＰＵ利用率の平均値を、ＣＰＵ負荷として使用する。従って、本実施形態にかかる携帯端末装置１００Ｂは、以下のように構成される。
【０１２３】
図１８は、第５の実施形態にかかる携帯端末装置１００Ｂの機能ブロックの概略図である。
【０１２４】
図１８に示すように、ＣＰＵ動作周波数制御モジュール１２１は、ＣＰＵ１０１の動作周波数の遷移履歴（統計情報）を管理している。統計情報は、ＯＳ１０００の起動から現在までに計測されたＣＰＵ１０１の動作時間を、動作周波数毎に累積したものである。統計情報は、例えば５０［ｍｓｅｃ］毎に、ＣＰＵ動作周波数制御モジュール１２１により更新される。
【０１２５】
ＣＰＵ負荷測定部１２５Ｂは、ＣＰＵ動作周波数制御モジュール１２１から取得されるＣＰＵ１０１の動作周波数の統計情報と、スケジューラ１２２から取得されるＣＰＵ利用率と、に基づき、ＣＰＵ負荷を算出する。具体的には、ＣＰＵ負荷測定部１２５は、前回の測定から今回の測定までの観測時間毎に、数式（３）を使用して、ＣＰＵ負荷を算出する。
【０１２６】
【数３】
2014063398.tif 000005
【０１２７】
数式（３）は、それぞれの観測期間を微小区間に分割して、微小区間毎に、動作周波数の上限値を基準とする実際の動作周波数の比率と、ＣＰＵ利用率と、を掛け合わせたものを、観測期間にわたり合算して、観測時間で除算するものである。
【０１２８】
本実施形態によれば、ＣＰＵ負荷として、単にＣＰＵ利用率を使用するのではなく、動作周波数の上限値を基準とする動作周波数の比率を考慮している。このため、それぞれの観測期間のＣＰＵ負荷を、より正確に把握することができる。
【０１２９】
なお、本実施形態では、ＣＰＵ負荷測定部１２５ＢがＣＰＵ負荷を算出しているが、本発明は、これに限定されるものではない。例えば、ＣＰＵ負荷を算出する為の機能を、カーネルに持たせても良い。
【０１３０】
［変形例］
図１９は、第５の実施形態の変形例にかかる携帯端末装置１００Ｂの機能ブロックの概略図である。
【０１３１】
図１９に示すように、本変形例にかかる携帯端末装置１００Ｂは、カーネルの機能ブロックとして、ＣＰＵ負荷を算出する為のＣＰＵ負荷算出部１２８を備える。カーネルの機能ブロックとして、ＣＰＵ負荷算出部１２８を備える場合、非常に短い観測期間に実行される数式（３）による演算に充分に対応することができる。なお、ＣＰＵ負荷算出部１２８は、ＣＰＵ１０１が、メインメモリ１０２にＯＳ１０００のカーネルを読み込むとともに、該メインメモリ１０２に読み込んだカーネルを実行することで実現される。
【０１３２】
［第６の実施形態］
以下、図２０、図２１を参照して、第６の実施形態を説明する。但し、第１〜３の実施形態と同等の構成や機能の説明は省略することとする。
【０１３３】
図２０は、第６の実施形態にかかる携帯端末装置１００Ｃの機能ブロックの概略図である。
【０１３４】
本実施形態では、ネットワークＩ／Ｆ１１１を出入りするパケット数に基づき、通信量を算出する。
【０１３５】
通信モジュール１２３は、ＯＳ１０００の起動から現在までに、ネットワークＩ／Ｆ１１１を出入りしたパケット数の累積値を記録する。さらに、通信モジュール１２３は、ネットワークＩ／Ｆ１１１を出入りするパケットのサイズ（パケットサイズ）の平均値を算出する。
【０１３６】
データ通信量測定部１２４Ｃは、前回の測定により取得されたパケット数の累積値と、今回の測定により取得されたパケット数の累積値と、の差分、即ち前回の測定から今回の測定までの観測時間にネットワークＩ／Ｆ１１１を出入りしたパケット数を算出する。さらに、データ通信量測定部１２４Ｃは、観測時間にネットワークＩ／Ｆ１１１を出入りしたパケット数と、通信モジュール１２３により算出されるパケットサイズの平均値と、に基づき、単位時間あたりの通信量を算出する。具体的には、データ通信量測定部１２４Ｃは、数式（４）を使用して、単位時間あたりの通信量を算出する。
【０１３７】
【数４】
2014063398.tif 000006
【０１３８】
本実施形態によれば、通信モジュール１２３により記録されているパケット数の累積値と、通信モジュール１２３により管理されているパケットサイズと、に基づき、観測時間毎の通信量を算出する。このため、ＯＳ１０００に標準的に搭載されている機能だけを用いて、単位時間あたりの通信量の算出を実現することができる。
【０１３９】
［第７の実施形態］
以下、第７の実施形態を説明する。但し、第１〜第３の実施形態と同等の構成や機能は説明を省略することとする。
【０１４０】
図２１は、第７の実施形態にかかる携帯端末装置１００Ｄの機能ブロックの概略図である。
【０１４１】
本実施形態では、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のウィンドウサイズに基づき、単位時間あたりの通信量を算出する。
【０１４２】
通信モジュール１２３は、ＴＣＰコネクション毎に、ウィンドウサイズと、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）と、を管理する。
【０１４３】
データ通信量測定部１２４Ｄは、通信モジュール１２３から取得されたＴＣＰのウィンドウサイズ及びＲＴＴに基づき、単位時間あたりの通信量を算出する。具体的には、データ通信量測定部１２４Ｄは、先ず、数式（５）を使用して、ＴＣＰコネクション毎のスループットを算出する。
【０１４４】
【数５】
2014063398.tif 000007
【０１４５】
続いて、データ通信量測定部１２４は、数式（６）を使用して、全ＴＣＰコネクションのスループットの総計を、通信量として算出する。
【０１４６】
【数６】
2014063398.tif 000008
【０１４７】
本実施形態によれば、ＴＣＰのウィンドウサイズ及びＲＴＴに基づき、ＴＣＰコネクション毎のスループットを算出し、全てのＴＣＰコネクションのスループットの総計を、通信量としている。このため、通信量の時間平均を算出することなく、通信量を取得することができる。
【０１４８】
［第８の実施形態］
以下、図２２、図２３を参照して、第８の実施形態を説明する。但し、第１〜第３の実施形態と同等の構成や機能は説明を省略することとする。
【０１４９】
本実施形態では、通信が付随する機能を有するアプリケーションプログラム（以下、通信アプリとする）の動作時間（ＣＰＵ負荷）と、通信アプリに付随するＯＳ１０００のカーネルの動作時間（ＣＰＵ処理）と、携帯端末装置１００Ｅの通信可能な帯域幅と、に基づき、ＣＰＵ１０１の動作周波数の上限値を決定する。
【０１５０】
なお、通信アプリとしては、いわゆる天気アプリなどがある。天気アプリは、例えば携帯端末装置１００Ｅの位置及び時間に基づき、携帯端末装置１００Ｅに天気情報を通知するものである。天気アプリでは、携帯端末装置１００Ｅからサーバに位置情報を通知する際、及びサーバから携帯端末装置１００Ｅに天気情報を通知する際に、通信が発生する。但し、天気アプリは、あくまでも通信アプリの一例であって、本実施形態は、これに限定されるものではない。
【０１５１】
［携帯端末装置１００Ｅの機能ブロック］
図２２は、第８の実施形態にかかる携帯端末装置１００Ｅの機能ブロックの概略図である。
【０１５２】
図２２に示すように、本実施形態にかかる携帯端末装置１００Ｅは、さらに、プロセス管理部１２９を備える。プロセス管理部１２９は、ＣＰＵ１０１が、メインメモリ１０２にＯＳ１０００のカーネルを読み込むとともに、該メインメモリ１０２に読み込んだカーネルを実行することで実現される。
【０１５３】
プロセス管理部１２９は、ＣＰＵ１０１により実行されるプロセスの動作状況を管理する。具体的には、プロセス管理部１２９は、ＣＰＵ１０１により実行されるプロセスの動作状況を定期的に観測して、プロセス毎の動作時間の累積値、例えばユーザモード動作時間（Ｕｔｉｍｅ）、カーネルモード動作時間（Ｓｔｉｍｅ）を更新する。ユーザモード動作時間は、アプリケーションプログラムの動作時間の累積値である。カーネルモード動作時間は、例えばアプリケーションプログラムのプロセス実行に付随するＯＳ１０００のカーネルの動作時間の累積値である。
【０１５４】
データ通信量測定部１２４Ｅは、プロセス管理部１２９により管理されるプロセスの動作状況に基づき、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するＯＳ１０００のカーネルの単位時間あたりの動作時間と、を算出する。さらに、データ通信量測定部１２４Ｅは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するＯＳ１０００のカーネルの単位時間あたりの動作時間と、に基づき、通信アプリによる無線回線の単位時間あたりの通信量の理論最大値、即ち理論最大通信量を算出する。
【０１５５】
判定部１２６Ｅは、通信モジュール１２３により管理される携帯端末装置１００Ｅの通信可能な帯域幅と、データ通信量測定部１２４Ｅにより算出された理論最大通信量と、に基づき、帯域幅が理論最大通信量よりも大きいかどうかを判断する。
【０１５６】
制御部１２７Ｅは、判定部１２６Ｅによる判断結果に基づき、ＣＰＵ１０１の動作周波数の上限値の上昇もしくは低下をＣＰＵ動作周波数制御モジュール１２１に指示する。
【０１５７】
［ＣＰＵ動作周波数上限制御処理］
図２３は、第８の実施形態にかかるＣＰＵ動作周波数上限制御処理のフローチャートである。
【０１５８】
図２３に示すように、先ず、データ通信量測定部１２４Ｅは、プロセス管理部１２９により管理されるプロセスの動作状況に基づき、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するＯＳ１０００のカーネルの単位時間あたりの動作時間と、を算出する（ステップＳ９０１）。
【０１５９】
次に、データ通信量測定部１２４Ｅは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するＯＳ１０００のカーネルの単位時間あたりの動作時間と、の合計時間を算出する（ステップＳ９０２）。
【０１６０】
次に、データ通信量測定部１２４Ｅは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するＯＳ１０００のカーネルの単位時間あたりの動作時間と、の合計時間に基づき、通信アプリによる無線回線の通信量の理論最大値、即ち理論最大通信量を算出する（ステップＳ９０３）。具体的には、データ通信量測定部１２４Ｅは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するＯＳ１０００のカーネルの単位時間あたりの動作時間と、の合計時間のすべてを通信処理に割り当てた場合の通信量、即ち理論最大通信量を算出する。
【０１６１】
次に、判定部１２６Ｅは、通信モジュール１２３により管理される携帯端末装置１００Ｅの通信可能な帯域幅と、データ通信量測定部１２４Ｅにより算出された理論最大通信量と、に基づき、帯域幅が理論最大通信量よりも大きいかどうかを判断する（ステップＳ９０４）。
【０１６２】
ここで、帯域幅が理論最大通信量よりも大きいと判断された場合（ステップＳ９０４のＹｅｓ）、ＣＰＵ１０１の処理能力が通信のボトルネックとなっていると推測される。このため、制御部１２７Ｅは、ＣＰＵ１０１の動作周波数の上限値の上昇をＣＰＵ動作周波数制御モジュール１２１に指示する。ＣＰＵ動作周波数制御御モジュール１２１は、制御部１２７Ｅからの指示に基づき、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ上昇させる（ステップＳ９０５）。
【０１６３】
一方、帯域幅が理論最大通信量よりも大きいと判断されない場合（ステップＳ９０４のＮｏ）、ＣＰＵ１０１の処理能力が通信のボトルネックではないと推測される。このため、制御部１２７Ｅは、ＣＰＵ１０１の動作周波数の上限値の低下をＣＰＵ動作周波数制御モジュール１２１に指示しても良い。ＣＰＵ動作周波数制御モジュール１２１は、制御部１２７Ｅからの指示があれば、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分だけ低下させる（ステップＳ９０６）。
【０１６４】
以上のように、本実施形態では、携帯端末装置１００Ｅの通信可能な帯域幅が、通信アプリの理論最大通信量よりも大きい場合、ＣＰＵ１０１の処理能力がボトルネックとなっている、即ちＣＰＵ１０１が、確保されている帯域幅を充分に利用しきれない程度の処理能力しか発揮していないと判断して、ＣＰＵ１０１の動作周波数の上限値の設定を上昇させる。このため、通信モジュール１２３による通信量が上昇し、結果として、携帯端末装置１００Ｅの消費電力を抑制することができる。
【０１６５】
さらに、携帯端末装置１００Ｅの通信可能な帯域幅が、通信アプリの理論最大通信量よりも小さい場合、ＣＰＵ１０１の処理能力が通信のボトルネックとなっていない、即ちＣＰＵ１０１の動作周波数の上限値を低下させる余地があると判断して、ＣＰＵ１０１の動作周波数の上限値の設定を低下させる。このため、携帯端末装置１００Ｅの無駄な消費電力を削減することができる。
【０１６６】
なお、本実施形態では、帯域幅が通信アプリの理論最大通信量よりも大きいもしくは小さい場合に、ＣＰＵ１０１の動作周波数の上限値の設定を１つ分ずつ低下もしくは上昇させている。しかし、本発明は、これに限定されるものではない。例えば、通信アプリの動作時間（ＣＰＵ負荷）及びＯＳ１０００のカーネルの動作時間（ＣＰＵ負荷）に基づき、ＣＰＵ１０１の動作周波数の上限値そのものを決定しても良い。即ち、帯域幅が理論最大通信量と同等になるＣＰＵ１０１の動作周波数を算出して、これをＣＰＵ１０１の動作周波数の上限値に設定しても良い。
【符号の説明】
【０１６７】
１００：携帯端末装置
１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ、１００Ｅ： 携帯端末装置
１０１：ＣＰＵ
１１１：ネットワークＩ／Ｆ
１２１：ＣＰＵ動作周波数制御モジュール
１２２：スケジューラ
１２３：通信モジュール
１２４、１２４Ｃ、１２４Ｄ、１２４Ｅ：データ通信量測定部
１２５、１２５Ａ、１２５Ｂ：ＣＰＵ負荷測定部
１２６、１２６Ｅ：判定部
１２７、１２７Ｅ：制御部
１２８：ＣＰＵ負荷算出部
１２９：プロセス管理部
【図１９】
2014063398.tif 000009
【図１】
2014063398.tif 000010
【図２】
2014063398.tif 000011
【図３】
2014063398.tif 000012
【図４】
2014063398.tif 000013
【図５】
2014063398.tif 000014
【図６】
2014063398.tif 000015
【図７】
2014063398.tif 000016
【図８】
2014063398.tif 000017
【図９】
2014063398.tif 000018
【図１０】
2014063398.tif 000019
【図１１】
2014063398.tif 000020
【図１２】
2014063398.tif 000021
【図１３】
2014063398.tif 000022
【図１４】
2014063398.tif 000023
【図１５】
2014063398.tif 000024
【図１６】
2014063398.tif 000025
【図１７】
2014063398.tif 000026
【図１８】
2014063398.tif 000027
【図２０】
2014063398.tif 000028
【図２１】
2014063398.tif 000029
【図２２】
2014063398.tif 000030
【図２３】
2014063398.tif 000031