(57)【要約】【課題】追加アプリに対するＣＰＵの性能を調整できる動作周波数制御装置を提供する。【解決手段】動作周波数制御装置は、操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、操作の履歴に基づいて、操作対象の追加アプリを実行させ、追加アプリ実行中のＣＰＵの負荷に基づいて、ＣＰＵの動作周波数を制御するパラメータを算出する、処理を実行する処理部を備える。特に、処理部は、条件を満たす場合に、ＣＰＵの動作周波数を最大周波数に固定し、ＣＰＵの実測負荷とＣＰＵの目標負荷との関係に基づいて、最大周波数を暫定的な周波数に変換し、暫定的な周波数に応じたパラメータを算出する。【選択図】図３
2018156252.tif 000002
【特許請求の範囲】
【請求項１】
操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、
前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、
処理を実行する処理部を備える動作周波数制御装置。
【請求項２】
前記処理部は、前記条件を満たす場合に、前記ＣＰＵの動作周波数を最大周波数に固定し、前記ＣＰＵの実測負荷と前記ＣＰＵの目標負荷との関係に基づいて、前記最大周波数を暫定的な周波数に変換し、前記暫定的な周波数に応じた前記パラメータを算出する、
ことを特徴とする請求項１に記載の動作周波数制御装置。
【請求項３】
前記処理部は、携帯情報端末に予め設定されたパラメータと算出したパラメータのそれぞれによる前記追加アプリの実行に基づく消費電力を測定し、消費電力が少ない方のパラメータを前記追加アプリの情報と関連付けて保持する、
ことを特徴とする請求項１又は２に記載の動作周波数制御装置。
【請求項４】
前記統計情報は、前記タスクの使用頻度及び消費電力の少なくとも一方である、
ことを特徴とする請求項１から３のいずれか１項に記載の動作周波数制御装置。
【請求項５】
操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、
前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、
処理をコンピュータに実行させる動作周波数制御プログラム。
【請求項６】
操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、
前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、
処理をコンピュータが実行する動作周波数制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法に関する。
【背景技術】
【０００２】
スマートフォンといった携帯情報端末において、Central Processing Unit（ＣＰＵ）の動作周波数を制御する技術が知られている（例えば特許文献１参照）。また、ＣＰＵの処理負荷（以下、単に負荷という）の状態変化に対して動作周波数を設定する制御方式も知られている。当該制御方式は例えばガバナー制御と呼ばれることがある（例えば特許文献２参照）。
【０００３】
これにより、携帯情報端末にインストールされたアプリケーションソフトウェア（以下、単にアプリという）が実行され、アプリの実行に応じてＣＰＵの負荷の状態が多様に変化しても、ガバナー制御によりアプリに応じた動作周波数でＣＰＵが動作する。この結果、携帯情報端末のパフォーマンスが確保されながら、無駄な消費電力の発生が抑えられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８２７３６号公報
【特許文献２】特開２０１５−０４３１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述したアプリは携帯情報端末に前もって（例えば出荷前に）インストールされたアプリ（以下、初期アプリという）と後から（例えば出荷後に）インストールされたアプリ（以下、追加アプリという）に大別される。ここで、初期アプリであれば、初期アプリが要求するＣＰＵの性能は事前に確認できるため、設計によりその性能を実現する固定の動作周波数を個別に用意することができる。
【０００６】
しかしながら、追加アプリの場合、追加アプリが要求するＣＰＵの性能は事前に確認できない。このため、設計によりその性能を実現する固定の動作周波数を個別に用意することができない。例えば、初期アプリのために用意された動作周波数に基づいて追加アプリを実行すると、ＣＰＵの性能が不足する場合もあれば、逆に、ＣＰＵの性能が過剰になる場合もある。ＣＰＵの性能が不足すれば、携帯情報端末のパフォーマンスが低下し、逆に、ＣＰＵの性能が過剰になれば、無駄な消費電力が発生するという問題点がある。
【０００７】
そこで、１つの側面では、追加アプリに対するＣＰＵの性能を調整できる動作周波数制御装置、動作周波数制御プログラム、及び動作周波数制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの実施態様では、動作周波数制御装置は、操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、処理を実行する処理部を備える動作周波数制御装置である。
【発明の効果】
【０００９】
追加アプリに対するＣＰＵの性能を調整することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は携帯情報端末の一例である。
【図２】図２は携帯情報端末のハードウェア構成の一例である。
【図３】図３は携帯情報端末の機能ブロック図の一例である。
【図４】図４は特性情報の一例である。
【図５】図５は目標負荷テーブルの一例である。
【図６】図６は時間の経過に応じて変化する近似前後の動作周波数の一部（その１）である。
【図７】図７は時間の経過に応じて変化する近似前後の動作周波数の一部（その２）である。
【図８】図８は時間の経過に応じて変化する近似前後の動作周波数の一部（その３）である。
【図９】図９は動作周波数制御装置の動作の一例である。
【図１０】図１０はイベント履歴保持処理の一例を示すフローチャートである。
【図１１】図１１はパラメータ算出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本件を実施するための形態について図面を参照して説明する。
【００１２】
図１は携帯情報端末１０の一例である。携帯情報端末１０としては、例えばタブレット端末やスマートフォンといった電池を電源とするスマートデバイスがある。尚、携帯情報端末１０はスマートデバイスに限定されず、例えばスマートウォッチといったウェアラブル端末などであってもよい。図１に示すように、携帯情報端末１０は入力部１１を備えている。詳細は後述するが、入力部１１がユーザによって操作されると、入力部１１は操作内容に応じた入力をユーザ操作として受け付ける。
【００１３】
図２は携帯情報端末１０のハードウェア構成の一例である。
【００１４】
図２に示すように、携帯情報端末１０は、Central Processing Unit（ＣＰＵ）１００Ａ、Random Access Memory（ＲＡＭ）１００Ｂ、Read Only Memory（ＲＯＭ）１００Ｃ、Non-Volatile Memory（ＮＶＭ）１００Ｄ及びRadio Frequency（ＲＦ）回路１００Ｅを含んでいる。ＲＦ回路１００Ｅにはアンテナ１００Ｅ´が接続されている。ＲＦ回路１００Ｅに代えて通信機能を実現するＣＰＵが利用されてもよい。
【００１５】
また、携帯情報端末１０は、Graphics Processing Unit（ＧＰＵ）１００Ｆ、カメラ１００Ｇ、入力部１１としてのタッチパネル１００Ｈ、ディスプレイ１００Ｉ、及びマイク及びスピーカー（以下、マイク／スピーカーと記載）１００Ｊを含んでいる。ＣＰＵ１００Ａからマイク／スピーカー１００Ｊまでは、内部バス１００Ｋによって互いに接続されている。少なくともＣＰＵ１００ＡとＲＡＭ１００Ｂとが協働することによってコンピュータが実現される。
【００１６】
上述したＲＡＭ１００Ｂには、ＲＯＭ１００ＣやＮＶＭ１００Ｄに記憶されたプログラムがＣＰＵ１００Ａによって格納される。格納されたプログラムをＣＰＵ１００Ａが実行することにより、後述する各種の処理が実行される。尚、プログラムは後述するフローチャートに応じたものとすればよい。
【００１７】
図３は携帯情報端末１０の機能ブロック図の一例である。
【００１８】
図３に示すように、携帯情報端末１０は動作周波数制御装置１００を備えている。特に、動作周波数制御装置１００は処理部としてイベント制御部１０１、消費電力測定部１０２、及びイベント履歴管理部１０３を備えている。また、動作周波数制御装置１００は処理部として特性情報記憶部１０４、アプリ実行部１０５、及び負荷履歴管理部１０６を備えている。さらに、動作周波数制御装置１００は処理部としてパラメータ算出部１０７、パラメータ変換部１０８、動作周波数制御部１０９、及びパラメータ記憶部１１０を備えている。
【００１９】
尚、ＣＰＵ１００Ａ及びタッチパネル１００Ｈはハードウェアであるため、破線で示している。ここで、特性情報記憶部１０４は例えば上述したＲＯＭ１００Ｃ又はＮＶＭ１００Ｄなどによって実現される。パラメータ記憶部１１０は例えば上述したＲＡＭ１００Ｂ又はＮＶＭ１００Ｄなどによって実現される。特性情報記憶部１０４及びパラメータ記憶部１１０を除いた各処理部（例えばイベント制御部１０１など）は上述したＣＰＵ１００Ａによって実現される。
【００２０】
イベント制御部１０１はタッチパネル１００Ｈから出力されたユーザ操作を受け付ける。特に、イベント制御部１０１は後述する通常モードの時にユーザ操作を受け付ける。ユーザ操作としては、例えば画面操作や追加アプリの起動操作などがある。尚、通常モードとはＣＰＵ１００Ａの負荷（具体的にはＣＰＵ使用率）に従ってＣＰＵ１００Ａの動作周波数を変化させる動作モードをいう。
【００２１】
イベント制御部１０１はユーザ操作を受け付けると、ユーザ操作に応じたイベント情報とユーザ操作に応じてＣＰＵ１００Ａに実行させる少なくとも１つの仕事（以下、タスクという）を生成し、生成したイベント情報と少なくとも１つのタスクとを関連付けてイベント履歴管理部１０３に出力する。したがって、例えばイベント制御部１０１が追加アプリを起動するユーザ操作を受け付けると、イベント制御部１０１は追加アプリの実行に要する少なくとも１つのタスクを生成し、生成したタスクをＣＰＵ１００Ａに出力する。ＣＰＵ１００Ａはタスクを逐次的に処理することにより追加アプリを実行する。
【００２２】
消費電力測定部１０２はＣＰＵ１００Ａの消費電力を測定する。より詳しくは、消費電力測定部１０２はＣＰＵ１００Ａが処理するタスクの消費電力を測定する。消費電力測定部１０２はタスクの消費電力を測定すると、測定したタスクの消費電力をイベント履歴管理部１０３に出力する。
【００２３】
イベント履歴管理部１０３はイベント情報の履歴を管理する。具体的には、イベント履歴管理部１０３はイベント制御部１０１から出力されたイベント情報をタスク毎に保持する。これにより、例えばイベント履歴管理部１０３は起動負荷が高い追加アプリを起動するユーザ操作に応じたイベント情報を保持する。同様に、例えばイベント履歴管理部１０３は負荷が高い状態が継続する画面（具体的にはカメラ１００Ｇのフレームなど）までのユーザ操作に応じたイベント情報を保持する。例えばイベント履歴管理部１０３は利用頻度が非常に高い処理までのユーザ操作に応じたイベント情報を保持する。尚、イベント履歴管理部１０３が保持するイベント情報は後述する測定モード時に使用される。
【００２４】
また、イベント履歴管理部１０３はイベント情報とタスクとを関連付けて保持するとともに、消費電力測定部１０２から出力されたタスク毎の消費電力も関連付けて保持する。このため、イベント履歴管理部１０３はタスクに関する統計情報を生成することができる。より詳しくは、イベント履歴管理部１０３はタスクの利用頻度を表す第１の統計情報とタスクの平均消費電力を表す第２の統計情報を生成することができる。特に、イベント履歴管理部１０３は消費電力測定部１０２から出力されたタスクの消費電力に基づいて第２の統計情報を生成することができる。
【００２５】
そして、イベント履歴管理部１０３は統計情報が所定の条件を満足すると、自身を測定モードに設定するとともに、ユーザ操作が行われていないタイミングで、アプリ実行部１０５とパラメータ算出部１０７に測定モードへの移行を指示する。例えば、イベント履歴管理部１０３は第１の統計情報と第２の統計情報のいずれもが予め指定した閾値を超えた場合に、アプリ実行部１０５とパラメータ算出部１０７に測定モードへの移行を指示する。
【００２６】
尚、測定モードは追加アプリで利用するガバナーパラメータを算出するための動作モードをいう。ガバナーパラメータはガバナー制御の特性（例えば操作性重視や消費電力重視、操作性と消費電力とのバランスなど）を決定するパラメータである。詳細は後述するが、ガバナーパラメータとしては例えばabove_hispeed_delayやmin_sample_timeなどが知られている。
【００２７】
特性情報記憶部１０４はＣＰＵ１００Ａの特性を表す特性情報を記憶する。特性情報は事前に測定されており、特性情報記憶部１０４は事前に測定された特性情報を記憶する。具体的には、図４に示すように、特性情報記憶部１０４はＣＰＵ１００Ａに設定できる動作周波数毎に同一負荷のタスクをＣＰＵ１００Ａが処理するときの消費電力を特性情報として記憶する。特に、特性情報記憶部１０４は消費電力の大きさが小さな順に並んだ特性情報を記憶する。
【００２８】
アプリ実行部１０５はイベント履歴管理部１０３から測定モードへの移行が指示されると、イベント履歴管理部１０３からイベント情報を取得し、イベント制御部１０１にイベント情報に応じた追加アプリを起動させる。これにより、イベント制御部１０１は追加アプリの実行に要する少なくとも１つのタスクを生成し、生成したタスクをＣＰＵ１００Ａに出力する。したがって、ＣＰＵ１００Ａは再び追加アプリを実行する。
【００２９】
負荷履歴管理部１０６はＣＰＵ１００Ａの負荷の履歴を管理する。具体的には、負荷履歴管理部１０６はＣＰＵ１００Ａが追加アプリの実行を開始すると、追加アプリ実行中のＣＰＵ１００Ａの負荷を測定し、測定した負荷を実測負荷として保持する。
【００３０】
パラメータ算出部１０７はイベント履歴管理部１０３から測定モードへの移行が指示されると、パラメータ変換部１０８による通常モード時の機能を無効化し、測定モード時の機能を有効化する。パラメータ変換部１０８が測定モード時の機能を有効化すると、動作周波数制御部１０９は最大周波数でＣＰＵ１００Ａを動作させる。したがって、ＣＰＵ１００Ａは最大周波数で追加アプリを再び実行する。
【００３１】
また、パラメータ算出部１０７は負荷履歴管理部１０６から実測負荷を取得する。ＣＰＵ１００Ａは最大周波数で追加アプリを実行しているため、パラメータ算出部１０７は最大周波数で動作するＣＰＵ１００Ａの実測負荷を取得する。パラメータ算出部１０７は実測負荷を取得すると、目標負荷とＣＰＵ１００Ａの最大周波数と以下の算出式（１）又は（２）を利用して、暫定周波数を算出する。
暫定周波数＝最大周波数×実測負荷÷目標負荷  （実測負荷≦目標負荷）…（１）
暫定周波数＝最大周波数  （実測負荷＞目標負荷）…（２）
【００３２】
特に、ＣＰＵ１００Ａが追加アプリを実行している間、パラメータ算出部１０７は暫定周波数を常に又は定期的に算出しているため、パラメータ算出部１０７は時間の経過に応じて変化する暫定周波数を得ることができる。
【００３３】
ここで、目標負荷とは測定モードに移行してＣＰＵ１００Ａが動作した際に、ＣＰＵ１００Ａが目標とする負荷の目安をいう。目標負荷は実測負荷に関わらない固定値としてもよいし、実測負荷に応じて動的に可変する可変値としてもよい。前者であれば暫定周波数を速やかに算出でき、後者であれば消費電力の無駄を解消することができる。
【００３４】
具体的には、図５に示すように、パラメータ算出部１０７は実測負荷毎に下限と上限を予め定めた目標負荷テーブルを保持しておく。そして、実測負荷が第１所定値（例えば２０％）より低いときには、パラメータ算出部１０７は実測負荷から高負荷側に大きく乖離した目標負荷（例えば５０％）を利用する。算出式（１）によれば、結果的に暫定周波数は低くなる。逆に、実測負荷が第２所定値（例えば８０％）より高いときには、パラメータ算出部１０７は実測負荷とはさほど乖離しない目標負荷（例えば９０％）を利用する。
【００３５】
算出式（１）によれば結果的に暫定周波数は最大周波数に近くなり、算出式（２）によれば結果的に暫定周波数は最大周波数と同じになる。尚、第１所定値と第２所定値の間に含まれる実測負荷である場合には、図５において、目標負荷７０％及び９０％が利用されるが、これらの目標負荷は特性情報記憶部１０４が記憶する特性情報を利用して予め算出される。具体的には、特性情報に基づいて消費電力的に最も効率的な動作周波数に近づくような目標負荷が予め算出される。
【００３６】
ここで、パラメータ算出部１０７が算出する暫定周波数は必ずしもＣＰＵ１００Ａに設定できる動作周波数（具体的には図４に示す各動作周波数）とは限らない。したがって、パラメータ算出部１０７は暫定周波数をＣＰＵ１００Ａに設定できる動作周波数に置換する。具体的には、パラメータ算出部１０７は暫定周波数の動作周波数への置換を予め定められた以下の４つのパターン（Ａ）〜（Ｄ）のいずれかにより行う。
【００３７】
（Ａ）算出した暫定周波数を挟む２つの動作周波数のうち、特性情報に基づいてＣＰＵ１００Ａの特性として効率的な方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
（Ｂ）算出した暫定周波数を挟む２つの動作周波数のうち、暫定周波数との差が小さい方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
（Ｃ）算出した暫定周波数を挟む２つの動作周波数のうち、常に暫定周波数より小さい方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
（Ｄ）算出した暫定周波数を挟む２つの動作周波数のうち、常に暫定周波数より大きい方の動作周波数を選択し、暫定周波数を、選択した動作周波数に置換。
【００３８】
これにより、時間の経過に応じて変化する暫定周波数が、ＣＰＵ１００Ａに設定可能な動作周波数に置換される。しかしながら、当該動作周波数は時間の経過に対して非常に細かく変化する。このため、全体的な変化の頻度を減らすべく、パラメータ算出部１０７はパラメータ記憶部１１０が予め記憶する複数のガバナーパラメータのいずれか又はこれらの組み合わせに基づいて動作周波数の変化を近似する。
【００３９】
ここで、図６から図８までを参照して、動作周波数の変化の近似を具体的に説明する。
【００４０】
図６から図８はいずれも時間の経過に応じて変化する近似前後の動作周波数の一部（その１〜その３）である。言い換えれば、図６から図８に示す近似前の動作周波数の一部を結合することにより、時間の経過に応じて変化する、ＣＰＵ１００Ａに設定可能な動作周波数全体が完成する。
【００４１】
パラメータ算出部１０７が動作周波数の変化を近似する場合、まず、パラメータ算出部１０７は図６〜図８の上段に示す近似前の動作周波数の中から一定の動作周波数が継続する時間が特定の閾値時間以下である部分を特定する。具体的には、図６の上段に示す近似前の動作周波数であれば、パラメータ算出部１０７は部分Ａを特定する。同様に、図７の上段に示す近似前の動作周波数であれば、パラメータ算出部１０７は部分Ｂを特定する。図８の上段に示す近似前の動作周波数であれば、パラメータ算出部１０７は部分Ｃを特定する。
【００４２】
次に、パラメータ算出部１０７は特定した部分の動作周波数を、その直前に存在する該部分より長い時間で継続する一定した動作周波数に置換し、置換後の部分と直前の動作周波数の区間とを結合する。具体的には、図６の下段に示すように、パラメータ算出部１０７は、部分Ａの動作周波数を直前に存在する動作周波数に置換し、部分Ａと直前に存在する動作周波数の区間Ａ´を結合する。同様に、図７の下段に示すように、パラメータ算出部１０７は、部分Ｂの動作周波数を直前に存在する動作周波数に置換し、部分Ｂと直前に存在する動作周波数の区間Ｂ´を結合する。また、図８の下段にも示すように、パラメータ算出部１０７は、部分Ｃの動作周波数を直前に存在する動作周波数に置換し、部分Ｃと直前に存在する動作周波数の区間Ｃ´を結合する。これにより、細かな変化が消失し、変化が大きく一定の動作周波数が長く継続する動作周波数が残存する。
【００４３】
そして、パラメータ算出部１０７は残存した動作周波数に基づいてガバナーパラメータを決定する。具体的には、最低周波数にあるときに次にとる動作周波数を表すガバナーパラメータ（具体的にはhispeed_freq）とその滞在時間をガバナーパラメータ（具体的にはabove_hispeed_delay）に関しては、パラメータ算出部１０７はそれぞれの統計値に基づいて、各最頻値をそれぞれガバナーパラメータとして決定する。
【００４４】
また、パラメータ算出部１０７は目標負荷に基づいて負荷に関するガバナーパラメータ（具体的にはtarget_load及びhispeed_load）を決定する。さらに、動作周波数毎にその動作周波数が設定されてからの継続時間を表すガバナーパラメータ（具体的にはmin_sample_time）に関しては、パラメータ算出部１０７は統計値に基づき最小値をガバナーパラメータとして決定する。idle開始時からの周波数維持時間を表すガバナーパラメータ（具体的にはtimer_slack）に関しては、パラメータ算出部１０７は初期設定の固定値をガバナーパラメータとして決定する。
【００４５】
パラメータ算出部１０７がガバナーパラメータを決定すると、アプリ実行部１０５はイベント制御部１０１に追加アプリを起動させる。そして、パラメータ算出部１０７は初期設定のガバナーパラメータに基づいて追加アプリが実行された場合に消費電力測定部１０２が測定した消費電力と、決定したガバナーパラメータに基づいて追加アプリが実行された場合に消費電力測定部１０２が測定した消費電力を比較する。パラメータ算出部１０７は比較した結果、決定したガバナーパラメータの方が初期設定のガバナーパラメータより消費電力が少ない場合、決定したガバナーパラメータを追加アプリの情報と関連付けてパラメータ記憶部１１０に格納する。
【００４６】
パラメータ変換部１０８はガバナーパラメータを動作周波数に変換する。より詳しくは、追加アプリが実行されると、パラメータ変換部１０８はパラメータ記憶部１１０が記憶するガバナーパラメータの中から追加アプリに応じたガバナーパラメータを取得する。パラメータ変換部１０８は追加アプリに応じたガバナーパラメータを取得すると、取得したガバナーパラメータを動作周波数に変換して動作周波数制御部１０９に出力する。
【００４７】
動作周波数制御部１０９はパラメータ変換部１０８から出力された動作周波数でＣＰＵ１００Ａを動作させる。したがって、ＣＰＵ１００Ａはパラメータ変換部１０８から出力された動作周波数に従って動作する。
【００４８】
次に、図９を参照して、動作周波数制御装置１００の動作について説明する。
【００４９】
図９は動作周波数制御装置１００の動作の一例である。図９に示すように、イベント履歴管理部１０３は、まず、イベント履歴保持処理を実行する（ステップＳ１０１）。詳細は後述するが、イベント履歴保持処理は、イベント制御部１０１から出力されたイベント情報をタスクと関連付けて保持する処理である。イベント履歴保持処理が完了すると、次いで、イベント履歴管理部１０３はタスクの統計情報が所定の条件を満足するか否かを判断する（ステップＳ１０２）。
【００５０】
タスクの統計情報が所定の条件を満足しない場合（ステップＳ１０２：ＮＯ）、イベント履歴管理部１０３はステップＳ１０１の処理を再び実行する。一方、タスクの統計情報が所定の条件を満足する場合（ステップＳ１０２：ＹＥＳ）、パラメータ算出部１０７はパラメータ算出処理を実行する（ステップＳ１０３）。詳細は後述するが、パラメータ算出処理は追加アプリの実行中のＣＰＵ１００Ａの負荷に基づいて、ＣＰＵ１００Ａの動作周波数を制御するガバナーパラメータを算出する処理である。パラメータ算出処理が完了すると、パラメータ算出部１０７は処理を終える。
【００５１】
次に、図１０を参照して、上述したイベント履歴保持処理の詳細について説明する。
【００５２】
図１０はイベント履歴保持処理の一例を示すフローチャートである。例えば携帯情報端末１０の電源スイッチがオフからオンに切り替えられると、イベント履歴管理部１０３は自身を通常モードに設定する（ステップＳ２０１）。ステップＳ２０１の処理が完了し、イベント制御部１０１がタッチパネル１００Ｈから追加アプリを起動するユーザ操作を受け付けると、イベント制御部１０１はイベント情報を生成し（ステップＳ２０２）、イベント履歴管理部１０３はイベント制御部１０１が生成したイベント情報を保持する（ステップＳ２０３）。
【００５３】
また、イベント制御部１０１は追加アプリを起動するユーザ操作を受け付けると、追加アプリを起動する（ステップＳ２０４）、追加アプリが起動すると、ＣＰＵ１００Ａは追加アプリを実行する。尚、ステップＳ２０２，Ｓ２０３の処理とステップＳ２０４の処理の順序は逆であってもよい。ステップＳ２０４の処理が完了すると、次いで、イベント履歴管理部１０３はユーザ操作に応じて生成された種々のタスクに関する情報（例えばアプリ名や画面名など）をOperating System（ＯＳ）から取得する（ステップＳ２０５）。イベント履歴管理部１０３はタスクに関する情報を取得すると、タスクの統計情報を生成する（ステップＳ２０６）。ステップＳ２０６の処理が完了すると、イベント履歴管理部１０３はイベント情報と統計情報を関連付けて保持する（ステップＳ２０７）。これにより、イベント履歴管理部１０３はイベント履歴保持処理を終える。
【００５４】
次に、図１１を参照して、パラメータ算出処理の詳細について説明する。
【００５５】
図１１はパラメータ算出処理の一例を示すフローチャートである。イベント履歴管理部１０３が生成した統計情報が所定の条件を満足すると、イベント履歴管理部１０３は自身を測定モードに設定する（ステップＳ３０１）。イベント履歴管理部１０３が自身を測定モードに設定すると、パラメータ算出部１０７はＣＰＵ１００Ａの動作周波数を最大周波数に固定する（ステップＳ３０２）。より詳しくは、パラメータ算出部１０７はパラメータ変換部１０８の通常モード時の機能を無効化し、測定モード時の機能を有効化する。これにより、パラメータ変換部１０８はＣＰＵ１００Ａの負荷に応じた動作周波数を動作周波数制御部１０９に出力する機能を停止し、動作周波数制御部１０９に最大周波数を出力する機能を実現する。これにより、動作周波数制御部１０９はＣＰＵ１００Ａを最大周波数で動作させる。
【００５６】
ステップＳ３０２の処理が完了すると、次いで、パラメータ算出部１０７は特性情報を取得し（ステップＳ３０３）、アプリ実行部１０５はイベント制御部１０１に追加アプリを起動させる（ステップＳ３０４）。より詳しくは、アプリ実行部１０５はイベント履歴管理部１０３から測定モードへの移行が指示されると、イベント制御部１０１にイベント情報に応じた追加アプリを起動させる。これにより、ＣＰＵ１００Ａは追加アプリを再び実行する。
【００５７】
ステップＳ３０４の処理が完了すると、負荷履歴管理部１０６は追加アプリ実行中のＣＰＵ１００Ａの負荷を測定する（ステップＳ３０５）。ステップＳ３０５の処理が完了すると、次いで、パラメータ算出部１０７は負荷履歴管理部１０６が測定した実測負荷を暫定周波数に変換する（ステップＳ３０６）。より詳しくは、パラメータ算出部１０７は実測負荷、実測負荷に応じて決定される目標負荷、ＣＰＵ１００Ａの最大周波数、及び上述した所定の計算式（１）又は（２）を利用して、実測負荷を暫定周波数に変換する。
【００５８】
ステップＳ３０６の処理が完了すると、次いで、パラメータ算出部１０７はガバナーパラメータを算出する（ステップＳ３０７）。より詳しくは、パラメータ算出部１０７は暫定周波数をＣＰＵ１００Ａに設定できる動作周波数に置換し、その動作周波数を近似し、近似後の動作周波数を利用して種々のガバナーパラメータを決定する。
【００５９】
ステップＳ３０７の処理が完了すると、消費電力測定部１０２は消費電力を測定する（ステップＳ３０８）。より詳しくは、消費電力測定部１０２は初期設定のガバナーパラメータに基づいて動作するＣＰＵ１００Ａの消費電力と、決定したガバナーパラメータに基づいて動作するＣＰＵ１００Ａの消費電力をそれぞれ測定する。ステップＳ３０８の処理が完了すると、パラメータ算出部１０７は消費電力測定部１０２が測定した消費電力の中から最小の消費電力を測定したガバナーパラメータを追加アプリの情報と関連付けてパラメータ記憶部１１０に保存する（ステップＳ３０９）。これにより、追加アプリが実行されるたびに、追加アプリに応じたガバナーパラメータが利用されてＣＰＵ１００Ａが動作する。
【００６０】
以上、本実施形態によれば、動作周波数制御装置１００はアプリ実行部１０５とパラメータ算出部１０７を含んでいる。アプリ実行部１０５は、ユーザ操作に基づいて生成されるタスクの統計情報が予め指定された所定の条件を満足すると判断された場合、イベント履歴管理部１０３が保持するイベント情報の履歴に基づいて、追加アプリを起動させてＣＰＵ１００Ａに追加アプリを実行させる。パラメータ算出部１０７は追加アプリ実行中のＣＰＵ１００Ａの実測負荷に基づいて、ガバナーパラメータを算出する。これにより、追加アプリに対するＣＰＵ１００Ａの性能を調整することができる。したがって、追加アプリに対しても携帯情報端末１０のパフォーマンス（具体的には応答速度又は操作性）が確保されながら、無駄な消費電力の発生が抑えられる。結果的に、電池容量の減少速度が低下し、携帯情報端末１０の稼働時間が伸長する。
【００６１】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６２】
例えば、測定モードの移行はユーザ操作に基づいて行われてもよく、測定モード移行後の追加アプリの起動もユーザ操作に基づいて行われてもよい。この場合、イベント履歴管理部１０３は自身を動的に測定モードに設定する必要はなく、また、アプリ実行部１０５はイベント制御部１０１に追加アプリを動的に起動させる必要もない。
【００６３】
また、暫定周波数の動作周波数への置換は例えば選択画面を用意し、パターン（Ａ）〜（Ｄ）のいずれかをユーザに選択させるようにしてもよいし、全てのパターン（Ａ）〜（Ｄ）により暫定周波数の動作周波数への置換を行い、最小の消費電力を測定するパターン（Ａ）〜（Ｄ）が選択されるようにしてもよい。さらに、第１の統計情報と第２の統計情報の双方を利用せずに、いずれか一方を利用するようにしてもよい。
【００６４】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、処理を実行する処理部を備える動作周波数制御装置。
（付記２）前記処理部は、前記条件を満たす場合に、前記ＣＰＵの動作周波数を最大周波数に固定し、前記ＣＰＵの実測負荷と前記ＣＰＵの目標負荷との関係に基づいて、前記最大周波数を暫定的な周波数に変換し、前記暫定的な周波数に応じた前記パラメータを算出する、ことを特徴とする付記１に記載の動作周波数制御装置。
（付記３）前記処理部は、携帯情報端末に予め設定されたパラメータと算出したパラメータのそれぞれによる前記追加アプリの実行に基づく消費電力を測定し、消費電力が少ない方のパラメータを前記追加アプリの情報と関連付けて保持する、ことを特徴とする付記１又は２に記載の動作周波数制御装置。
（付記４）前記統計情報は、前記タスクの使用頻度及び消費電力の少なくとも一方である、ことを特徴とする付記１から３のいずれか１項に記載の動作周波数制御装置。
（付記５）操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、処理をコンピュータに実行させる動作周波数制御プログラム。
（付記６）操作に基づいて生成されるタスクの統計情報が予め指定された条件を満たす場合に、前記操作の履歴に基づいて、操作対象の追加アプリを実行させ、前記追加アプリ実行中のＣＰＵの負荷に基づいて、前記ＣＰＵの動作周波数を制御するパラメータを算出する、処理をコンピュータが実行する動作周波数制御方法。
（付記７）前記条件を満たす場合に、前記ＣＰＵの動作周波数を最大周波数に固定し、前記ＣＰＵの実測負荷と前記ＣＰＵの目標負荷との関係に基づいて、前記最大周波数を暫定的な周波数に変換し、前記暫定的な周波数に応じた前記パラメータを算出する、ことを特徴とする付記６に記載の動作周波数制御方法。
（付記８）携帯情報端末に予め設定されたパラメータと算出したパラメータのそれぞれによる前記追加アプリの実行に基づく消費電力を測定し、消費電力が少ない方のパラメータを前記追加アプリの情報と関連付けて保存する、ことを特徴とする付記６又は７に記載の動作周波数制御方法。
（付記９）前記統計情報は、前記タスクの使用頻度及び消費電力の少なくとも一方である、ことを特徴とする付記６から８のいずれか１項に記載の動作周波数制御方法。
【符号の説明】
【００６５】
１０  携帯情報端末
１００  動作周波数制御装置
１０１  イベント制御部
１０２  消費電力測定部
１０３  イベント履歴管理部
１０４  特性情報記憶部
１０５  アプリ実行部
１０６  負荷履歴管理部
１０７  パラメータ算出部
１０８  パラメータ変換部
１０９  動作周波数制御部
１１０  パラメータ記憶部
【図１】
2018156252.tif 000003
【図２】
2018156252.tif 000004
【図３】
2018156252.tif 000005
【図４】
2018156252.tif 000006
【図５】
2018156252.tif 000007
【図６】
2018156252.tif 000008
【図７】
2018156252.tif 000009
【図８】
2018156252.tif 000010
【図９】
2018156252.tif 000011
【図１０】
2018156252.tif 000012
【図１１】
2018156252.tif 000013