JP6048030B2 - 携帯端末装置の制御方法、制御プログラム、携帯端末装置 - Google Patents

携帯端末装置の制御方法、制御プログラム、携帯端末装置 Download PDF

Info

Publication number
JP6048030B2
JP6048030B2 JP2012208900A JP2012208900A JP6048030B2 JP 6048030 B2 JP6048030 B2 JP 6048030B2 JP 2012208900 A JP2012208900 A JP 2012208900A JP 2012208900 A JP2012208900 A JP 2012208900A JP 6048030 B2 JP6048030 B2 JP 6048030B2
Authority
JP
Japan
Prior art keywords
cpu
operating frequency
upper limit
terminal device
communication
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.)
Expired - Fee Related
Application number
JP2012208900A
Other languages
English (en)
Other versions
JP2014063398A (ja
Inventor
正明 野呂
正明 野呂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012208900A priority Critical patent/JP6048030B2/ja
Priority to US13/954,309 priority patent/US9526026B2/en
Publication of JP2014063398A publication Critical patent/JP2014063398A/ja
Application granted granted Critical
Publication of JP6048030B2 publication Critical patent/JP6048030B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0231Traffic management, e.g. flow control or congestion control based on communication conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/029Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment reducing the clock frequency of the controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Power Sources (AREA)

Description

本技術は、携帯端末装置の制御方法、制御プログラム、携帯端末装置に関する。
近年、携帯端末装置は、複数のアプリケーションプログラムを同時に実行させることが出来るようになり、例えばバックグラウンドで動作する音楽再生アプリにより音楽を再生しながら、フォアグラウンドで動作する天気アプリにより天気予報を確認する、などの「…しながら、〜をする」という利用シーンが拡大しつつある。これに伴い、携帯端末装置の消費電力も増加しており、消費電力の削減が重要な課題となりつつある。
以上のような背景から、CPUの処理負荷に応じて、CPUの動作周波数の上限値及び下限値の範囲でCPUの動作周波数を動的に制御し、消費電力を削減する仕組みが開発されている。本仕組みでは、例えば、CPUの処理負荷が低下した場合、CPUの動作周波数が自動的に低下し、逆にCPUの処理負荷が上昇した場合、CPUの動作周波数が自動的に上昇する。
特開平1−292416号公報 特開2010−39791号公報
ところで、携帯端末装置が通信を実施している最中に、CPUの処理能力が不足してしまい、通信のスループットが充分に上がらないことがある。通信のスループットが充分に上がらないと、通信に寄与するデバイスの稼働時間が長くなり、結果として、携帯端末装置の消費電力が増加することがある。
このため、携帯端末装置が通信を実施している場合に、CPUの動作周波数の上限値を上昇させて、CPUの処理能力が通信のボトルネックとなることを回避しても良い。
ところが、携帯端末装置が通信を実施している事実だけをもって、CPUの動作周波数の上限値を上昇させても、通信のスループットが充分に上昇しないことがある。例えば、CPUが通信に関係しない他のアプリを実行している場合や、通信相手のサーバや基幹ネットワークの都合で通信のスループットが抑制されている場合、CPUの動作周波数の上限値を上昇させても、通信のスループットが上昇せず、かえって携帯端末装置の消費電力を増加させることもある。
開示の技術によれば、CPUの動作周波数を制御して、通信のスループットを低下させることなく、消費電力を抑制することができる携帯端末装置の制御方法、制御プログラム、携帯端末装置を提供する。
開示の技術の一観点によれば、通信に関連する処理を実行するCPUを有する携帯端末装置の制御方法に於いて、前記CPUの動作周波数を変化させ、前記動作周波数の変化後に無線回線の通信量に変化が生じたかどうかを判断し、前記通信量に変化が生じたかどうかの判断結果に基づき、前記CPUの動作周波数を決定する、携帯端末装置の制御方法が提供される。
本開示の技術の一観点によれば、CPUの動作周波数を制御して、通信のスループットを低下させることなく、消費電力を抑制することができる。
第1の実施形態にかかる携帯端末装置のハードウェア構成の概略図である。 第1の実施形態にかかる携帯端末装置の機能ブロックの概略図である。 第1の実施形態にかかるCPU動作周波数上限制御処理のフローチャートである。 第1の実施形態にかかる通信量の遷移グラフである。 第1の実施形態にかかる「安定化待機モード」のフローチャートである。 第1の実施形態にかかる「サーチモード」のフローチャートである。 第1の実施形態にかかるCPU動作周波数上限制御処理の状態遷移図である。 第2の実施形態にかかるCPU動作周波数上限制御処理のフローチャートである。 第2の実施形態にかかる「制御モード」のフローチャートである。 第2の実施形態にかかる「増加モード」のフローチャートである。 第2の実施形態にかかるCPUの動作周波数の上限値の遷移グラフである。 第2の実施形態にかかる「減少モード」のフローチャートである。 第3の実施形態にかかる「増加モード」のフローチャートである。 第3実施形態にかかるCPUの動作周波数の上限値の遷移グラフである。 第4の実施形態にかかるCPUの動作周波数の遷移グラフである。 第4の実施形態にかかる携帯端末装置の機能ブロックの概略図である。 第5の実施形態にかかるCPUの動作周波数の遷移グラフである。 第5の実施形態にかかる携帯端末装置の機能ブロックの概略図である。 第5の実施形態の変形例にかかる携帯端末装置の機能ブロックの概略図である。 第6の実施形態にかかる携帯端末装置の機能ブロックの概略図である。 第7の実施形態にかかる携帯端末装置の機能ブロックの概略図である。 第8の実施形態にかかる携帯端末装置の機能ブロックの概略図である。 第8の実施形態にかかるCPU動作周波数上限制御処理のフローチャートである。
[第1の実施形態]
以下、図1〜図7を参照して、第1の実施形態を説明する。
[携帯端末装置100]
第1の実施形態にかかる携帯端末装置100を説明する。ここでは、携帯端末装置100に搭載するOS(Operating System)として、Android(登録商標)を採用する。但し、本発明の態様は、これに限定されるものではなく、Android以外のOSを採用しても良い。又、本実施形態にかかる携帯端末装置100は、特に限定されるものではないが、例えばスマートフォンやタブレットPCなどの携帯型の情報処理装置を想定する。
[携帯端末装置100のハードウェア]
図1は、第1の実施形態にかかる携帯端末装置100のハードウェア構成の概略図である。
図1に示すように、本実施形態にかかる携帯端末装置100は、CPU(Central Processing Unit)101、メインメモリ102、補助メモリ103、クロック供給回路104、電圧供給回路105、バッテリ106、電源回路107、外部給電部108、ディスプレイ109、タッチスクリーン110、ネットワークI/F(Interface)111、ブルートゥースI/F(Intereface)112、センサ113、をハードウェアモジュールとして備える。これらのハードウェアモジュールは、バス116により相互接続されている。
CPU101は、ベースバンドLSI(Large Scale Integrated)ではなく、アプリケーションプログラムを実行するプロセッサを想定している。CPU101は、クロック供給回路104から供給されるクロック信号及び電圧供給回路105から供給される電圧により動作して、携帯端末装置100の各種ハードウェアモジュールを制御する。CPU101は、複数の動作周波数の設定値を備え、このうち、指定される何れかの動作周波数で動作する。さらに、CPU101は、補助メモリ103に格納された各種プログラムをメインメモリ102に読み出すとともに、該メインメモリ102に読み出した各種プログラムを実行することで、各種機能を実現する。各種機能の詳細は、後述することとする。
メインメモリ102は、CPU101により実行される各種プログラムを格納する。さらに、メインメモリ102は、CPU101のワークエリアとして使用され、CPU101による処理に必要な各種データを記憶する。メインメモリ102としては、例えばRAM(Random Access Memory)などを用いても良い。
補助メモリ103は、携帯端末装置100を動作させる各種プログラムを格納している。各種プログラムとしては、例えば、携帯端末装置100により実行されるアプリケーションプログラムのほか、アプリケーションプログラムの実行環境であるOS1000などがある。本実施形態にかかる制御プログラム1100も補助メモリ103に格納されている。補助メモリ103としては、例えば、ハードディスクやフラッシュメモリ等の不揮発メモリを用いても良い。
クロック供給回路104は、CPU101に供給するためのクロック信号を生成する。クロック供給回路104は、例えばクロック信号を発振する水晶振動子と、RTC(Real Time Clock)と、により実現しても良い。
電圧供給回路105は、電源回路107から供給される電力に基づき、CPU101に供給するための可変電圧を生成する。電圧供給回路105は、ボルテージディテクタと、ボルテージレギュレータと、により実現しても良い。
バッテリ106は、電源回路107に電力を供給する。バッテリ106は、例えばリチウムイオン電池等の電池と、電池保護IC(Integrated Circuit)と、により実現しても良い。
電源回路107は、バッテリ106から供給される電力を、電源線(図示しない)を介して、携帯端末装置100の各種ハードウェアモジュールに供給する。なお、外部給電部108に外部電源(図示しない)が接続されている場合、電源回路107は、外部給電部108から供給される電力を、携帯端末装置100の各種ハードウェアモジュールに供給しても良い。電源回路107は、例えばスイッチングレギュレータと、ボルテージレギュレータと、により実現しても良い。
ディスプレイ109は、CPU101により制御され、ユーザに提示する画像情報を表示する。タッチスクリーン110は、ディスプレイ109に貼り付けられ、ユーザの指先やペン先などで接触された位置情報を入力する。本実施形態では、タッチスクリーン110を、ユーザ操作の為の位置入力デバイスとして使用する。
ネットワークI/F111は、CPU101により制御され、例えばGPS(Grobal Positioning System)、3G(3rd Generation)、WLAN(Wireless Local Area Network)などによる通信のインターフェースとして機能する。
センサ113は、携帯端末装置100の状態情報を取得する。センサ113としては、例えば、加速度センサ、ジャイロセンサ、照度センサ、地磁気センサ、傾きセンサ、加圧センサ、接近センサ、温度センサ、などを備えていても良い。
[携帯端末装置100の機能ブロック]
図2は、第1の実施形態にかかる携帯端末装置100の機能ブロックの概略図である。
図2に示すように、本実施形態にかかる携帯端末装置100は、CPU動作周波数制御モジュール121、スケジューラ122、通信モジュール123、データ通信量測定部124、CPU負荷測定部125、判定部126、制御部127を備える。
このうち、データ通信量測定部124、CPU負荷測定部125、判定部126、制御部127は、CPU101の動作周波数の上限値を設定する為の「CPU動作周波数上限制御モジュール」を構成する。
[OS1000]
CPU動作周波数制御モジュール121、スケジューラ122、通信モジュール123は、何れもCPU101が、メインメモリ102にOS1000のカーネルを読み込むとともに、該メインメモリ102に読み込んだカーネルを実行することで実現される。
(CPU動作周波数制御モジュール121)
CPU動作周波数制御モジュール121は、スケジューラ122により管理されるCPU負荷と、制御部127により設定されるCPU101の動作周波数の上限値及び下限値と、に基づき、CPU101の動作周波数を動的に設定する。具体的には、CPU動作周波数制御モジュール121は、CPU101が備える複数の動作周波数の設定値のうち、CPU利用率が閾値よりも大きくなる最低(最小)の動作周波数を、CPU101に設定することとなる。このため、CPU101は、CPU負荷に過不足の無い処理能力を提供することができる。なお、動作周波数の上限値及び下限値は、制御部127により設定されるパラメータである。
(スケジューラ122)
スケジューラ122は、OS1000により管理されるプロセス動作情報に基づき、CPU利用率を算出する。CPU利用率とは、単位時間のうち、OSやアプリケーションプログラムがCPU101の処理時間を占有している割合である。
(通信モジュール123)
通信モジュール123は、ネットワークI/F111を経由する、即ち出入りするデータ送受信を管理する。通信モジュール123は、ネットワークI/F111を経由するデータ量の累積値を管理する。さらに、通信モジュール123は、携帯端末装置100が通信可能な帯域幅を記憶する。
[制御プログラム1100]
データ通信量測定部124、CPU負荷測定部125、判定部126、制御部127は、何れもCPU101が、メインメモリ102に制御プログラム1100を読み込むとともに、該メインメモリ102に読み込んだ制御プログラム1100を実行することで実現される。
(データ通信量測定部124)
データ通信量測定部124は、定期的に、例えば10〜1000[msec]毎に、通信モジュール123により管理される無線回線の累積通信量を取得して、通信モジュール123による単位時間あたりの通信量[bps]を算出する。さらに、データ通信測定部124は、単位時間あたりの通信量に基づき、通信モジュール123による通信量の変化状況、即ち通信量が増加傾向であるのか、減少傾向であるのか、それとも、安定しているのか、を判断する。そして、データ通信測定部124は、通信量の変化状態もしくは単位時間あたりの通信量を判定部126に通知する。
(CPU負荷測定部125)
CPU負荷測定部125は、定期的に、例えば10〜1000[msec]毎に、スケジューラ122からCPU負荷を取得する。さらに、CPU負荷測定部125は、スケジューラ122から取得されたCPU負荷が、事前に記憶している閾値を超えているかどうかを判断する。CPU負荷が閾値を超えている場合、CPU負荷測定部125は、CPU動作周波数上限制御指示を判定部126に通知する。
なお、本実施形態では、CPU負荷として、CPU利用率を使用する。CPU利用率は、単位時間に占有するプログラムの動作時間の割合である。但し、本実施形態は、これに限定されるものではなく、CPU利用率に代えて、例えばCPU割付け待ちのプロセス数の平均値を使用しても良い。CPU割付け待ちのプロセス数の平均値は、CPU利用率に比例する指標であって、ミドルウェアやアプリケーションから容易に読み取ることができる。このため、CPU割付け待ちのプロセス数の平均値を使用すれば、簡単に携帯端末装置100に実装することができる。
(判定部126)
判定部126は、CPU負荷測定部125からCPU動作周波数上限制御指示が通知されると、データ通信量測定部124から通知される通信量の変化状況もしくは単位時間あたりの通信量に基づき、CPU101の動作周波数の上限値を上げるか、下げるか、もしくは、そのまま維持させるか、を判断する。
(制御部127)
制御部127は、判定部126による判定結果に基づき、CPU101の動作周波数の上限値を決定して、CPU動作周波数制御モジュール121に通知する。動作周波数の上限値は、CPU101が備える複数の動作周波数の何れかに設定される。このため、制御部127は、CPU101の動作周波数の上限値を1つ分だけ上昇させる指示、もしくは、1つ分だけ低下させる指示をCPU動作周波数制御モジュール121に通知する。
[CPU動作周波数上限制御処理]
図3は、第1の実施形態にかかるCPU動作周波数上限制御処理のフローチャートである。図4は、第1の実施形態にかかる通信量の遷移グラフである。
図3に示すように、先ず、判定部126は、CPU負荷測定部125により取得されたCPU負荷に基づき、該CPU負荷が、事前に設定された閾値よりも大きいかどうかを判定する(ステップS101)。
ここで、CPU負荷が閾値よりも大きいと判断された場合(ステップS101の「Yes」)、CPU101の処理能力が通信のボトルネックとなる恐れがある。このため、判定部126は、サブルーチンとしての「サーチモード」の開始を指示する(ステップS102)。「サーチモード」は、通信モジュール123による通信中に、CPU101の動作周波数の上限値の設定を最適化するモードである。「サーチモード」の詳細は、後述することとする。
次に、制御部127は、「サーチモード」の終了後、サブルーチンとしての「安定化待機モード」の開始を指示する(ステップS103)。「安定化待機モード」は、通信モジュール123による通信量が安定するまで待機するモードである。即ち、「サーチモード」は、通信モジュール123による通信量が安定しているときに、即ち安定期間(図4参照)に実施される。「安定化待機モードの詳細」は、後述することとする。
一方、CPU負荷が閾値よりも大きいと判断されない場合(ステップS101の「No」)、CPU101の処理能力が通信のボトルネックではないどころか、CPU101の動作周波数の上限値を低下させる余地があると推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を1つ分だけ低下させる(ステップS104)。本実施形態にかかるCPU動作周波数上限制御モジュールは、定期的にCPU動作周波数上限制御処理を実行することとなる。
以上のように、本実施形態では、CPU負荷が閾値よりも大きければ、CPU101の処理能力に余裕が無い、即ちCPU101の処理能力が通信のボトルネックになっている恐れがあると判断して、以下の「サーチモード」及び「安定化待機モード」を実行する。
又、CPU負荷が閾値よりも小さければ、CPU101の処理能力に余裕がある、即ちCPU101の処理能力が通信のボトルネックではないと判断して、携帯端末装置100の省電力化の為に動作周波数の上限値を低下させる。
[安定化待機モード]
図5は、第1の実施形態にかかる「安定化待機モード」のフローチャートである。
図5に示すように、「安定化待機モード」の開始後、先ず、データ通信量測定部124は、通信モジュール123による通信量を取得する(ステップS201)。通信量は、特に限定されるものではないが、例えば単位時間あたりのビット数[bps]を使用しても良い。
次に、判定部126は、データ通信量測定部124により取得された通信量に基づき、通信量の変動指数を算出する(ステップS202)。具体的には、判定部126は、数式(1)を使用して、通信量の変動指数を算出する。
通信量の変動指数は、前回の測定により取得された通信量を基準とする、今回の測定により取得された通信量の変動の程度を意味する。即ち、変動指数が小さいほど、通信量が安定していると判断される。
なお、本実施形態では、数式(1)を使用して、通信量の変動指数を算出しているが、本発明は、これに限定されるものではなく、通信量が安定したかどうかを判断できる指標であれば、例えば移動加重平均などを使用しても良い。
次に、判定部126は、通信量の変動指数が、事前に設定された閾値より小さいかどうか、即ち通信モジュール123による通信量が安定しているかどうかを判断する(ステップS203)。
ここで、通信量の変動指数が閾値よりも小さいと判断された場合(ステップS203の「Yes」)、即ち通信量が安定していると判断された場合、判定部126は、「安定化待機モード」を終了させる。
一方、通信量の変化指数が閾値よりも小さいと判断されない場合(ステップS203の「No」)、即ち通信量が安定していないと判断された場合、データ通信量測定部124は、再度、通信モジュール123による通信量を取得する(ステップS201)。即ち、再度、安定化待機モードが実施されることとなる。
以上のように、本実施形態では、「サーチモード」の終了後、通信モジュール123による通信量が安定するまで「安定化待機モード」を実施する。このため、CPU101の動作周波数の上限値の設定を最適化する「サーチモード」は、通信モジュール123による通信量が安定してから開始されることとなる。
[サーチモード]
図6は、第1の実施形態にかかる「サーチモード」のフローチャートである。
図6に示すように、「サーチモード」の開始後、先ず、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を1つ分だけ上昇させる(ステップS301)。
次に、判定部126は、データ通信量測定部124により取得された通信量に基づき、通信モジュール123による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する(ステップS302)。即ち、CPU101の動作周波数の上限値の設定を1つ分だけ上昇させたときに、通信量が、どのような変化したのかを判断する。
ここで、通信量が増加したと判断された場合(ステップS302の「増加」)、CPU101の処理能力が通信のボトルネックとなっていると推測される。このため、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、さらに1つ分だけ上昇させる(ステップS301)。
一方、通信量が減少したと判断された場合(ステップS302の「減少」)、CPU101の動作周波数の上限値を上昇させたにも拘わらず、通信量が減少していることから、CPU101の処理能力に無関係の事象に起因すると推測される。例えば、通信環境の変化などに起因して、通信量が減少したと推測される。このため、制御部127は、CPU101の動作周波数の上限値を制御することなく、「サーチモード」を終了させる。
又、通信量が変化しないと判断された場合(ステップS302の「変化なし」)、CPU101の動作周波数の上限値を上昇させたことに起因して、CPU101の処理能力が通信のボトルネックでなくなったと推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、直前の上限値に変更する(ステップS303)。即ち、直前の動作周波数の上限値が最適値であると推測して、CPU101の動作周波数の上限値の設定を、直前の上限値に戻すのである。
以上のように、本実施形態では、通信量が増加しなくなるまで、CPU101の動作周波数を1つ分ずつ上昇させることで、CPU101の処理能力が通信のボトルネックとなっている状況を解消する。
次に、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を1つ分だけ低下させる(ステップS304)。
次に、判定部126は、データ通信量測定部124により取得された通信量に基づき、通信モジュール123による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する(ステップS305)。
ここで、通信量が変化しないと判断された場合(ステップS305の「変化なし」)、CPU101の処理能力が通信のボトルネックではないどころか、CPU101の動作周波数の上限値を低下させる余地があると推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、さらに1つ分だけ低下させる(ステップS304)。
一方、通信量が減少したと判断されたら(ステップS305の「減少」)、CPU101の動作周波数の上限値を低下させたことに起因して、CPU101の処理能力が通信のボトルネックとなったと推測される。このため、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、直前の上限値に変更する(ステップS306)。即ち、直前の動作周波数の上限値が最適値であると推測して、CPU101の動作周波数の上限値の設定を、直前の上限値に戻すのである。
又、通信量が増加したと判断された場合(ステップS305の「増加」)、CPU101の動作周波数の上限値を低下させたにも拘わらず、通信量が増加していることから、CPU101の処理能力に無関係の事象に起因すると推測される。例えば、通信環境の変化などに起因して、通信量が増加したと推測される。このため、制御部127は、CPU101の動作周波数の上限値を制御することなく、「サーチモード」を終了させる。
以上のように、本実施形態では、CPU101の処理能力がボトルネックである場合、通信量が増加しなくなるまで、即ちCPU101の処理能力が通信のボトルネックでなくなるまで、CPU101の動作周波数の上限値の設定を1つ分ずつ上昇させる。このため、CPU101の処理能力が通信のボトルネックである状況を簡単に解消することができる。これにより、通信モジュール123による通信が、CPU101の処理能力により阻害されることがなくなるので、通信の開始から終了までの継続時間(通信時間)を短縮することができる。このため、例えばネットワークI/F111などの稼働時間が短縮して、結果として、携帯端末装置100の消費電力を抑制することができる。
さらに、本実施形態では、CPU101の処理能力が通信のボトルネックでない場合、通信量が減少するまで、即ちCPU101の処理能力が通信のボトルネックとなるまで、CPU101の動作周波数の上限値の設定を1つ分ずつ低下させる。このため、CPU101の処理能力が必要最小に抑制されていない状況、即ちCPU101が過剰な処理能力を発揮している状況を簡単に解消することができる。これにより、CPU101の消費電力が、CPU負荷に見合ったものとなり、携帯端末装置100の消費電力を抑制することができる。
[CPU動作周波数上限制御処理による状態遷移]
図7は、第1の実施形態にかかるCPU動作周波数上限制御処理の状態遷移図である。
図7に示すように、CPU動作周波数上限制御処理では、初期状態、テスト状態、増加探索状態、減少探索状態が定義されている。
先ず、(1)初期状態に於いて、CPU負荷が閾値未満である場合、図中の「fnext=fk−1」で示すように、CPU101の動作周波数の上限値を1つ分だけ低下させる。初期状態は、CPU負荷が閾値以上、かつ、通信量が変化しなくなるまで継続する。
(2)一方、初期状態に於いて、CPU負荷が閾値以上、かつ、通信量が変化しない場合(通信量が安定している場合)、CPU101の動作周波数の上限値を1つ分だけ上昇させて、テスト状態に遷移する。
(3)テスト状態に於いて、通信量が増加した場合、図中の「fnext=fk+1」で示すように、CPU101の動作周波数の上限値を1つ分だけ上昇させて、増加探索状態に遷移する。
(4)動作探索状態に於いて、通信量が増加した場合、図中の「fnext=fk+1」で示すように、CPU101の動作周波数の上限値を1つ分だけ上昇させる。増加探索状態は、通信量が増加しなくなるまで継続する。
(5)増加探索状態に於いて、通信量が変化しなかった場合、図中の「fnext=fk−1」で示すように、CPU101の動作周波数の上限値を1つ分だけ低下させて、初期状態に遷移する。一方、増加探索状態に於いて、通信量が減少した場合、CPU101の動作周波数の上限値を変化させることなく、初期状態に遷移する。
(6)一方、テスト状態に於いて、通信量が増加しなかった場合、図中の「fnext=fk−1」で示すように、CPU101の動作周波数の上限値を1つ分だけ低下させて、減少探索状態に遷移する。
(7)減少探索状態に於いて、通信量が変化しなかった場合、図中の「fnext=fk−1」で示すように、CPU101の動作周波数の上限値を1つ分だけ減少させる。減少探索状態は、通信量が変化するまで継続する。
(8)減少探索状態に於いて、通信量が減少した場合、図中の「fnext=fk+1」で示すように、CPU101の動作周波数の上限値を1つ分だけ上昇させて、初期状態に遷移する。一方、減少探索状態に於いて、通信量が増加した場合、CPU101の動作周波数の上限値を変化させることなく、初期状態に遷移する。
[第2の実施形態]
以下、図8〜図12を参照して、第2の実施形態を説明する。但し、第1の実施形態と同等の構成や機能の説明は省略することとする。
[CPU動作周波数上限制御処理]
図8は、第2の実施形態にかかるCPU動作周波数上限制御処理のフローチャートである。
図8に示すように、先ず、判定部126は、CPU負荷測定部125により取得されたCPU負荷に基づき、該CPU負荷が、事前に設定された閾値よりも大きいかどうかを判断する(ステップS401)。
ここで、CPU負荷が閾値よりも大きいと判断された場合(ステップS401の「Yes」)、CPU101の処理能力が通信のボトルネックとなる恐れがある。このため、判定部126は、サブルーチンとしての「制御モード」の開始を指示する(ステップS402)。「制御モード」は、通信モジュール123による通信中に、CPU101の動作周波数の上限値の設定を最適化するモードである。「制御モード」の詳細は、後述することとする。
一方、CPU負荷が閾値よりも大きいと判断されない場合(ステップS401の「No」)、CPU101の処理能力が通信のボトルネックではないどころか、CPU101の動作周波数の上限値を低下させる余地があると推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を1つ分だけ低下させる(ステップS403)。
[制御モード]
図9は、第2の実施形態にかかる「制御モード」のフローチャートである。
図9に示すように、「制御モード」の開始後、先ず、判定部126は、データ通信量測定部124により取得された通信量に基づき、通信モジュール123による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する(ステップS501)。
ここで、通信量が変化しないと判断された場合(ステップS501の「変化なし」)、即ち通信量が安定していると判断された場合、判定部126は、サブルーチンとしての「サーチモード」の開始を指示する(ステップS102)。なお、「サーチモード」は、第1の実施形態にかかる「サーチモード」と同等である。
一方、通信量が増加したと判断された場合(ステップS501の「増加」)、判定部126は、サブルーチンとしての「増加モード」の開始を指示する(ステップS502)。「増加モード」は、通信モジュール123による通信量が増加傾向にあるときに、即ち増加期間(図4参照)にあるときに、CPU101の処理能力が将来的に通信のボトルネックとならないように、事前にCPU101の動作周波数の上限値の設定を制御するモードである。即ち、「増加モード」は、通信モジュール123による通信量が増加傾向にあるときに実施される。「増加モード」の詳細は、後述することとする。
又、通信量が減少したと判断された場合(ステップS501の「減少」)、判定部126は、サブルーチンとしての「減少モード」の開始を指示する(ステップS503)。「減少モード」は、通信モジュール123による通信量が減少傾向にあるときに、即ち減少期間(図4参照)にあるときに、CPU101が過剰な処理能力を発揮しないように、事前にCPU101の動作周波数の上限値の設定を制御するモードである。即ち、「減少モード」は、通信モジュール123による通信量が減少傾向にあるときに実施される。「減少モード」の詳細は、後述することとする。
[増加モード]
図10は、第2の実施形態にかかる「増加モード」のフローチャートである。図11は、第2の実施形態にかかるCPU101の動作周波数の上限値の遷移グラフである。
図10に示すように、「増加モード」の開始後、先ず、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、1つ分だけ上昇させる(ステップS601)。 次に、判定部126は、データ通信量測定部124により取得された通信量に基づき、通信モジュール123による通信量が、前回の測定による通信量を基準として、増加したか、減少したか、もしくは、変化しないか、を判断する(ステップS602)。
ここで、通信量が増加したと判断された場合(ステップS602の「増加」)、CPU101の処理能力が通信のボトルネックとなっていたと推測される。このため、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、さらに1つ分だけ上昇させる(ステップS601)。即ち、本実施形態では、通信量が増加しなくなるまで、図11に示すように、CPU101の動作周波数の上限値を、通信量の測定毎に、1つ分ずつ増加させる。
一方、通信量が変化しないと判断された場合(ステップS602の「変化なし」)、CPU101の動作周波数の上限値を上昇させたことに起因して、CPU101の処理能力が通信のボトルネックでなくなったと推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、直前の上限値に変更する(ステップS603)。即ち、直前の動作周波数の上限値が最適値であると推測して、CPU101の動作周波数の上限値の設定を、直前の上限値に戻すのである。
又、通信量が減少したと判断された場合(ステップS602の「減少」)、CPU101の動作周波数の上限値を上昇させたにも拘わらず、通信モジュール123による通信量が減少したことから、CPU101の処理能力に無関係の事象に起因すると推測される。例えば、通信環境の変化などに起因して、通信量が減少したと推測される。このため、制御部127は、CPU101の動作周波数の上限値を制御することなく、「増加モード」を終了させる。
以上のように、本実施形態では、通信量が増加傾向にある場合、CPU101の処理能力が通信のボトルネックであるかどうかに拘わらず、通信量が増加しなくなるまで、CPU101の動作周波数の上限値の設定を、1つ分ずつ上昇させる。このため、仮に、通信量の測定時に、CPU101の処理能力が通信のボトルネックでなくても、通信量の増加に起因して、将来的にCPU101の処理能力が通信のボトルネックになることを、未然に防止することができる。
[減少モード]
図12は、第2の実施形態にかかる「減少モード」のフローチャートである。
図12に示すように、「減少モード」の開始後、先ず、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、1つ分だけ上昇させる(ステップS701)。
次に、判定部126は、データ通信量測定部124により取得された通信量に基づき、通信モジュール123による通信量が、前回の測定による通信量を基準として、増加したかどうかを判断する(ステップS702)。
ここで、通信量が増加したと判断された場合(ステップS702の「増加」)、CPU101の処理能力が通信のボトルネックとなっていたと推測される。このため、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、1つ分だけ上昇させる(ステップS701)。
一方、通信量が増加しないと判断された場合(ステップS702の「増加しない」)、即ち通信量が減少する、もしくは通信量が変化しないと判断された場合、CPU101の処理能力が通信のボトルネックとなっていないと推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、直前の上限値に変更する(ステップS703)。即ち、直前に設定された動作周波数の上限値が最適値であると推測して、CPU101の動作周波数の上限値の設定を、直前の上限値に戻すのである。
以上のように、本実施形態では、通信量が減少傾向にある場合にも、CPU101の処理能力が通信のボトルネックであるかどうかに拘わらず、通信量が増加しなくなるまで、CPU101の動作周波数の上限値の設定を、1つ分ずつ上昇させる。このため、CPU101の処理能力が通信のボトルネックとなっている状況を確実に解消することができる。
[第3の実施形態]
以下、図13、図14を参照して、第3の実施形態を説明する。但し、第1、第2の実施形態と同等の構成や機能の説明は省略することとする。
[増加モード]
図13は、第3の実施形態にかかる「増加モード」のフローチャートである。図14は、第3実施形態にかかるCPU101の動作周波数の上限値の遷移グラフである。
本実施形態にかかる「増加モード」は、第2の実施形態にかかる「増加モード」の変形例である。
図13に示すように、「増加モード」の開始後、先ず、制御部127は、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値の設定を、最大値まで上昇させる(ステップS801)。最大値としては、例えばCPU101毎に設定されている物理的上限値や、CPU101の発熱を考慮して設定される熱的上限値などを使用しても良い。
次に、判定部126は、CPU負荷測定部125により取得されたCPU負荷に基づき、該CPU負荷が、事前に設定された閾値よりも大きいかどうかを判断する(ステップS802)。
ここで、CPU負荷が閾値よりも大きいと判断された場合(ステップS802の「Yes」)、CPU101の動作周波数の上限値が必要最小限に抑制されている、即ちCPU101が過剰な処理能力を発揮していないと推測される。このため、判定部126は、「増加モード」を終了させる。
一方、CPU負荷が閾値よりも大きいと判断されない場合(ステップS802の「No」)、CPU101の動作周波数の上限値が必要最小限まで抑制されていない、即ちCPU101が過剰な処理能力を発揮していると推測される。このため、制御部127は、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御モジュール121は、制御部127からの指示に基づき、CPU101の動作周波数の上限値を、1つ分だけ低下させる(ステップS803)。即ち、本実施形態では、通信量が増加傾向にある場合、図13に示すように、先ず、CPU101の動作周波数の上限値を最大値まで上昇させ、その後、CPU負荷に基づき、CPU101の動作周波数の上限値を、1つ分ずつ低下させる。
以上のように、本実施形態では、通信量が増加傾向にある場合、先ず、CPU101の動作周波数の上限値を最大値まで上昇させる。このため、CPU101の処理能力が通信のボトルネックとなることを確実に回避することができる。
しかも、CPU101の動作周波数の上限値を最大値まで上昇させた後、CPU負荷が閾値より大きくなるまで、CPU101の動作周波数の上限値の設定を、1つ分ずつ低下させる。このため、CPU101の動作周波数の上限値を最大値まで上昇させることで、CPU101が過剰な処理能力を発揮する状況になっても、本実施形態にかかる「増加モード」を実施することで、CPU101の処理能力を必要最小限に抑制することができる。
[第4の実施形態]
以下、図15、図16を参照して、第4の実施形態を説明する。但し、第1〜第3の実施形態と同等の構成や機能の説明は省略することとする。
図15は、第4の実施形態にかかるCPU101の動作周波数の遷移グラフである。
本実施形態では、CPU101の動作周波数の遷移履歴(統計情報)に基づき、CPU負荷を算出する。具体的には、図15に示すように、前回の測定から今回の測定までの観測時間(T0)のうち、CPU101の動作周波数が上限値に到達していた動作時間(T1)の割合(T1/T0)を、CPU負荷として使用する。従って、本実施形態にかかる携帯端末装置100Aは、以下のように構成される。
図16は、第4の実施形態にかかる携帯端末装置100Aの機能ブロックの概略図である。
図16に示すように、CPU動作周波数制御モジュール121は、CPU101の動作周波数の遷移履歴(統計情報)を管理している。統計情報は、OS1000の起動から現在までに計測されたCPU101の動作時間を、動作周波数毎に累積したものである。統計情報は、例えば50[msec]毎に、CPU動作周波数制御モジュール121により更新される。
CPU負荷測定部125Aは、CPU動作周波数制御モジュール121から取得されるCPU101の動作周波数の統計情報に基づき、CPU負荷を算出する。具体的には、CPU負荷測定部125Aは、CPU負荷の測定毎に、CPU動作周波数制御モジュール121からCPU101の動作周波数の統計情報を取得する。さらに、CPU負荷測定部125Aは、前回の測定により取得された統計情報と、今回の測定により取得された統計情報と、の差分を算出する。続いて、CPU負荷測定部125Aは、統計情報の差分に基づき、前回の測定から今回の測定までの観測時間T0に、CPU101の動作周波数が上限値に到達していた動作時間T1を取得する。最後に、CPU負荷測定部125Aは、数式(2)を使用して、CPU負荷を算出する。
本実施形態によれば、短期間に更新されるCPU101の動作周波数の統計情報に基づき、前回の測定から今回の測定までの観測時間(T0)のうち、CPU101の動作周波数が上限値に到達している動作時間(T1)の割合を、CPU負荷としている。このため、それぞれの観測期間のCPU負荷を、より正確に把握することができる。しかも、CPU101の動作周波数の統計情報は、ミドルウェアやアプリケーションから容易に読み取ることができる。このため、CPU101の動作周波数の統計情報を使用すれば、簡単に携帯端末装置100に実装することができる。
なお、本実施形態では、CPU負荷として、観測時間のうち、CPU101の動作周波数が上限値に到達していた動作時間の割合を使用しているが、本発明は、これに限定されるものではない。例えば、CPU101の動作周波数の統計情報から算出され、かつ、CPU負荷に相関性のあるものであれば、例えばCPU101の動作周波数の平均値などをCPU負荷としても良い。
[第5の実施形態]
以下、図17〜図19を参照しながら、第5の実施形態を説明する。但し、第1〜第3の実施形態と同等の構成や機能の説明は省略することとする。
図17は、第5の実施形態にかかるCPU101の動作周波数の遷移グラフである。
本実施形態では、CPU101の動作周波数の上限値を基準とする動作周波数(実際の動作周波数)の比率と、CPU利用率と、に基づき、CPU負荷を算出する。具体的には、図17に示すように、CPU利用率に、CPU101の動作周波数の上限値を基準とする動作周波数の比率を掛け合わせた、いわゆる重み付けCPU利用率の平均値を、CPU負荷として使用する。従って、本実施形態にかかる携帯端末装置100Bは、以下のように構成される。
図18は、第5の実施形態にかかる携帯端末装置100Bの機能ブロックの概略図である。
図18に示すように、CPU動作周波数制御モジュール121は、CPU101の動作周波数の遷移履歴(統計情報)を管理している。統計情報は、OS1000の起動から現在までに計測されたCPU101の動作時間を、動作周波数毎に累積したものである。統計情報は、例えば50[msec]毎に、CPU動作周波数制御モジュール121により更新される。
CPU負荷測定部125Bは、CPU動作周波数制御モジュール121から取得されるCPU101の動作周波数の統計情報と、スケジューラ122から取得されるCPU利用率と、に基づき、CPU負荷を算出する。具体的には、CPU負荷測定部125は、前回の測定から今回の測定までの観測時間毎に、数式(3)を使用して、CPU負荷を算出する。
数式(3)は、それぞれの観測期間を微小区間に分割して、微小区間毎に、動作周波数の上限値を基準とする実際の動作周波数の比率と、CPU利用率と、を掛け合わせたものを、観測期間にわたり合算して、観測時間で除算するものである。
本実施形態によれば、CPU負荷として、単にCPU利用率を使用するのではなく、動作周波数の上限値を基準とする動作周波数の比率を考慮している。このため、それぞれの観測期間のCPU負荷を、より正確に把握することができる。
なお、本実施形態では、CPU負荷測定部125BがCPU負荷を算出しているが、本発明は、これに限定されるものではない。例えば、CPU負荷を算出する為の機能を、カーネルに持たせても良い。
[変形例]
図19は、第5の実施形態の変形例にかかる携帯端末装置100Bの機能ブロックの概略図である。
図19に示すように、本変形例にかかる携帯端末装置100Bは、カーネルの機能ブロックとして、CPU負荷を算出する為のCPU負荷算出部128を備える。カーネルの機能ブロックとして、CPU負荷算出部128を備える場合、非常に短い観測期間に実行される数式(3)による演算に充分に対応することができる。なお、CPU負荷算出部128は、CPU101が、メインメモリ102にOS1000のカーネルを読み込むとともに、該メインメモリ102に読み込んだカーネルを実行することで実現される。
[第6の実施形態]
以下、図20、図21を参照して、第6の実施形態を説明する。但し、第1〜3の実施形態と同等の構成や機能の説明は省略することとする。
図20は、第6の実施形態にかかる携帯端末装置100Cの機能ブロックの概略図である。
本実施形態では、ネットワークI/F111を出入りするパケット数に基づき、通信量を算出する。
通信モジュール123は、OS1000の起動から現在までに、ネットワークI/F111を出入りしたパケット数の累積値を記録する。さらに、通信モジュール123は、ネットワークI/F111を出入りするパケットのサイズ(パケットサイズ)の平均値を算出する。
データ通信量測定部124Cは、前回の測定により取得されたパケット数の累積値と、今回の測定により取得されたパケット数の累積値と、の差分、即ち前回の測定から今回の測定までの観測時間にネットワークI/F111を出入りしたパケット数を算出する。さらに、データ通信量測定部124Cは、観測時間にネットワークI/F111を出入りしたパケット数と、通信モジュール123により算出されるパケットサイズの平均値と、に基づき、単位時間あたりの通信量を算出する。具体的には、データ通信量測定部124Cは、数式(4)を使用して、単位時間あたりの通信量を算出する。
本実施形態によれば、通信モジュール123により記録されているパケット数の累積値と、通信モジュール123により管理されているパケットサイズと、に基づき、観測時間毎の通信量を算出する。このため、OS1000に標準的に搭載されている機能だけを用いて、単位時間あたりの通信量の算出を実現することができる。
[第7の実施形態]
以下、第7の実施形態を説明する。但し、第1〜第3の実施形態と同等の構成や機能は説明を省略することとする。
図21は、第7の実施形態にかかる携帯端末装置100Dの機能ブロックの概略図である。
本実施形態では、TCP(Transmission Control Protocol)のウィンドウサイズに基づき、単位時間あたりの通信量を算出する。
通信モジュール123は、TCPコネクション毎に、ウィンドウサイズと、RTT(Round Trip Time)と、を管理する。
データ通信量測定部124Dは、通信モジュール123から取得されたTCPのウィンドウサイズ及びRTTに基づき、単位時間あたりの通信量を算出する。具体的には、データ通信量測定部124Dは、先ず、数式(5)を使用して、TCPコネクション毎のスループットを算出する。
続いて、データ通信量測定部124は、数式(6)を使用して、全TCPコネクションのスループットの総計を、通信量として算出する。
本実施形態によれば、TCPのウィンドウサイズ及びRTTに基づき、TCPコネクション毎のスループットを算出し、全てのTCPコネクションのスループットの総計を、通信量としている。このため、通信量の時間平均を算出することなく、通信量を取得することができる。
[第8の実施形態]
以下、図22、図23を参照して、第8の実施形態を説明する。但し、第1〜第3の実施形態と同等の構成や機能は説明を省略することとする。
本実施形態では、通信が付随する機能を有するアプリケーションプログラム(以下、通信アプリとする)の動作時間(CPU負荷)と、通信アプリに付随するOS1000のカーネルの動作時間(CPU処理)と、携帯端末装置100Eの通信可能な帯域幅と、に基づき、CPU101の動作周波数の上限値を決定する。
なお、通信アプリとしては、いわゆる天気アプリなどがある。天気アプリは、例えば携帯端末装置100Eの位置及び時間に基づき、携帯端末装置100Eに天気情報を通知するものである。天気アプリでは、携帯端末装置100Eからサーバに位置情報を通知する際、及びサーバから携帯端末装置100Eに天気情報を通知する際に、通信が発生する。但し、天気アプリは、あくまでも通信アプリの一例であって、本実施形態は、これに限定されるものではない。
[携帯端末装置100Eの機能ブロック]
図22は、第8の実施形態にかかる携帯端末装置100Eの機能ブロックの概略図である。
図22に示すように、本実施形態にかかる携帯端末装置100Eは、さらに、プロセス管理部129を備える。プロセス管理部129は、CPU101が、メインメモリ102にOS1000のカーネルを読み込むとともに、該メインメモリ102に読み込んだカーネルを実行することで実現される。
プロセス管理部129は、CPU101により実行されるプロセスの動作状況を管理する。具体的には、プロセス管理部129は、CPU101により実行されるプロセスの動作状況を定期的に観測して、プロセス毎の動作時間の累積値、例えばユーザモード動作時間(Utime)、カーネルモード動作時間(Stime)を更新する。ユーザモード動作時間は、アプリケーションプログラムの動作時間の累積値である。カーネルモード動作時間は、例えばアプリケーションプログラムのプロセス実行に付随するOS1000のカーネルの動作時間の累積値である。
データ通信量測定部124Eは、プロセス管理部129により管理されるプロセスの動作状況に基づき、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するOS1000のカーネルの単位時間あたりの動作時間と、を算出する。さらに、データ通信量測定部124Eは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するOS1000のカーネルの単位時間あたりの動作時間と、に基づき、通信アプリによる無線回線の単位時間あたりの通信量の理論最大値、即ち理論最大通信量を算出する。
判定部126Eは、通信モジュール123により管理される携帯端末装置100Eの通信可能な帯域幅と、データ通信量測定部124Eにより算出された理論最大通信量と、に基づき、帯域幅が理論最大通信量よりも大きいかどうかを判断する。
制御部127Eは、判定部126Eによる判断結果に基づき、CPU101の動作周波数の上限値の上昇もしくは低下をCPU動作周波数制御モジュール121に指示する。
[CPU動作周波数上限制御処理]
図23は、第8の実施形態にかかるCPU動作周波数上限制御処理のフローチャートである。
図23に示すように、先ず、データ通信量測定部124Eは、プロセス管理部129により管理されるプロセスの動作状況に基づき、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するOS1000のカーネルの単位時間あたりの動作時間と、を算出する(ステップS901)。
次に、データ通信量測定部124Eは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するOS1000のカーネルの単位時間あたりの動作時間と、の合計時間を算出する(ステップS902)。
次に、データ通信量測定部124Eは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するOS1000のカーネルの単位時間あたりの動作時間と、の合計時間に基づき、通信アプリによる無線回線の通信量の理論最大値、即ち理論最大通信量を算出する(ステップS903)。具体的には、データ通信量測定部124Eは、通信アプリの単位時間あたりの動作時間と、通信アプリに付随するOS1000のカーネルの単位時間あたりの動作時間と、の合計時間のすべてを通信処理に割り当てた場合の通信量、即ち理論最大通信量を算出する。
次に、判定部126Eは、通信モジュール123により管理される携帯端末装置100Eの通信可能な帯域幅と、データ通信量測定部124Eにより算出された理論最大通信量と、に基づき、帯域幅が理論最大通信量よりも大きいかどうかを判断する(ステップS904)。
ここで、帯域幅が理論最大通信量よりも大きいと判断された場合(ステップS904のYes)、CPU101の処理能力が通信のボトルネックとなっていると推測される。このため、制御部127Eは、CPU101の動作周波数の上限値の上昇をCPU動作周波数制御モジュール121に指示する。CPU動作周波数制御御モジュール121は、制御部127Eからの指示に基づき、CPU101の動作周波数の上限値の設定を1つ分だけ上昇させる(ステップS905)。
一方、帯域幅が理論最大通信量よりも大きいと判断されない場合(ステップS904のNo)、CPU101の処理能力が通信のボトルネックではないと推測される。このため、制御部127Eは、CPU101の動作周波数の上限値の低下をCPU動作周波数制御モジュール121に指示しても良い。CPU動作周波数制御モジュール121は、制御部127Eからの指示があれば、CPU101の動作周波数の上限値の設定を1つ分だけ低下させる(ステップS906)。
以上のように、本実施形態では、携帯端末装置100Eの通信可能な帯域幅が、通信アプリの理論最大通信量よりも大きい場合、CPU101の処理能力がボトルネックとなっている、即ちCPU101が、確保されている帯域幅を充分に利用しきれない程度の処理能力しか発揮していないと判断して、CPU101の動作周波数の上限値の設定を上昇させる。このため、通信モジュール123による通信量が上昇し、結果として、携帯端末装置100Eの消費電力を抑制することができる。
さらに、携帯端末装置100Eの通信可能な帯域幅が、通信アプリの理論最大通信量よりも小さい場合、CPU101の処理能力が通信のボトルネックとなっていない、即ちCPU101の動作周波数の上限値を低下させる余地があると判断して、CPU101の動作周波数の上限値の設定を低下させる。このため、携帯端末装置100Eの無駄な消費電力を削減することができる。
なお、本実施形態では、帯域幅が通信アプリの理論最大通信量よりも大きいもしくは小さい場合に、CPU101の動作周波数の上限値の設定を1つ分ずつ低下もしくは上昇させている。しかし、本発明は、これに限定されるものではない。例えば、通信アプリの動作時間(CPU負荷)及びOS1000のカーネルの動作時間(CPU負荷)に基づき、CPU101の動作周波数の上限値そのものを決定しても良い。即ち、帯域幅が理論最大通信量と同等になるCPU101の動作周波数を算出して、これをCPU101の動作周波数の上限値に設定しても良い。
100:携帯端末装置
100A、100B、100C、100D、100E: 携帯端末装置
101:CPU
111:ネットワークI/F
121:CPU動作周波数制御モジュール
122:スケジューラ
123:通信モジュール
124、124C、124D、124E:データ通信量測定部
125、125A、125B:CPU負荷測定部
126、126E:判定部
127、127E:制御部
128:CPU負荷算出部
129:プロセス管理部

Claims (14)

  1. 通信に関連するアプリを実行し、且つ処理の負荷に応じて動作周波数が上限値内で変化するCPUを有する携帯端末装置の制御方法に於いて、前記携帯端末装置が、
    異なる時刻における無線回線の通信量を測定し、
    前記CPUの負荷が第1閾値よりも大きいと判定され、且つ前記通信量の変動が第2閾値よりも小さいと判定された場合、
    記CPUの動作周波数の前記上限値を変化させ、
    前記動作周波数の前記上限値を変化させることによって前記通信量に変化が生じたかどうかを判定し、
    前記通信量に変化が生じたかどうかの判定結果に基づき、前記動作周波数の前記上限値を定し、
    前記CPUの負荷が前記第1閾値よりも大きいと判定され、且つ測定された前記通信量に基づいて、前記通信量の変動が前記第2閾値以上であると判定された場合、前記動作周波数の前記上限値を決定することを抑制する、携帯端末装置の制御方法。
  2. 請求項1に記載の携帯端末装置の制御方法に於いて、
    前記CPUの動作周波数を上昇させ、
    前記動作周波数の上昇後に前記通信量が増加した場合、前記CPUの動作周波数の前記上限値を、前記上昇前の動作周波数よりも高い動作周波数に設定する、携帯端末装置の制御方法。
  3. 請求項2に記載の携帯端末装置の制御方法に於いて、
    前記CPUの動作周波数を上昇させ、
    前記動作周波数の上昇後に前記通信量が増加しない場合、前記CPUの動作周波数の前記上限値を、前記上昇前の動作周波数、もしくは、前記上昇前の動作周波数よりも低い動作周波数に設定する、携帯端末装置の制御方法。
  4. 請求項1乃至3の何れかに記載の携帯端末装置の制御方法に於いて、
    前記CPUの動作周波数を低下させ、
    前記動作周波数の低下後に前記通信量が減少しない場合、前記CPUの動作周波数の前記上限値を、前記低下前の動作周波数よりも低い動作周波数に設定する、携帯端末装置の制御方法。
  5. 請求項4に記載の携帯端末装置の制御方法に於いて、
    前記CPUの動作周波数を低下させ、
    前記動作周波数の低下後に前記通信量が減少した場合、前記CPUの動作周波数の前記上限値を、前記低下前の動作周波数、もしくは、前記低下前の動作周波数よりも高い動作周波数に設定する、携帯端末装置の制御方法。
  6. 請求項1乃至5の何れかに記載の携帯端末装置の制御方法に於いて、さらに、
    前記CPUの利用率に基づき、前記CPUの動作周波数の前記上限値を変化させるかどうかを判断する、携帯端末装置の制御方法。
  7. 請求項1乃至6の何れかに記載の携帯端末装置の制御方法に於いて、さらに、
    前記動作周波数の変更前の前記通信量が増加している場合に、前記動作周波数の上限値を上昇させる、携帯端末装置の制御方法。
  8. 請求項7に記載の携帯端末装置の制御方法に於いて、さらに、
    前記動作周波数の前記上限値の変更前の前記通信量が増加している場合に、前記動作周波数の上限値を、前記CPUの動作周波数の最大値まで上昇させる、携帯端末装置の制御方法。
  9. 請求項1乃至8の何れかに記載の携帯端末装置の制御方法に於いて、
    前記CPUは、前記通信に関連する処理の他に、通信に関連しない処理を実行する、携帯端末装置の制御方法。
  10. 通信に関連するアプリを実行し、且つ処理の負荷に応じて動作周波数が上限値内で変化するCPUを有する携帯端末装置に於いて、
    異なる時刻における無線回線の通信量を測定する測定部と、
    前記CPUの負荷が第1閾値よりも大きいか否かを判定する処理と、前記測定部によって測定された前記通信量に基づいて、前記通信量の変動が第2閾値よりも小さいか否かを判定する処理とを実行する第1判定部と、
    前記第1判定部によって、前記CPUの負荷が前記第1閾値よりも大きいと判定され、且つ前記通信量の変動が前記第2閾値よりも小さいと判定された場合、前記CPUの前記動作周波数の前記上限値を変化させ、前記動作周波数の前記上限値を変化させることによって前記通信量に変化が生じたかどうかを判定する第2判定部と
    前記第2判定部による、前記通信量に変化が生じたかどうかの判定結果に基づき、前記動作周波数の前記上限値を決定する第1制御部と、
    前記第1判定部によって、前記CPUの負荷が前記第1閾値よりも大きいと判定され、且つ前記通信量の変動が前記第2閾値以上であると判定された場合、前記動作周波数の前記上限値を決定することを抑制する第2制御部と、
    を備える携帯端末装置。
  11. 通信に関連するアプリを実行し、且つ処理の負荷に応じて動作周波数が上限値内で変化するCPUを有する携帯端末装置に、
    異なる時刻における無線回線の通信量を測定し、
    前記CPUの負荷が第1閾値よりも大きいと判定され、且つ前記通信量の変動が第2閾値よりも小さいと判定された場合、
    前記CPUの前記動作周波数の前記上限値を変化させ、
    前記動作周波数の前記上限値を変化させることによって前記通信量に変化が生じたかどうかを判定し、
    前記通信量に変化が生じたかどうかの判定結果に基づき、前記動作周波数の前記上限値を決定し、
    前記CPUの負荷が前記第1閾値よりも大きいと判定され、且つ測定された前記通信量に基づいて、前記通信量の変動が前記第2閾値以上であると判定された場合、前記動作周波数の前記上限値を決定することを抑制する処理を実行させるための制御プログラム。
  12. 通信に関連するアプリをOSカーネル上で実行し、且つ処理の負荷に応じて動作周波数が上限値内で変化するCPUを備える携帯端末装置の制御方法に於いて、
    前記通信に関連するアプリの実行によるCPU負荷と、前記通信に関連するアプリに付随する前記OSカーネルの実行によるCPU負荷と、の合計に基づき、前記通信に関連するアプリによる無線回線の通信量の理論最大値を算出し、
    記携帯端末装置の通信可能な帯域幅と、前記通信量の理論最大値と、の比較結果に基づき、前記CPUの前記動作周波数の前記上限値を決定する、携帯端末装置の制御方法。
  13. 請求項12に記載の携帯端末装置の制御方法に於いて、
    前記携帯端末装置の通信可能な帯域幅が前記通信量の理論最大値よりも大きい場合、前記CPUの前記動作周波数の前記上限値を上昇させる、携帯端末装置の制御方法。
  14. 請求項13に記載の携帯端末装置の制御方法に於いて、
    前記携帯端末装置の通信可能な帯域幅が前記通信量の理論最大値よりも小さい場合、前記CPUの前記動作周波数の前記上限値を低下させる、携帯端末装置の制御方法。
JP2012208900A 2012-09-21 2012-09-21 携帯端末装置の制御方法、制御プログラム、携帯端末装置 Expired - Fee Related JP6048030B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012208900A JP6048030B2 (ja) 2012-09-21 2012-09-21 携帯端末装置の制御方法、制御プログラム、携帯端末装置
US13/954,309 US9526026B2 (en) 2012-09-21 2013-07-30 Method for controlling information processing apparatus and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012208900A JP6048030B2 (ja) 2012-09-21 2012-09-21 携帯端末装置の制御方法、制御プログラム、携帯端末装置

Publications (2)

Publication Number Publication Date
JP2014063398A JP2014063398A (ja) 2014-04-10
JP6048030B2 true JP6048030B2 (ja) 2016-12-21

Family

ID=50338733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012208900A Expired - Fee Related JP6048030B2 (ja) 2012-09-21 2012-09-21 携帯端末装置の制御方法、制御プログラム、携帯端末装置

Country Status (2)

Country Link
US (1) US9526026B2 (ja)
JP (1) JP6048030B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102270239B1 (ko) * 2014-08-07 2021-06-28 삼성전자 주식회사 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치
KR102525295B1 (ko) * 2016-01-06 2023-04-25 삼성전자주식회사 데이터 관리 방법 및 장치
KR102661491B1 (ko) 2016-12-26 2024-04-29 삼성전자주식회사 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법
CN113366409B (zh) * 2019-01-08 2024-07-23 惠普发展公司,有限责任合伙企业 稳定处理设备的性能
KR20200101210A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 프로세서의 동작 주파수를 결정하는 방법
WO2024161502A1 (ja) * 2023-01-31 2024-08-08 日本電信電話株式会社 通信制御装置、無線アクセスシステム、通信制御方法およびプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01292416A (ja) 1988-05-19 1989-11-24 Fuji Facom Corp プロセッサの消費電力低減方式
JP2005182473A (ja) * 2003-12-19 2005-07-07 Toshiba Corp 周波数制御方法および情報処理装置
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
CN100412814C (zh) * 2005-04-12 2008-08-20 鸿富锦精密工业(深圳)有限公司 中央处理器超频系统及方法
CN101223490A (zh) * 2005-07-14 2008-07-16 Nxp股份有限公司 使用历史负载简档来动态调整手持多媒体设备处理器内核的工作频率及可用功率
US7562234B2 (en) * 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
US8370663B2 (en) * 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
JP2010039791A (ja) * 2008-08-05 2010-02-18 Toshiba Corp 携帯端末装置
JP4469907B2 (ja) * 2008-08-29 2010-06-02 株式会社東芝 無線通信装置
CN101583056B (zh) * 2009-06-12 2012-10-03 华为技术有限公司 带宽处理方法、网络装置及网络系统
JP2011070565A (ja) * 2009-09-28 2011-04-07 Nec Personal Products Co Ltd クライアント端末及びシンクライアントシステム
US8707073B2 (en) * 2011-08-31 2014-04-22 International Business Machines Corporation Energy-efficient polling loop

Also Published As

Publication number Publication date
JP2014063398A (ja) 2014-04-10
US9526026B2 (en) 2016-12-20
US20140086053A1 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
JP6048030B2 (ja) 携帯端末装置の制御方法、制御プログラム、携帯端末装置
JP5786641B2 (ja) 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
JP5792836B2 (ja) 電力しきい値を使用したモバイル通信端末のためのスマート電力マネージメントの方法および装置
US9749888B1 (en) System for network characteristic assessment
JP5915406B2 (ja) 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
JP5785273B2 (ja) モバイル通信端末のためのスマート電力管理の方法および装置
KR101991682B1 (ko) Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
EP2606410B1 (en) Battery power management for a mobile device
JP4834159B2 (ja) 優先度ベース電力節約制御を備えた携帯機器及びその方法
WO2018099029A1 (zh) 一种电池充电管理方法和终端
US10409353B2 (en) Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems
EP2664214B1 (en) Method for multipath scheduling based on a lookup table
US20150106649A1 (en) Dynamic scaling of memory and bus frequencies
JP5663965B2 (ja) 無線端末、無線通信システム、およびエリア品質情報収集方法
JP2013131940A (ja) 携帯端末装置、携帯端末装置の制御プログラム及び制御方法
TW201423370A (zh) 自應用程式之活動預測使用者意圖及未來的互動
US20160088563A1 (en) Method and Mobile Communication Terminal for Estimating Battery Consumption State
US10244425B2 (en) Electronic device and method for controlling transmission control protocol thereof
CN109661649A (zh) 用于支持优先系统事件的增强的功率管理
JP2014085228A (ja) 携帯端末装置の制御方法、制御プログラム、携帯端末装置
Cho et al. A battery lifetime guarantee scheme for selective applications in smart mobile devices
US9253793B2 (en) Channel aware job scheduling
US20160098339A1 (en) Smart power scheduling for user-directed battery duration
Nithi et al. Smart power management for mobile handsets
US11079827B2 (en) Cognitive battery state of charge recalibration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150604

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161107

R150 Certificate of patent or registration of utility model

Ref document number: 6048030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees