特許第6789861号(P6789861)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通コネクテッドテクノロジーズ株式会社の特許一覧

特許6789861動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法
<>
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000002
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000003
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000004
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000005
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000006
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000007
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000008
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000009
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000010
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000011
  • 特許6789861-動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6789861
(24)【登録日】2020年11月6日
(45)【発行日】2020年11月25日
(54)【発明の名称】動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法
(51)【国際特許分類】
   G06F 1/08 20060101AFI20201116BHJP
   G06F 1/324 20190101ALI20201116BHJP
【FI】
   G06F1/08 510
   G06F1/324
【請求項の数】6
【全頁数】14
(21)【出願番号】特願2017-51252(P2017-51252)
(22)【出願日】2017年3月16日
(65)【公開番号】特開2018-156252(P2018-156252A)
(43)【公開日】2018年10月4日
【審査請求日】2019年11月29日
(73)【特許権者】
【識別番号】318012780
【氏名又は名称】富士通コネクテッドテクノロジーズ株式会社
(74)【代理人】
【識別番号】100113608
【弁理士】
【氏名又は名称】平川 明
(74)【代理人】
【識別番号】100105407
【弁理士】
【氏名又は名称】高田 大輔
(74)【代理人】
【識別番号】100175190
【弁理士】
【氏名又は名称】大竹 裕明
(72)【発明者】
【氏名】影沢 正
【審査官】 松浦 かおり
(56)【参考文献】
【文献】 特開2013−30010(JP,A)
【文献】 特開2014−6619(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/04−1/14
G06F 1/26−1/3296
G06F 9/455−9/54
G06F 13/00
H04M 1/24−1/82
(57)【特許請求の範囲】
【請求項1】
操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、
前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、
処理を実行する処理部を備える動作周波数制御装置。
【請求項2】
前記処理部は、前記条件を満たす場合に、前記CPUの動作周波数を最大周波数に固定し、前記CPUの実測負荷と前記CPUの目標負荷との関係に基づいて、前記最大周波数を暫定的な周波数に変換し、前記暫定的な周波数に応じた前記パラメータを算出する、
ことを特徴とする請求項1に記載の動作周波数制御装置。
【請求項3】
前記処理部は、携帯情報端末に予め設定されたパラメータと算出したパラメータのそれぞれによる前記追加アプリの実行に基づく消費電力を測定し、消費電力が少ない方のパラメータを前記追加アプリの情報と関連付けて保持する、
ことを特徴とする請求項1又は2に記載の動作周波数制御装置。
【請求項4】
前記統計情報は、前記タスクの使用頻度及び消費電力の少なくとも一方である、
ことを特徴とする請求項1から3のいずれか1項に記載の動作周波数制御装置。
【請求項5】
操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、
前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、
処理をコンピュータに実行させる動作周波数制御プログラム。
【請求項6】
操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、
前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、
処理をコンピュータが実行する動作周波数制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本件は、動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法に関する。
【背景技術】
【0002】
スマートフォンといった携帯情報端末において、Central Processing Unit(CPU)の動作周波数を制御する技術が知られている(例えば特許文献1参照)。また、CPUの処理負荷(以下、単に負荷という)の状態変化に対して動作周波数を設定する制御方式も知られている。当該制御方式は例えばガバナー制御と呼ばれることがある(例えば特許文献2参照)。
【0003】
これにより、携帯情報端末にインストールされたアプリケーションソフトウェア(以下、単にアプリという)が実行され、アプリの実行に応じてCPUの負荷の状態が多様に変化しても、ガバナー制御によりアプリに応じた動作周波数でCPUが動作する。この結果、携帯情報端末のパフォーマンスが確保されながら、無駄な消費電力の発生が抑えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2014−182736号公報
【特許文献2】特開2015−043165号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上述したアプリは携帯情報端末に前もって(例えば出荷前に)インストールされたアプリ(以下、初期アプリという)と後から(例えば出荷後に)インストールされたアプリ(以下、追加アプリという)に大別される。ここで、初期アプリであれば、初期アプリが要求するCPUの性能は事前に確認できるため、設計によりその性能を実現する固定の動作周波数を個別に用意することができる。
【0006】
しかしながら、追加アプリの場合、追加アプリが要求するCPUの性能は事前に確認できない。このため、設計によりその性能を実現する固定の動作周波数を個別に用意することができない。例えば、初期アプリのために用意された動作周波数に基づいて追加アプリを実行すると、CPUの性能が不足する場合もあれば、逆に、CPUの性能が過剰になる場合もある。CPUの性能が不足すれば、携帯情報端末のパフォーマンスが低下し、逆に、CPUの性能が過剰になれば、無駄な消費電力が発生するという問題点がある。
【0007】
そこで、1つの側面では、追加アプリに対するCPUの性能を調整できる動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの実施態様では、動作周波数制御装置は、操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、処理を実行する処理部を備える動作周波数制御装置である。
【発明の効果】
【0009】
追加アプリに対するCPUの性能を調整することができる。
【図面の簡単な説明】
【0010】
図1図1は携帯情報端末の一例である。
図2図2は携帯情報端末のハードウェア構成の一例である。
図3図3は携帯情報端末の機能ブロック図の一例である。
図4図4は特性情報の一例である。
図5図5は目標負荷テーブルの一例である。
図6図6は時間の経過に応じて変化する近似前後の動作周波数の一部(その1)である。
図7図7は時間の経過に応じて変化する近似前後の動作周波数の一部(その2)である。
図8図8は時間の経過に応じて変化する近似前後の動作周波数の一部(その3)である。
図9図9は動作周波数制御装置の動作の一例である。
図10図10はイベント履歴保持処理の一例を示すフローチャートである。
図11図11はパラメータ算出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本件を実施するための形態について図面を参照して説明する。
【0012】
図1は携帯情報端末10の一例である。携帯情報端末10としては、例えばタブレット端末やスマートフォンといった電池を電源とするスマートデバイスがある。尚、携帯情報端末10はスマートデバイスに限定されず、例えばスマートウォッチといったウェアラブル端末などであってもよい。図1に示すように、携帯情報端末10は入力部11を備えている。詳細は後述するが、入力部11がユーザによって操作されると、入力部11は操作内容に応じた入力をユーザ操作として受け付ける。
【0013】
図2は携帯情報端末10のハードウェア構成の一例である。
【0014】
図2に示すように、携帯情報端末10は、Central Processing Unit(CPU)100A、Random Access Memory(RAM)100B、Read Only Memory(ROM)100C、Non-Volatile Memory(NVM)100D及びRadio Frequency(RF)回路100Eを含んでいる。RF回路100Eにはアンテナ100E´が接続されている。RF回路100Eに代えて通信機能を実現するCPUが利用されてもよい。
【0015】
また、携帯情報端末10は、Graphics Processing Unit(GPU)100F、カメラ100G、入力部11としてのタッチパネル100H、ディスプレイ100I、及びマイク及びスピーカー(以下、マイク/スピーカーと記載)100Jを含んでいる。CPU100Aからマイク/スピーカー100Jまでは、内部バス100Kによって互いに接続されている。少なくともCPU100AとRAM100Bとが協働することによってコンピュータが実現される。
【0016】
上述したRAM100Bには、ROM100CやNVM100Dに記憶されたプログラムがCPU100Aによって格納される。格納されたプログラムをCPU100Aが実行することにより、後述する各種の処理が実行される。尚、プログラムは後述するフローチャートに応じたものとすればよい。
【0017】
図3は携帯情報端末10の機能ブロック図の一例である。
【0018】
図3に示すように、携帯情報端末10は動作周波数制御装置100を備えている。特に、動作周波数制御装置100は処理部としてイベント制御部101、消費電力測定部102、及びイベント履歴管理部103を備えている。また、動作周波数制御装置100は処理部として特性情報記憶部104、アプリ実行部105、及び負荷履歴管理部106を備えている。さらに、動作周波数制御装置100は処理部としてパラメータ算出部107、パラメータ変換部108、動作周波数制御部109、及びパラメータ記憶部110を備えている。
【0019】
尚、CPU100A及びタッチパネル100Hはハードウェアであるため、破線で示している。ここで、特性情報記憶部104は例えば上述したROM100C又はNVM100Dなどによって実現される。パラメータ記憶部110は例えば上述したRAM100B又はNVM100Dなどによって実現される。特性情報記憶部104及びパラメータ記憶部110を除いた各処理部(例えばイベント制御部101など)は上述したCPU100Aによって実現される。
【0020】
イベント制御部101はタッチパネル100Hから出力されたユーザ操作を受け付ける。特に、イベント制御部101は後述する通常モードの時にユーザ操作を受け付ける。ユーザ操作としては、例えば画面操作や追加アプリの起動操作などがある。尚、通常モードとはCPU100Aの負荷(具体的にはCPU使用率)に従ってCPU100Aの動作周波数を変化させる動作モードをいう。
【0021】
イベント制御部101はユーザ操作を受け付けると、ユーザ操作に応じたイベント情報とユーザ操作に応じてCPU100Aに実行させる少なくとも1つの仕事(以下、タスクという)を生成し、生成したイベント情報と少なくとも1つのタスクとを関連付けてイベント履歴管理部103に出力する。したがって、例えばイベント制御部101が追加アプリを起動するユーザ操作を受け付けると、イベント制御部101は追加アプリの実行に要する少なくとも1つのタスクを生成し、生成したタスクをCPU100Aに出力する。CPU100Aはタスクを逐次的に処理することにより追加アプリを実行する。
【0022】
消費電力測定部102はCPU100Aの消費電力を測定する。より詳しくは、消費電力測定部102はCPU100Aが処理するタスクの消費電力を測定する。消費電力測定部102はタスクの消費電力を測定すると、測定したタスクの消費電力をイベント履歴管理部103に出力する。
【0023】
イベント履歴管理部103はイベント情報の履歴を管理する。具体的には、イベント履歴管理部103はイベント制御部101から出力されたイベント情報をタスク毎に保持する。これにより、例えばイベント履歴管理部103は起動負荷が高い追加アプリを起動するユーザ操作に応じたイベント情報を保持する。同様に、例えばイベント履歴管理部103は負荷が高い状態が継続する画面(具体的にはカメラ100Gのフレームなど)までのユーザ操作に応じたイベント情報を保持する。例えばイベント履歴管理部103は利用頻度が非常に高い処理までのユーザ操作に応じたイベント情報を保持する。尚、イベント履歴管理部103が保持するイベント情報は後述する測定モード時に使用される。
【0024】
また、イベント履歴管理部103はイベント情報とタスクとを関連付けて保持するとともに、消費電力測定部102から出力されたタスク毎の消費電力も関連付けて保持する。このため、イベント履歴管理部103はタスクに関する統計情報を生成することができる。より詳しくは、イベント履歴管理部103はタスクの利用頻度を表す第1の統計情報とタスクの平均消費電力を表す第2の統計情報を生成することができる。特に、イベント履歴管理部103は消費電力測定部102から出力されたタスクの消費電力に基づいて第2の統計情報を生成することができる。
【0025】
そして、イベント履歴管理部103は統計情報が所定の条件を満足すると、自身を測定モードに設定するとともに、ユーザ操作が行われていないタイミングで、アプリ実行部105とパラメータ算出部107に測定モードへの移行を指示する。例えば、イベント履歴管理部103は第1の統計情報と第2の統計情報のいずれもが予め指定した閾値を超えた場合に、アプリ実行部105とパラメータ算出部107に測定モードへの移行を指示する。
【0026】
尚、測定モードは追加アプリで利用するガバナーパラメータを算出するための動作モードをいう。ガバナーパラメータはガバナー制御の特性(例えば操作性重視や消費電力重視、操作性と消費電力とのバランスなど)を決定するパラメータである。詳細は後述するが、ガバナーパラメータとしては例えばabove_hispeed_delayやmin_sample_timeなどが知られている。
【0027】
特性情報記憶部104はCPU100Aの特性を表す特性情報を記憶する。特性情報は事前に測定されており、特性情報記憶部104は事前に測定された特性情報を記憶する。具体的には、図4に示すように、特性情報記憶部104はCPU100Aに設定できる動作周波数毎に同一負荷のタスクをCPU100Aが処理するときの消費電力を特性情報として記憶する。特に、特性情報記憶部104は消費電力の大きさが小さな順に並んだ特性情報を記憶する。
【0028】
アプリ実行部105はイベント履歴管理部103から測定モードへの移行が指示されると、イベント履歴管理部103からイベント情報を取得し、イベント制御部101にイベント情報に応じた追加アプリを起動させる。これにより、イベント制御部101は追加アプリの実行に要する少なくとも1つのタスクを生成し、生成したタスクをCPU100Aに出力する。したがって、CPU100Aは再び追加アプリを実行する。
【0029】
負荷履歴管理部106はCPU100Aの負荷の履歴を管理する。具体的には、負荷履歴管理部106はCPU100Aが追加アプリの実行を開始すると、追加アプリ実行中のCPU100Aの負荷を測定し、測定した負荷を実測負荷として保持する。
【0030】
パラメータ算出部107はイベント履歴管理部103から測定モードへの移行が指示されると、パラメータ変換部108による通常モード時の機能を無効化し、測定モード時の機能を有効化する。パラメータ変換部108が測定モード時の機能を有効化すると、動作周波数制御部109は最大周波数でCPU100Aを動作させる。したがって、CPU100Aは最大周波数で追加アプリを再び実行する。
【0031】
また、パラメータ算出部107は負荷履歴管理部106から実測負荷を取得する。CPU100Aは最大周波数で追加アプリを実行しているため、パラメータ算出部107は最大周波数で動作するCPU100Aの実測負荷を取得する。パラメータ算出部107は実測負荷を取得すると、目標負荷とCPU100Aの最大周波数と以下の算出式(1)又は(2)を利用して、暫定周波数を算出する。
暫定周波数=最大周波数×実測負荷÷目標負荷 (実測負荷≦目標負荷)…(1)
暫定周波数=最大周波数 (実測負荷>目標負荷)…(2)
【0032】
特に、CPU100Aが追加アプリを実行している間、パラメータ算出部107は暫定周波数を常に又は定期的に算出しているため、パラメータ算出部107は時間の経過に応じて変化する暫定周波数を得ることができる。
【0033】
ここで、目標負荷とは測定モードに移行してCPU100Aが動作した際に、CPU100Aが目標とする負荷の目安をいう。目標負荷は実測負荷に関わらない固定値としてもよいし、実測負荷に応じて動的に可変する可変値としてもよい。前者であれば暫定周波数を速やかに算出でき、後者であれば消費電力の無駄を解消することができる。
【0034】
具体的には、図5に示すように、パラメータ算出部107は実測負荷毎に下限と上限を予め定めた目標負荷テーブルを保持しておく。そして、実測負荷が第1所定値(例えば20%)より低いときには、パラメータ算出部107は実測負荷から高負荷側に大きく乖離した目標負荷(例えば50%)を利用する。算出式(1)によれば、結果的に暫定周波数は低くなる。逆に、実測負荷が第2所定値(例えば80%)より高いときには、パラメータ算出部107は実測負荷とはさほど乖離しない目標負荷(例えば90%)を利用する。
【0035】
算出式(1)によれば結果的に暫定周波数は最大周波数に近くなり、算出式(2)によれば結果的に暫定周波数は最大周波数と同じになる。尚、第1所定値と第2所定値の間に含まれる実測負荷である場合には、図5において、目標負荷70%及び90%が利用されるが、これらの目標負荷は特性情報記憶部104が記憶する特性情報を利用して予め算出される。具体的には、特性情報に基づいて消費電力的に最も効率的な動作周波数に近づくような目標負荷が予め算出される。
【0036】
ここで、パラメータ算出部107が算出する暫定周波数は必ずしもCPU100Aに設定できる動作周波数(具体的には図4に示す各動作周波数)とは限らない。したがって、パラメータ算出部107は暫定周波数をCPU100Aに設定できる動作周波数に置換する。具体的には、パラメータ算出部107は暫定周波数の動作周波数への置換を予め定められた以下の4つのパターン(A)〜(D)のいずれかにより行う。
【0037】
(A)算出した暫定周波数を挟む2つの動作周波数のうち、特性情報に基づいてCPU100Aの特性として効率的な方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
(B)算出した暫定周波数を挟む2つの動作周波数のうち、暫定周波数との差が小さい方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
(C)算出した暫定周波数を挟む2つの動作周波数のうち、常に暫定周波数より小さい方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
(D)算出した暫定周波数を挟む2つの動作周波数のうち、常に暫定周波数より大きい方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
【0038】
これにより、時間の経過に応じて変化する暫定周波数が、CPU100Aに設定可能な動作周波数に置換される。しかしながら、当該動作周波数は時間の経過に対して非常に細かく変化する。このため、全体的な変化の頻度を減らすべく、パラメータ算出部107はパラメータ記憶部110が予め記憶する複数のガバナーパラメータのいずれか又はこれらの組み合わせに基づいて動作周波数の変化を近似する。
【0039】
ここで、図6から図8までを参照して、動作周波数の変化の近似を具体的に説明する。
【0040】
図6から図8はいずれも時間の経過に応じて変化する近似前後の動作周波数の一部(その1〜その3)である。言い換えれば、図6から図8に示す近似前の動作周波数の一部を結合することにより、時間の経過に応じて変化する、CPU100Aに設定可能な動作周波数全体が完成する。
【0041】
パラメータ算出部107が動作周波数の変化を近似する場合、まず、パラメータ算出部107は図6図8の上段に示す近似前の動作周波数の中から一定の動作周波数が継続する時間が特定の閾値時間以下である部分を特定する。具体的には、図6の上段に示す近似前の動作周波数であれば、パラメータ算出部107は部分Aを特定する。同様に、図7の上段に示す近似前の動作周波数であれば、パラメータ算出部107は部分Bを特定する。図8の上段に示す近似前の動作周波数であれば、パラメータ算出部107は部分Cを特定する。
【0042】
次に、パラメータ算出部107は特定した部分の動作周波数を、その直前に存在する該部分より長い時間で継続する一定した動作周波数に置換し、置換後の部分と直前の動作周波数の区間とを結合する。具体的には、図6の下段に示すように、パラメータ算出部107は、部分Aの動作周波数を直前に存在する動作周波数に置換し、部分Aと直前に存在する動作周波数の区間A´を結合する。同様に、図7の下段に示すように、パラメータ算出部107は、部分Bの動作周波数を直前に存在する動作周波数に置換し、部分Bと直前に存在する動作周波数の区間B´を結合する。また、図8の下段にも示すように、パラメータ算出部107は、部分Cの動作周波数を直前に存在する動作周波数に置換し、部分Cと直前に存在する動作周波数の区間C´を結合する。これにより、細かな変化が消失し、変化が大きく一定の動作周波数が長く継続する動作周波数が残存する。
【0043】
そして、パラメータ算出部107は残存した動作周波数に基づいてガバナーパラメータを決定する。具体的には、最低周波数にあるときに次にとる動作周波数を表すガバナーパラメータ(具体的にはhispeed_freq)とその滞在時間をガバナーパラメータ(具体的にはabove_hispeed_delay)に関しては、パラメータ算出部107はそれぞれの統計値に基づいて、各最頻値をそれぞれガバナーパラメータとして決定する。
【0044】
また、パラメータ算出部107は目標負荷に基づいて負荷に関するガバナーパラメータ(具体的にはtarget_load及びhispeed_load)を決定する。さらに、動作周波数毎にその動作周波数が設定されてからの継続時間を表すガバナーパラメータ(具体的にはmin_sample_time)に関しては、パラメータ算出部107は統計値に基づき最小値をガバナーパラメータとして決定する。idle開始時からの周波数維持時間を表すガバナーパラメータ(具体的にはtimer_slack)に関しては、パラメータ算出部107は初期設定の固定値をガバナーパラメータとして決定する。
【0045】
パラメータ算出部107がガバナーパラメータを決定すると、アプリ実行部105はイベント制御部101に追加アプリを起動させる。そして、パラメータ算出部107は初期設定のガバナーパラメータに基づいて追加アプリが実行された場合に消費電力測定部102が測定した消費電力と、決定したガバナーパラメータに基づいて追加アプリが実行された場合に消費電力測定部102が測定した消費電力を比較する。パラメータ算出部107は比較した結果、決定したガバナーパラメータの方が初期設定のガバナーパラメータより消費電力が少ない場合、決定したガバナーパラメータを追加アプリの情報と関連付けてパラメータ記憶部110に格納する。
【0046】
パラメータ変換部108はガバナーパラメータを動作周波数に変換する。より詳しくは、追加アプリが実行されると、パラメータ変換部108はパラメータ記憶部110が記憶するガバナーパラメータの中から追加アプリに応じたガバナーパラメータを取得する。パラメータ変換部108は追加アプリに応じたガバナーパラメータを取得すると、取得したガバナーパラメータを動作周波数に変換して動作周波数制御部109に出力する。
【0047】
動作周波数制御部109はパラメータ変換部108から出力された動作周波数でCPU100Aを動作させる。したがって、CPU100Aはパラメータ変換部108から出力された動作周波数に従って動作する。
【0048】
次に、図9を参照して、動作周波数制御装置100の動作について説明する。
【0049】
図9は動作周波数制御装置100の動作の一例である。図9に示すように、イベント履歴管理部103は、まず、イベント履歴保持処理を実行する(ステップS101)。詳細は後述するが、イベント履歴保持処理は、イベント制御部101から出力されたイベント情報をタスクと関連付けて保持する処理である。イベント履歴保持処理が完了すると、次いで、イベント履歴管理部103はタスクの統計情報が所定の条件を満足するか否かを判断する(ステップS102)。
【0050】
タスクの統計情報が所定の条件を満足しない場合(ステップS102:NO)、イベント履歴管理部103はステップS101の処理を再び実行する。一方、タスクの統計情報が所定の条件を満足する場合(ステップS102:YES)、パラメータ算出部107はパラメータ算出処理を実行する(ステップS103)。詳細は後述するが、パラメータ算出処理は追加アプリの実行中のCPU100Aの負荷に基づいて、CPU100Aの動作周波数を制御するガバナーパラメータを算出する処理である。パラメータ算出処理が完了すると、パラメータ算出部107は処理を終える。
【0051】
次に、図10を参照して、上述したイベント履歴保持処理の詳細について説明する。
【0052】
図10はイベント履歴保持処理の一例を示すフローチャートである。例えば携帯情報端末10の電源スイッチがオフからオンに切り替えられると、イベント履歴管理部103は自身を通常モードに設定する(ステップS201)。ステップS201の処理が完了し、イベント制御部101がタッチパネル100Hから追加アプリを起動するユーザ操作を受け付けると、イベント制御部101はイベント情報を生成し(ステップS202)、イベント履歴管理部103はイベント制御部101が生成したイベント情報を保持する(ステップS203)。
【0053】
また、イベント制御部101は追加アプリを起動するユーザ操作を受け付けると、追加アプリを起動する(ステップS204)、追加アプリが起動すると、CPU100Aは追加アプリを実行する。尚、ステップS202,S203の処理とステップS204の処理の順序は逆であってもよい。ステップS204の処理が完了すると、次いで、イベント履歴管理部103はユーザ操作に応じて生成された種々のタスクに関する情報(例えばアプリ名や画面名など)をOperating System(OS)から取得する(ステップS205)。イベント履歴管理部103はタスクに関する情報を取得すると、タスクの統計情報を生成する(ステップS206)。ステップS206の処理が完了すると、イベント履歴管理部103はイベント情報と統計情報を関連付けて保持する(ステップS207)。これにより、イベント履歴管理部103はイベント履歴保持処理を終える。
【0054】
次に、図11を参照して、パラメータ算出処理の詳細について説明する。
【0055】
図11はパラメータ算出処理の一例を示すフローチャートである。イベント履歴管理部103が生成した統計情報が所定の条件を満足すると、イベント履歴管理部103は自身を測定モードに設定する(ステップS301)。イベント履歴管理部103が自身を測定モードに設定すると、パラメータ算出部107はCPU100Aの動作周波数を最大周波数に固定する(ステップS302)。より詳しくは、パラメータ算出部107はパラメータ変換部108の通常モード時の機能を無効化し、測定モード時の機能を有効化する。これにより、パラメータ変換部108はCPU100Aの負荷に応じた動作周波数を動作周波数制御部109に出力する機能を停止し、動作周波数制御部109に最大周波数を出力する機能を実現する。これにより、動作周波数制御部109はCPU100Aを最大周波数で動作させる。
【0056】
ステップS302の処理が完了すると、次いで、パラメータ算出部107は特性情報を取得し(ステップS303)、アプリ実行部105はイベント制御部101に追加アプリを起動させる(ステップS304)。より詳しくは、アプリ実行部105はイベント履歴管理部103から測定モードへの移行が指示されると、イベント制御部101にイベント情報に応じた追加アプリを起動させる。これにより、CPU100Aは追加アプリを再び実行する。
【0057】
ステップS304の処理が完了すると、負荷履歴管理部106は追加アプリ実行中のCPU100Aの負荷を測定する(ステップS305)。ステップS305の処理が完了すると、次いで、パラメータ算出部107は負荷履歴管理部106が測定した実測負荷を暫定周波数に変換する(ステップS306)。より詳しくは、パラメータ算出部107は実測負荷、実測負荷に応じて決定される目標負荷、CPU100Aの最大周波数、及び上述した所定の計算式(1)又は(2)を利用して、実測負荷を暫定周波数に変換する。
【0058】
ステップS306の処理が完了すると、次いで、パラメータ算出部107はガバナーパラメータを算出する(ステップS307)。より詳しくは、パラメータ算出部107は暫定周波数をCPU100Aに設定できる動作周波数に置換し、その動作周波数を近似し、近似後の動作周波数を利用して種々のガバナーパラメータを決定する。
【0059】
ステップS307の処理が完了すると、消費電力測定部102は消費電力を測定する(ステップS308)。より詳しくは、消費電力測定部102は初期設定のガバナーパラメータに基づいて動作するCPU100Aの消費電力と、決定したガバナーパラメータに基づいて動作するCPU100Aの消費電力をそれぞれ測定する。ステップS308の処理が完了すると、パラメータ算出部107は消費電力測定部102が測定した消費電力の中から最小の消費電力を測定したガバナーパラメータを追加アプリの情報と関連付けてパラメータ記憶部110に保存する(ステップS309)。これにより、追加アプリが実行されるたびに、追加アプリに応じたガバナーパラメータが利用されてCPU100Aが動作する。
【0060】
以上、本実施形態によれば、動作周波数制御装置100はアプリ実行部105とパラメータ算出部107を含んでいる。アプリ実行部105は、ユーザ操作に基づいて生成されるタスクの統計情報が予め指定された所定の条件を満足すると判断された場合、イベント履歴管理部103が保持するイベント情報の履歴に基づいて、追加アプリを起動させてCPU100Aに追加アプリを実行させる。パラメータ算出部107は追加アプリ実行中のCPU100Aの実測負荷に基づいて、ガバナーパラメータを算出する。これにより、追加アプリに対するCPU100Aの性能を調整することができる。したがって、追加アプリに対しても携帯情報端末10のパフォーマンス(具体的には応答速度又は操作性)が確保されながら、無駄な消費電力の発生が抑えられる。結果的に、電池容量の減少速度が低下し、携帯情報端末10の稼働時間が伸長する。
【0061】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0062】
例えば、測定モードの移行はユーザ操作に基づいて行われてもよく、測定モード移行後の追加アプリの起動もユーザ操作に基づいて行われてもよい。この場合、イベント履歴管理部103は自身を動的に測定モードに設定する必要はなく、また、アプリ実行部105はイベント制御部101に追加アプリを動的に起動させる必要もない。
【0063】
また、暫定周波数の動作周波数への置換は例えば選択画面を用意し、パターン(A)〜(D)のいずれかをユーザに選択させるようにしてもよいし、全てのパターン(A)〜(D)により暫定周波数の動作周波数への置換を行い、最小の消費電力を測定するパターン(A)〜(D)が選択されるようにしてもよい。さらに、第1の統計情報と第2の統計情報の双方を利用せずに、いずれか一方を利用するようにしてもよい。
【0064】
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、処理を実行する処理部を備える動作周波数制御装置。
(付記2)前記処理部は、前記条件を満たす場合に、前記CPUの動作周波数を最大周波数に固定し、前記CPUの実測負荷と前記CPUの目標負荷との関係に基づいて、前記最大周波数を暫定的な周波数に変換し、前記暫定的な周波数に応じた前記パラメータを算出する、ことを特徴とする付記1に記載の動作周波数制御装置。
(付記3)前記処理部は、携帯情報端末に予め設定されたパラメータと算出したパラメータのそれぞれによる前記追加アプリの実行に基づく消費電力を測定し、消費電力が少ない方のパラメータを前記追加アプリの情報と関連付けて保持する、ことを特徴とする付記1又は2に記載の動作周波数制御装置。
(付記4)前記統計情報は、前記タスクの使用頻度及び消費電力の少なくとも一方である、ことを特徴とする付記1から3のいずれか1項に記載の動作周波数制御装置。
(付記5)操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、処理をコンピュータに実行させる動作周波数制御プログラム。
(付記6)操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のCPUの負荷に基づいて、前記CPUの動作周波数を制御するパラメータを算出する、処理をコンピュータが実行する動作周波数制御方法。
(付記7)前記条件を満たす場合に、前記CPUの動作周波数を最大周波数に固定し、前記CPUの実測負荷と前記CPUの目標負荷との関係に基づいて、前記最大周波数を暫定的な周波数に変換し、前記暫定的な周波数に応じた前記パラメータを算出する、ことを特徴とする付記6に記載の動作周波数制御方法。
(付記8)携帯情報端末に予め設定されたパラメータと算出したパラメータのそれぞれによる前記追加アプリの実行に基づく消費電力を測定し、消費電力が少ない方のパラメータを前記追加アプリの情報と関連付けて保存する、ことを特徴とする付記6又は7に記載の動作周波数制御方法。
(付記9)前記統計情報は、前記タスクの使用頻度及び消費電力の少なくとも一方である、ことを特徴とする付記6から8のいずれか1項に記載の動作周波数制御方法。
【符号の説明】
【0065】
10 携帯情報端末
100 動作周波数制御装置
101 イベント制御部
102 消費電力測定部
103 イベント履歴管理部
104 特性情報記憶部
105 アプリ実行部
106 負荷履歴管理部
107 パラメータ算出部
108 パラメータ変換部
109 動作周波数制御部
110 パラメータ記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11