(57)【特許請求の範囲】
【請求項１】
電池によって駆動される情報処理装置であって、
前記情報処理装置に対する負荷の大きさを示す値を記録する記録部と、
前記記録部に記録された前記値に基づいて、前記負荷に関する下限の閾値を判定する判定部と、
当該情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかのプログラムを起動させる制御部と、
前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する算出部とを有する情報処理装置。
【請求項２】
前記判定部は、前記負荷に関する上限の閾値を更に判定し、
前記制御部は、当該情報処理装置に対する前記負荷が前記上限の閾値を超えた場合に、前記記憶部を参照して、起動中の前記プログラムのいずれかを停止させる請求項１記載の情報処理装置。
【請求項３】
当該情報処理装置の外気の温度を監視する監視部を有し、
前記判定部は、前記温度の変化量が所定の範囲を超えた場合は、前記閾値を再判定する請求項１又は２記載の情報処理装置。
【請求項４】
電池によって駆動される情報処理装置が、
前記情報処理装置に対する負荷の大きさを示す値を記録し、
記録された前記値に基づいて、前記負荷に関する下限の閾値を判定し、
前記情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかの前記プログラムを起動させ、
前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する処理を実行するバッテリ残量予測方法。
【請求項５】
電池によって駆動される情報処理装置に、
前記情報処理装置に対する負荷の大きさを示す値を記録し、
記録された前記値に基づいて、前記負荷に関する下限の閾値を判定し、
前記情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかの前記プログラムを起動させ、
前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する処理を実行させるバッテリ残量予測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、バッテリ残量予測方法、及びバッテリ残量予測プログラムに関する。
【背景技術】
【０００２】
スマートフォンや携帯電話等の携帯機器の高性能化に伴い、携帯機器の消費電力増大が注目されている。消費電力制御には、精度の高い消費電力解析が必要とされる。とりわけ、携帯機器のようなバッテリ（電池）によって駆動される機器においては、バッテリ持続可能時間の予測が機器全体の消費電力制御の大きな要素となる。消費電力制御には、バッテリの持続可能時間の予測値に基づいて行われるからである。
【０００３】
従来、或る期間内の消費電力を測定し、パラメータフィッティングに基づく計算によって、バッテリ持続可能時間の予測関数（予測曲線）が求められていた。そして、斯かる予測関数を用いて、バッテリ持続可能時間が予測されていた。
【０００４】
例えば、図１は、パラメータフィッティングによるバッテリ持続能時間の予測関数の導出方法を説明するための図である。
【０００５】
同図では、時刻０において予測関数が求められ、時刻ｔ０、ｔ１、及びｔ２のそれぞれの時点において、前回の予測時刻からの消費電力等のトレース結果に基づいて、予測関数が求められている。そして、各時点において求められた予測関数に基づいて、バッテリの持続可能時間が算出される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−１２６２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、予測関数を求めるためのパラメータフィッティングにはＣＰＵパワーと計算時間とを必要とする。したがって、特に、小型携帯機器の中で演算を行わせるには効率が悪く、現実的ではなかった。予測関数だけを別途外部のコンピュータで計算させることも可能であるが、リアルタイム性が重視される小型携帯機器において、外部で一旦予測関数を計算するような方式は現実的ではなかった。
【０００８】
そこで、一つの側面では、バッテリの持続可能時間の予測のための計算量を削減することのできる情報処理装置、バッテリ残量予測方法、及びバッテリ残量予測プログラムの提供を目的とする。
【課題を解決するための手段】
【０００９】
一つの案では、電池によって駆動される情報処理装置であって、前記情報処理装置に対する負荷の大きさを示す値を記録する記録部と、前記記録部に記録された前記値に基づいて、前記負荷に関する下限の閾値を判定する判定部と、当該情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかのプログラムを起動させる制御部と、前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する算出部とを有する。
【発明の効果】
【００１０】
バッテリの持続可能時間の予測のための計算量を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】パラメータフィッティングによるバッテリ可能時間予測関数の導出方法を説明するための図である。
【図２】第一の実施の形態のバッテリの持続可能時間の予測方法の概要を説明するための図である。
【図３】第一の実施の形態のバッテリの持続可能時間の予測方法の概要を説明するための図である。
【図４】第一の実施の形態における情報処理装置のハードウェア構成例を示す図である。
【図５】本発明の実施の形態における情報処理装置の機能構成例を説明するための図である。
【図６】第一の実施の形態におけるＣＰＵ使用率の推移の記録処理の処理手順の一例を説明するためのフローチャートである。
【図７】推移記録テーブルの構成例を示す図である。
【図８】第一の実施の形態におけるＣＰＵ使用率の推移の制御処理の処理手順の一例を説明するためのフローチャートである。
【図９】閾値情報管理テーブルの構成例を示す図である。
【図１０】第一の実施の形態のアプリ・負荷相関テーブルの構成例を示す図である。
【図１１】ＣＰＵ使用率の推移の制御の一例を示す図である。
【図１２】第一の実施の形態の閾値設定処理の処理手順の一例を説明するためのフローチャートである。
【図１３】第一の実施の形態のアプリケーションプログラムの起動処理の処理手順の一例を説明するためのフローチャートである。
【図１４】第一の実施の形態のバッテリの持続可能時間の予測処理の処理手順の一例を説明するためのフローチャートである。
【図１５】第一の実施の形態の関数テーブルの構成例を示す図である。
【図１６】温度変化に応じた閾値の変更処理の処理手順の一例を説明するためのフローチャートである。
【図１７】温度変化に応じた閾値の変化の例を示す図である。
【図１８】第二の実施の形態における情報処理装置のハードウェア構成例を示す図である。
【図１９】第二の実施の形態における電力消費量の推移の記録処理の処理手順の一例を説明するためのフローチャートである。
【図２０】第二の実施の形態における電力値の推移の制御処理の処理手順の一例を説明するためのフローチャートである。
【図２１】第二の実施の形態の閾値設定処理の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。まず、本実施の形態におけるバッテリの持続可能時間（残り時間）の予測方法の概要について説明する。図２及び図３は、第一の実施の形態のバッテリの持続可能時間の予測方法の概要を説明するための図である。
【００１３】
図２（１）に示されるように、本実施の形態では、バッテリより供給される電流によって駆動する情報処理装置の電力消費量の推移が観察され、電力消費量に関して、上限の閾値（上界閾値）及び下限の閾値（下界閾値）が設定される。
【００１４】
続いて、図２（２）に示されるように、電力消費量が、上界閾値及び下界閾値の範囲内に収まるように制御が行われる。
【００１５】
図２（１）及び（２）に示される処理が継続的に実行されている状況において、図３に示されるように、関数テーブル２４に記憶されている関数の当てはめによって、バッテリ残量（持続可能時間）が予測される。当てはめられる関数は、当てはめを行う時点（図３では、ｔ０、ｔ１、ｔ２、及びｔ３等）における、電力消費量の推移の傾きに基づいて選択される。換言すれば、関数テーブル２４は、当該傾きに応じて、関数を記憶する。
【００１６】
ここで、電力消費量の傾きは、図２（２）における曲線の傾きである。上記したように、本実施の形態では、電力消費量が上界閾値及び下界閾値の範囲内に収まるように制御されている。したがって、電力消費量の範囲が制御されない場合に比べて当該傾きの範囲が限定される可能性を高めることができる。その結果、本実施の形態では、情報処理装置の動作状態に応じて、動的に予測関数を生成する必要性を低下させることができる。すなわち、関数テーブル２４に予め記録されている関数を用いてバッテリの持続可能時間を予測することができる。また、電力消費量が上界閾値及び下界閾値の範囲内に収まるように制御されているため、関数テーブル２４に記録される関数の種類に関しても、削減される可能性を高めることができる。その結果、バッテリの持続可能時間を予測するための計算量を削減することができる。
【００１７】
続いて、本実施の形態の情報処理装置の具体的な構成の一例について説明する。図４は、第一の実施の形態における情報処理装置のハードウェア構成例を示す図である。図４の情報処理装置１０は、それぞれバスBで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、入力装置１０７、温度センサ１０８、及びバッテリ１０９等を有する。
【００１８】
情報処理装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１９】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報処理装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【００２０】
温度センサ１０８は、情報処理装置１０の外気の温度を計測するセンサである。バッテリ１０９は、図４に示される各ハードウェアに電流を供給するバッテリ（電池）である。バッテリ１０９は、二次電池（蓄電池又は充電式電池）でもよいし、非充電式の電池でもよい。
【００２１】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００２２】
図５は、本発明の実施の形態における情報処理装置の機能構成例を説明するための図である。同図において、情報処理装置１０は、負荷監視部１１、閾値判定部１２、推移制御部１３、予測部１４、及び温度監視部１５等を有する。これら各部は、情報処理装置１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理によって実現される。但し、これら各部は、ハードウェア（回路）によって実現されてもよい。情報処理装置１０は、また、推移記録テーブル２１、閾値情報管理テーブル２２、アプリ・負荷相関テーブル２３、及び関数テーブル２４等を有する。これら各テーブルは、例えば、補助記憶装置１０２を用いて実現可能である。
【００２３】
負荷監視部１１は、情報処理装置１０の負荷の大きさを示す値を監視する。第一の実施の形態では、斯かる値の一例として、ＣＰＵ使用率が利用される。すなわち、第一の実施の形態では、ＣＰＵ使用率の推移によって、電力消費量（電力値）の推移が推定される。
【００２４】
電力値の計測は負荷の高い処理であるため、斯かる負荷の高い処理が周期的に実行されるのは好ましくない。一方、ＣＰＵ使用率と電力消費量との間には相関関係があると考えられる。また、ＣＰＵ使用率の取得は、電力消費量の計測に比べて負荷が小さい。そこで、第一の実施の形態では、電力消費量の推移の推定にＣＰＵ使用率の推移が用いられる。なお、例えば、メモリ使用量等、他の負荷の推移によって、電力消費量の推移が推定されてもよい。
【００２５】
したがって、第一の実施の形態において、負荷監視部１１は、ＣＰＵ使用率を定期的に取得し、取得された値を推移記録テーブル２１に記録する。その結果、推移記録テーブル２１には、ＣＰＵ使用率の推移（又は履歴）が記録される。
【００２６】
閾値判定部１２は、推移記録テーブル２１を参照して、ＣＰＵ使用率の上界閾値及び下界閾値を判定する。閾値判定部１２は、上界閾値及び下界閾値等を、閾値情報管理テーブル２２に記録する。
【００２７】
推移制御部１３は、ＣＰＵ使用率が上界閾値及び下界閾値の範囲内に収まるように制御する。例えば、ＣＰＵ使用率が下界閾値を下回った場合、推移制御部１３は、アプリケーション等のプログラムをプロセスとして起動することにより、ＣＰＵ使用率を増加させる。また、ＣＰＵ使用率が上界閾値を上回った場合、推移制御部１３は、アプリケーション等のプログラムのプロセスを停止することにより、ＣＰＵ使用率を減少させる。起動対象又は停止対象とするアプリケーションは、アプリ・負荷相関テーブル２３に基づいて選択される。アプリ・負荷相関テーブル２３には、アプリケーションごとに当該アプリケーションの起動前と起動後とのＣＰＵ使用率の差分値が記録されている。すなわち、アプリ・負荷相関テーブル２３には、アプリケーションごとに当該アプリケーションを起動した場合のＣＰＵ使用率の増加量が記録されている。
【００２８】
予測部１４は、推移記録テーブル２１に記録された情報に基づいて、関数テーブル２４に記録されている関数を選択し、選択された関数を用いてバッテリ１０９の持続可能時間を予測する。
【００２９】
温度監視部１５は、情報処理装置１０の外気の温度を監視し、所定値以上の温度変化が発生した場合に、上界閾値及び下界閾値の再設定を閾値判定部１２に実行させる。すなわち、バッテリ１０９による電流の供給は、化学変化によって行われるため、急激な温度変化が発生した場合には、一時的に電流の出力が低下することが考えられる。本実施の形態では、バッテリ１０９のこのような温度特性を考慮し、温度変化に応じて、上界閾値及び下界閾値が修正される。
【００３０】
以下、情報処理装置１０が実行する処理手順について説明する。図６は、第一の実施の形態におけるＣＰＵ使用率の推移の記録処理の処理手順の一例を説明するためのフローチャートである。同図の処理手順は、情報処理装置１０の起動に応じて開始されてもよいし、ユーザによる指示入力に応じて開始されてもよい。
【００３１】
ステップＳ１１０において、負荷監視部１１は、ＣＰＵ１０４に関するＣＰＵ使用率を、例えば、情報処理装置１０のＯＳ（Operating System）より取得する。続いて、負荷監視部１１は、推移記録テーブル２１に、新たなレコード（以下、「カレントレコード」という。）を追加し、取得されたＣＰＵ使用率をカレントレコードに記録する（Ｓ１２０）。
【００３２】
図７は、推移記録テーブルの構成例を示す図である。同図において、推移記録テーブル２１の各レコードは、番号、起動フラグ、ＣＰＵ使用率、及び傾き等を記憶するための項目を有する。
【００３３】
番号は、各レコードの識別子である。番号は、例えば、レコードの生成に応じて自動的に割り当てられる。本実施の形態では、記録された順番がそのまま番号の値とされる。起動フラグは、対象アプリケーションの起動の有無を示す情報である。「１」は起動されていることを示し、「０」は起動されていないことを示す。起動フラグの初期値（レコードの生成時に自動的に設定される値）は、「０」である。対象アプリケーションとは、当該アプリケーションプログラムが起動されているときにバッテリ１０９の持続可能時間の予測機能が有効となるアプリケーションプログラムをいう。例えば、動画再生アプリケーション等、特定のアプリケーションプログラムが起動されている状態において、当該アプリケーションプログラムの動作状態が継続した場合のバッテリ１０９の持続可能時間をユーザに通知することが考えられる。この場合、ユーザは、現在起動中のアプリケーションプログラムの使用可能時間を把握することができる。そこで、本実施の形態では、対象アプリケーションが起動されている場合に、バッテリ１０９の持続可能時間の予測機能が有効となる例が示される。但し、バッテリ１０９の持続可能時間の予測機能が有効となる状態は、特定のアプリケーションプログラムの起動中に限定されなくてもよい。
【００３４】
ＣＰＵ使用率は、ステップＳ１２０において記録されるＣＰＵ使用率である。傾きは、ＣＰＵ使用率の傾きである。当該傾きは、ＣＰＵ使用率が取得される周期における、ＣＰＵ使用率の変化量である。
【００３５】
続いて、負荷監視部１１は、対象アプリケーションが起動されているか否かを確認する（Ｓ１３０）。対象アプリケーションの起動の有無は、例えば、情報処理装置１０のＯＳに問い合わせることにより可能である。また、どのアプリケーションプログラムが対象アプリケーションであるかは、例えば、対象アプリケーションの識別情報（例えば、実行ファイル名等）が補助記憶装置１０２に予め記録されていればよい。
【００３６】
対象アプリケーションが起動されていない場合（Ｓ１３０でＮｏ）、負荷監視部１１は、一定周期Ｕの経過後（Ｓ１９０でＹｅｓ）、ステップＳ１１０以降を繰り返す。一定周期Ｕの値は、予め補助記憶装置１０２に記録されていてもよいし、情報処理装置１０の起動後に、ユーザによって入力されてもよい。本実施の形態では、一定周期Ｕの値として、１０［ｍ／秒］が設定されていることとする。
【００３７】
対象アプリケーションが起動されている場合（Ｓ１３０でＹｅｓ）、負荷監視部１１は、カレントレコードの起動フラグに「１」を記録する（Ｓ１４０）。続いて、負荷監視部１１は、今回のＣＰＵ使用率をカレントレコードより取得し、変数Ａに代入する（Ｓ１５０）。続いて、負荷監視部１１は、カレントレコードの一つ前のレコードのＣＰＵ使用率を取得し、変数Ｂに代入する（Ｓ１６０）。続いて、負荷監視部１１は、ＢからＡを差し引いた値を一定周期Ｕによって除することにより、傾きを算出する（Ｓ１７０）。続いて、負荷監視部１１は、算出された傾きを、カレントレコードの傾きに記録する（Ｓ１８０）。続いて、負荷監視部１１は、一定周期Ｕの経過後（Ｓ１９０でＹｅｓ）、ステップＳ１１０以降を繰り返す。
【００３８】
図６に示される処理が周期的に実行されることにより、推移記録テーブル２１には、ＣＰＵ使用率の推移を示す情報が蓄積される。
【００３９】
続いて、ＣＰＵ使用率の推移の制御処理について説明する。すなわち、図２において説明したように、ＣＰＵ使用率を下界閾値及び上界閾値の範囲内に収めるための処理である。なお、図２では、電力値が下界閾値及び上界閾値の範囲内に収められると説明したが、第一の実施の形態では、ＣＰＵ使用率の推移によって電力消費量（電力値）の推移が推定されるため、ＣＰＵ使用率を、下界閾値及び上界閾値の範囲内に収めるための処理が実行される。
【００４０】
図８は、第一の実施の形態におけるＣＰＵ使用率の推移の制御処理の処理手順の一例を説明するためのフローチャートである。同図の処理手順は、例えば、図６の処理手順を実行するプロセスとは異なるプロセスによって実行される。すなわち、図８の処理は、図６の処理と並列的に実行される。
【００４１】
例えば、ユーザによって、バッテリ１０９の持続可能時間の予測の開始指示が入力されると（Ｓ２０１でＹｅｓ）、閾値判定部１２は、閾値情報管理テーブル２２の内容を初期化する（Ｓ２０２）。
【００４２】
図９は、閾値情報管理テーブルの構成例を示す図である。同図において、閾値情報管理テーブル２２は、上界閾値、下界閾値、下界閾値割合、及び閾値差分等を記憶するための項目を有する。
【００４３】
上界閾値及び下界閾値は、ＣＰＵ使用率に関する上界閾値又は下界閾値である。下界閾値割合は、上界閾値に対する下界閾値の割合を示す係数である。すなわち、本実施の形態では、上界閾値を基準として、下界閾値が決定される。具体的には、下界閾値割合は、上界閾値に対して下界閾値割合を乗ずることにより算出される。但し、下界閾値を基準として上界閾値が算出されてもよい。差分は、上界閾値と下界閾値との差分である。
【００４４】
なお、同図では、全ての項目に対して値が設定されている状態が示されているが、ステップＳ２０２の時点では、上界閾値、下界閾値、及び差分の値は空又は０（ゼロ）に初期化される。また、下界閾値割合の値は、固定的に設定されていてもよいし、ステップＳ２０１等においてユーザによって入力された値が、ステップＳ２０２において設定されてもよい。
【００４５】
続いて、閾値判定部１２は、上界閾値及び下界閾値を設定する（Ｓ２０３）。すなわち、ステップＳ２０３において、閾値情報管理テーブル２２における、上界閾値、下界閾値、及び差分に値が設定される。
【００４６】
続いて、推移制御部１３は、ＣＰＵ使用率の現在値が、閾値情報管理テーブル２２に記録されている下界閾値未満であるか否かを判定する（Ｓ２０４）。ＣＰＵ使用率の現在値は、ステップＳ２０４においてＯＳより取得されてもよい。又は、推移記録テーブル２１の最後のレコードに記録されているＣＰＵ使用率が現在値として用いられてもよい。
【００４７】
ＣＰＵ使用率の現在値が下界閾値以上である場合（Ｓ２０４でＮｏ）、推移制御部１３は、当該現在値が、閾値情報管理テーブル２２に記録されている上界閾値を超えるか否かを判定する（Ｓ２０５）。すなわち、ステップＳ２０４及びＳ２０５では、ＣＰＵ使用率の現在値が、下界閾値及び上界閾値の範囲内に収まっているか否かが判定される。
【００４８】
ＣＰＵ使用率の現在値が、上界閾値以下である場合（Ｓ２０５でＮｏ）、推移制御部１３は、ステップＳ２０４以降を繰り返す。すなわち、ＣＰＵ使用率が、下界閾値及び上界閾値の範囲内に収まっているか否かが継続的に監視される。
【００４９】
ＣＰＵ使用率の現在値が下界閾値未満となったことが検知されると（Ｓ２０４でＹｅｓ）、推移制御部１３は、アプリケーションの起動処理を実行する（Ｓ２０６）。すなわち、推移制御部１３は、アプリケーションを起動することによりＣＰＵ使用率を増加させ、ＣＰＵ使用率を下界閾値及び上界閾値の範囲内に復帰させる。
【００５０】
すなわち、本実施の形態では、ＣＰＵ使用率を下界閾値及び上界閾値の範囲内に収めるために、ＣＰＵ使用率の増加（すなわち、電力消費量の増加）も許容される。
【００５１】
なお、ステップＳ２０６では、図１０に示されるアプリ・負荷相関テーブル２３に基づいて、起動対象のアプリケーションが選択される。
【００５２】
図１０は、第一の実施の形態のアプリ・負荷相関テーブルの構成例を示す図である。同図において、アプリ・負荷相関テーブル２３には、アプリケーションプログラムごとに、アプリケーション名及び差分値が登録されている。
【００５３】
アプリケーション名は、アプリケーションプログラムの実行ファイル名等、アプリケーションプログラムの起動に必要な識別情報である。差分値は、アプリケーションプログラムが起動された場合の、ＣＰＵ使用率の増加量である。差分値は、予め計測され、アプリ・負荷相関テーブル２３に登録される。なお、アプリ・負荷相関テーブル２３にそのアプリケーション名等が登録されているアプリケーションプログラムは、必ずしも実用的な機能を有するプログラムでなくてもよい。例えば、単に負荷（ＣＰＵ使用率）を高めるための処理が実装されたプログラムであってもよい。すなわち、本実施の形態において、「アプリケーションプログラム」における「アプリケーション」という修飾語は、「プログラム」の機能を所定のものに限定するものではない。
【００５４】
なお、アプリケーションプログラムの起動に応じて計測される、実際のＣＰＵ使用率の増加量によって、当該アプリケーションプログラムに対してアプリ・負荷相関テーブル２３に登録されている差分値が更新されてもよい。
【００５５】
一方、ＣＰＵ使用率の現在値が上界閾値を超えたことが検知されると（Ｓ２０５でＹｅｓ）、推移制御部１３は、ステップＳ２０６において起動されたアプリケーションプログラムの中で、アプリ・負荷相関テーブル２３に登録されている差分値が最大であるアプリケーションプログラムのプロセスを停止させる（Ｓ２０７）。そうすることにより、ＣＰＵ使用率を低下させ、上界閾値以下にする。なお、仮に、当該アプリケーションプログラムのプロセスの停止により、ＣＰＵ使用率が下界閾値未満となった場合には、改めてステップＳ２０６が実行される。その結果、ＣＰＵ使用率は、下界閾値及び上界閾値の範囲内に収められる。なお、ステップＳ２０７において、ＣＰＵ使用率の現在値−差分値が、下界閾値以上であって、かつ、上界閾値以下となるような、差分値がアプリ・負荷相関テーブル２３に登録されているアプリケーションプログラムが、停止対象として選択されてもよい。
【００５６】
図８において説明した処理によって、ＣＰＵ使用率の推移は、例えば、図１１に示されるように制御される。
【００５７】
図１１は、ＣＰＵ使用率の推移の制御の一例を示す図である。同図において、（Ａ）では、ステップＳ２０３の実行により、上界閾値（３５％）及び下界閾値（８．７５％）が設定されている。なお、同図のグラフは、推移記録テーブル２１に記録されているＣＰＵ使用率の推移を示したものである。
【００５８】
（Ｂ）では、時刻ｔ１において、ＣＰＵ使用率の現在値が下界閾値未満となったことが検出されている（Ｓ２０４でＹｅｓ）。そこで、アプリケーションプログラムが起動される（Ｓ２０５）。
【００５９】
その結果、（Ｃ）に示されるように、ＣＰＵ使用率は、下界閾値及び上界閾値の範囲内に復帰する。
【００６０】
続いて、図８のステップＳ２０３の詳細について説明する。図１２は、第一の実施の形態の閾値設定処理の処理手順の一例を説明するためのフローチャートである。
【００６１】
ステップＳ３０１において、閾値判定部１２は、推移記録テーブル２１を参照して、ＣＰＵ使用率の最大値を特定する。例えば、推移記録テーブル２１において、起動フラグに「１」が記録されている各レコードのＣＰＵ使用率の中の最大値が特定される。なお、最大値の探索範囲が限定されてもよい。例えば、過去３秒以内のレコードの各ＣＰＵ使用率の最大値が特定されてもよい。これにより、過去に生じたピーク値、例えばアプリケーション起動時等に典型的に生じる一時的なＣＰＵ使用率のピーク値を最大値の候補から除くことができる。すなわち、情報処理装置１０の負荷が安定した状態におけるＣＰＵ使用率の最大値を特定できる可能性を高めることができる。
【００６２】
続いて、閾値判定部１２は、ステップＳ３０１において特定された最大値を上界閾値として閾値情報管理テーブル２２に設定（又は登録）する（Ｓ３０２）。続いて、閾値判定部１２は、閾値情報管理テーブル２２に設定されている下界閾値割合を上界閾値に乗ずることにより、下界閾値を算出する（Ｓ３０３）。続いて、閾値判定部１２は、ステップＳ３０３において算出された下界閾値を閾値情報管理テーブル２２に設定（又は登録）する（Ｓ３０４）。
【００６３】
続いて、閾値判定部１２は、上界閾値と下界閾値との差分値を算出する（Ｓ３０５）。すなわち、上界閾値から下界閾値を減じた値が算出される。続いて、閾値判定部１２は、算出された差分値を閾値情報管理テーブル２２に設定（又は登録）する（Ｓ３０６）。
【００６４】
続いて、図８のステップＳ２０６の詳細について説明する。図１３は、第一の実施の形態のアプリケーションプログラムの起動処理の処理手順の一例を説明するためのフローチャートである。
【００６５】
ステップＳ４０１において、推移制御部１３は、アプリ・負荷相関テーブル２３（図１０）のレコードを差分値の降順でソートする。続いて、推移制御部１３は、ソート順の上位から順に、アプリ・負荷相関テーブル２３のレコードを一つ取得し、処理対象とする（Ｓ４０２）。レコードが取得できた場合、すなわち、未処理のレコードが残っていた場合（Ｓ４０３でＹｅｓ）、推移制御部１３は、取得されたレコードにアプリケーション名が登録されているアプリケーションが、起動対象として相応しいか否かを判定する（Ｓ４０４）。具体的には、ＣＰＵ使用率の現在値に当該レコードの差分値を加算した値が、下界閾値以上であり、かつ、上界閾値未満であるか否かが判定される。すなわち、当該アプリケーションが起動された場合に、ＣＰＵ使用率は、下界閾値及び上界閾値の範囲内に収まるか否かが判定される。
【００６６】
ＣＰＵ使用率の現在値に当該レコードの差分値を加算した値が、下界閾値以上であり、かつ、上界閾値未満である場合（Ｓ４０４でＹｅｓ）、推移制御部１３は、当該レコードのアプリケーション名に係るアプリケーションプログラムを起動させる（Ｓ４０５）。その結果、ＣＰＵ使用率は増加し、下界閾値未満であったＣＰＵ使用率は、下界閾値及び上界閾値の範囲内に復帰する。なお、加算に利用されたレコードが複数である場合、複数のアプリケーションプログラムが起動される。
【００６７】
一方、ＣＰＵ使用率の現在値に当該レコードの差分値を加算した値が、下界閾値未満、又は上界閾値以上である場合（Ｓ４０４でＮｏ）、推移制御部１３は、ソート順で次のレコードを処理対象とし（Ｓ４０２）、ステップＳ４０３以降を繰り返す。
【００６８】
アプリ・負荷相関テーブル２３のレコードが処理対象とされても、ステップＳ４０４の条件を満たすアプリケーションが見つからなかった場合（Ｓ４０３でＮｏ）、推移制御部１３は、例えば、ＣＰＵ使用率を増加させるループ処理を起動させる（Ｓ４０６）。
【００６９】
なお、図１３の処理手順は、常に一つのアプリケーションプログラムが起動対象として選択される例を示すが、複数のアプリケーションプログラムが起動対象として選択されてもよい。
【００７０】
この場合、各アプリケーションプログラムの差分値の合計とＣＰＵ使用率の現在値との合計が下界閾値及び上界閾値の範囲内となるような、二以上のアプリケーションプログラムの組み合わせが起動対象として選択されればよい。
【００７１】
または、予め、二以上のアプリケーションプログラムの組み合わせごとに、当該組み合わせに係る複数のアプリケーションプログラムが同時に起動された場合の差分値が、アプリ・負荷相関テーブル２３に記録されていてもよい。
【００７２】
続いて、バッテリ１０９の持続可能時間の予測処理について説明する。図１４は、第一の実施の形態のバッテリの持続可能時間の予測処理の処理手順の一例を説明するためのフローチャートである。同図の処理手順は、例えば、図６又は図８の処理手順を実行するプロセスとは異なるプロセスによって実行される。すなわち、図１２の処理は、図６及び図８の処理と並列的に実行される。なお、図１２の処理は、図８の処理と同時に開始されてもよいし、図８の処理の開始から一定時間経過後に開始されてもよい。
【００７３】
ステップＳ５０１において、予測部１４は、一定時間待機する。これは、推移制御部１３によって、ＣＰＵ使用率が下界閾値及び上界閾値の範囲に収まるように制御されるのを待機するためである。
【００７４】
続いて、予測部１４は、推移記録テーブル２１（図７）の最後（すなわち、最新）のレコードの傾きの値を取得する（Ｓ５０２）。続いて、予測部１４は、取得された傾きに基づいて、予測に利用する関数を関数テーブル２４より取得する（Ｓ５０３）。
【００７５】
図１５は、第一の実施の形態の関数テーブルの構成例を示す図である。同図において、関数テーブル２４には、ＣＰＵ使用率の傾きごとに、関数が登録されている。したがって、ステップＳ５０３において、予測部１４は、取得された傾きに対応付けられている予測関数を取得する。なお、同図における関数の式は、例示に過ぎない。関数の式は、実験等に基づいて、適宜選択されればよい。但し、各関数には、持続可能時間を示す項が含まれている必要がある。
【００７６】
続いて、予測部１４は、取得された関数に基づいて、バッテリ１０９の持続可能時間の予測値を算出する（Ｓ５０４）。すなわち、予測部１４は、取得された関数が含む各パラメータに、現在の情報処理装置１０の状況に応じた値を当てはめた結果として得られる式を、持続可能時間を示す項に関して解くことにより、持続可能時間の予測値を算出する。
【００７７】
続いて、予測部１４は、算出された持続可能時間の予測値を出力する（Ｓ５０５）。例えば、予測値が表示装置１０６に表示される。予測値は、図形によって表現されてもよいし、持続可能時間を示す数値がそのまま表示されてもよい。
【００７８】
続いて、情報処理装置１０の外気の温度変化に応じた閾値の変更処理について説明する。図１６は、温度変化に応じた閾値の変更処理の処理手順の一例を説明するためのフローチャートである。同図の処理手順は、例えば、図６、図８、又は図１４の処理手順を実行するプロセスとは異なるプロセスによって実行される。すなわち、図１６の処理は、図６、図８、及び図１４の処理と並列的に実行される。なお、図１６の処理は、例えば、図８の処理と同時に開始される。
【００７９】
温度監視部１５は、プロセスとして起動されると、温度センサ１０８より温度（以下、「温度Ａ」という。）を取得する（Ｓ６０１）。続いて、温度監視部１５は、一定時間待機する（Ｓ６０２）。当該一定時間は、温度を監視する周期である。したがって、当該一定時間が短ければ短い程、温度の変化を即時的に検知することができる一方で、処理負荷が高くなる。したがって、当該一定時間は、温度変化の検知の遅延と処理負荷とを考慮して適当な値が設定されればよい。
【００８０】
続いて、一定時間待機後、温度監視部１５は、温度センサ１０８より温度（以下、「温度Ｂ」という。）を取得する（Ｓ６０３）。続いて、温度監視部１５は、大きな温度変化が起こったか否かを判定する（Ｓ６０４）。具体的には、温度Ａと温度Ｂとの差の絶対値が、温度Ａの絶対値にαを乗じた値以上であるか否かが判定される。ここで、αは、１未満の係数である。すなわち、ここでは、温度変化の大きさを、変化前の温度Ａに対する割合によって把握する例が示されている。例えば、変化前の温度Ａの２０％を大きな（又は急激な）温度変化として規定する場合、αの値は、０．２とされればよい。なお、大きな温度変化は、変化前の温度Ａに対する割合ではなく、絶対値によって規定されてもよい。例えば、３度以上の変化を大きな温度変化とする場合、ステップＳ６０４では、温度Ａと温度Ｂとの差の絶対値が、３以上であるか否かが判定されればよい。
【００８１】
大きな温度変化が起こった場合（Ｓ６０４でＹｅｓ）、温度変化監視部は、閾値判定部１２に閾値の算出処理（図１２の処理）を実行させる（Ｓ６０５）。その結果、閾値情報管理テーブル２２における上界閾値、下界閾値、及び差分値が更新される。すなわち、現在の温度に好適な上界閾値、下界閾値、及び差分値に閾値情報管理テーブル２２に設定される。
【００８２】
一方、大きな温度変化が起こっていない場合（Ｓ６０４でＮｏ）、閾値の算出処理は実行されない。
【００８３】
続いて、温度監視部１５は、現在の温度Ｂを温度Ａとして（Ｓ６０６）、ステップＳ６０２以降を繰り返す。
【００８４】
図１６の処理の実行による閾値の変化の例について説明する。図１７は、温度変化に応じた閾値の変化の例を示す図である。同図の説明に関して、温度変化とは、図１６のステップＳ６０４に示される条件を満たす温度変化をいう。
【００８５】
同図において、（Ａ）は、温度変化前のＣＰＵ使用率の推移を示す。（Ａ）においては、上界閾値は３５％、下界閾値は８．７５％に設定されている。
【００８６】
（Ｂ）において、時刻ｔ２以降の曲線は、時刻ｔ２において大きく温度が下がった場合のＣＰＵ使用率の推移を示す。温度が下がることにより、バッテリ１０９の出力が一時的に低下し、それに伴って、ＣＰＵ使用率も低下する。その状態において閾値の算出が行われ、上界閾値は２０％、下界閾値は５％に変更されている。その結果、（Ａ）において設定された閾値の範囲内にＣＰＵ使用率を収めるために、更なるアプリケーションの起動を抑制することができる。すなわち、当初の外気の温度において設定された閾値を維持することによる、不要な負荷の増加（不要なバッテリの消費）を回避することができる。
【００８７】
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、第二の実施の形態において、特に言及しない点については、第一の実施の形態と同様でよい。
【００８８】
第二の実施の形態では、ＣＰＵ使用率ではなく、消費される電力値が、情報処理装置１０の負荷の大きさを示す値の一例として用いられる。したがって、基本的に、第一の実施の形態において、ＣＰＵ使用率が利用されていた箇所を、電力値によって置き換えることにより、第二の実施の形態を実現することができる。
【００８９】
図５は、第二の実施の形態における情報処理装置のハードウェア構成例を示す図である。図５中、図４と同一部分には同一符号を付し、その説明は省略する。
【００９０】
図５において、情報処理装置１０ａは、更に、電流値測定器１１０を有する。電流値測定器１１０は、バッテリ１０９によって供給される電流の電流値を測定する。当該電流値は、例えば、ＣＰＵ１０４のレジスタに記録される。
【００９１】
以下、情報処理装置１０ａが実行する処理手順について説明する。
【００９２】
図１９は、第二の実施の形態における電力消費量の推移の記録処理の処理手順の一例を説明するためのフローチャートである。図１９中、図６と同一ステップには同一ステップ番号を付し、その説明は省略する。図１９において、ステップＳ１１０はステップＳ１１０ａに置換され、ステップＳ１１１が追加されている。
【００９３】
ステップＳ１１０ａにおいて、負荷監視部１１は、バッテリ１０９より供給されている電流値を取得する。上記したように、当該電流値は、例えば、ＣＰＵ１０４のレジスタに記録されている。したがって、この場合、当該電流値は、当該レジスタより取得される。
【００９４】
続いて、負荷監視部１１は、取得された電流値を、バッテリ１０９の電圧（電源電圧）に乗じることにより、消費電力の電力値を算出する（Ｓ１１０）。
【００９５】
ステップＳ１２０以降は、当該電力値によって、ＣＰＵ使用率が代替されることを除いて、図６と同様でよい。したがって、第二の実施の形態における推移記録テーブル２１には、第一の実施の形態の推移記録テーブル２１（図７参照）においてＣＰＵ使用率が記録されていた項目に、電力値が記録される。
【００９６】
続いて、図２０は、第二の実施の形態における電力値の推移の制御処理の処理手順の一例を説明するためのフローチャートである。図２０中、図８と同一ステップには同一ステップ番号を付し、その説明は省略する。図２０において、ステップＳ２０３、Ｓ２０４、Ｓ２０５は、それぞれ、ステップＳ２０３ａ、Ｓ２０４ａ、Ｓ２０５ａに置換されている。
【００９７】
ステップＳ２０３ａにおいて、閾値判定部１２は、電力値に関して上界閾値及び下界閾値を算出する。ステップＳ２０３ａにおいて、閾値情報管理テーブル２２における、上界閾値、下界閾値、及び差分に値が設定される。なお、第二の実施の形態の閾値情報管理テーブル２２の上界閾値、下界閾値、及び差分には、電力値に関する値が設定される。
【００９８】
続いて、推移制御部１３は、電力値の現在値が、閾値情報管理テーブル２２に記録されている下界閾値未満であるか否かを判定する（Ｓ２０４ａ）。電力値の現在値は、推移記録テーブル２１の最後のレコードより取得されればよい。
【００９９】
電力値の現在値が下界閾値以上である場合（Ｓ２０４ａでＮｏ）、推移制御部１３は、当該現在値が、閾値情報管理テーブル２２に記録されている上界閾値を超えるか否かを判定する（Ｓ２０５ａ）。すなわち、ステップＳ２０４ａ及びＳ２０５ａでは、電力値の現在値が、下界閾値及び上界閾値の範囲内に収まっているか否かが判定される。
【０１００】
その後、ステップＳ２０６では、電力値が下界閾値及び上界閾値の範囲内に復帰させるために、アプリケーションが起動される。すなわち、第二の実施の形態におけるアプリ・負荷相関テーブル２３には、第一の実施の形態のアプリ・負荷相関テーブル２３（図１０参照）においてＣＰＵ使用率の差分値が記録されていた項目に、電力値の差分値が記録されている。
【０１０１】
続いて、ステップＳ２０３ａの詳細について説明する。図２１は、第二の実施の形態の閾値設定処理の処理手順の一例を説明するためのフローチャートである。図２１中、図１２と同一ステップには同一ステップ番号を付し、その説明は省略する。図２１において、ステップＳ３０１は、ステップＳ３０１ａに置換されている。
【０１０２】
ステップＳ３０１ａにおいて、閾値判定部１２は、推移記録テーブル２１を参照して、電力値の最大値を特定する。電力値の最大値の特定方法は、図１２のステップＳ３０１における、ＣＰＵ使用率の最大値の特定方法と同様でよい。
【０１０３】
ステップＳ３０２以降は、ＣＰＵ使用率の代わりに電力値が処理対象とされる点を除いて、図１２において説明した通りである。
【０１０４】
上記以外の点に関しては、第一の実施の形態における説明より自明であるため、ここでの説明は省略する
上述したように、ＣＰＵ使用率の代わりに、電力値を用いてバッテリ１０９の持続可能時間が予測されてもよい。
【０１０５】
なお、上記各実施の形態において、負荷監視部１１は、記録部の一例である。閾値判定部１２は、判定部の一例である。アプリ・負荷相関テーブル２３は、記憶部の一例である。推移制御部１３は、制御部の一例である。関数テーブル２４は、関数記憶部の一例である。予測部１４は、算出部の一例である。温度監視部１５は、監視部の一例である。
【０１０６】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１０７】
以上の説明に関し、更に以下の項を開示する。
（付記１）
電池によって駆動される情報処理装置であって、
前記情報処理装置に対する負荷の大きさを示す値を記録する記録部と、
前記記録部に記録された前記値に基づいて、前記負荷に関する下限の閾値を判定する判定部と、
当該情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかのプログラムを起動させる制御部と、
前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する算出部とを有する情報処理装置。
（付記２）
前記判定部は、前記負荷に関する上限の閾値を更に判定し、
前記制御部は、当該情報処理装置に対する前記負荷が前記上限の閾値を超えた場合に、前記記憶部を参照して、起動中の前記プログラムのいずれかを停止させる付記１記載の情報処理装置。
（付記３）
当該情報処理装置の外気の温度を監視する監視部を有し、
前記判定部は、前記温度の変化量が所定の範囲を超えた場合は、前記閾値を再判定する付記１又は２記載の情報処理装置。
（付記４）
前記記録部は、前記負荷の大きさを示す値を周期的に記録する付記１乃至３いずれか一項記載の情報処理装置。
（付記５）
電池によって駆動される情報処理装置が、
前記情報処理装置に対する負荷の大きさを示す値を記録し、
前記記録部に記録された前記値に基づいて、前記負荷に関する下限の閾値を判定し、
前記情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかの前記プログラムを起動させ、
前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する処理を実行するバッテリ残量予測方法。
（付記６）
前記判定する処理は、前記負荷に関する上限の閾値を更に判定し、
前記情報処理装置に対する前記負荷が前記上限の閾値を超えた場合に、前記記憶部を参照して、起動中の前記プログラムのいずれかを停止させる処理を前記情報処理装置が実行する付記５記載のバッテリ残量予測方法。
（付記７）
前記情報処理装置の外気の温度を監視し、
前記温度の変化量が所定の範囲を超えた場合に、前記閾値を再判定する処理を前記情報処理装置が実行する付記５又は６記載のバッテリ残量予測方法。
（付記８）
前記記録する処理は、前記負荷の大きさを示す値を周期的に記録する付記５乃至７いずれか一項記載のバッテリ残量予測方法。
（付記９）
電池によって駆動される情報処理装置に、
前記情報処理装置に対する負荷の大きさを示す値を記録し、
前記記録部に記録された前記値に基づいて、前記負荷に関する下限の閾値を判定し、
前記情報処理装置に対する前記負荷が前記下限の閾値未満となった場合に、プログラムごとに該プログラムの起動による前記負荷の増加量を記憶した記憶部を参照して、いずれかの前記プログラムを起動させ、
前記値の変化の傾きに対応付けて関数記憶部が記憶する関数を用いて前記電池の持続可能時間を算出する処理を実行させるバッテリ残量予測プログラム。
（付記１０）
前記判定する処理は、前記負荷に関する上限の閾値を更に判定し、
前記情報処理装置に対する前記負荷が前記上限の閾値を超えた場合に、前記記憶部を参照して、起動中の前記プログラムのいずれかを停止させる処理を前記情報処理装置に実行させる付記９記載のバッテリ残量予測プログラム。
（付記１１）
前記情報処理装置の外気の温度を監視し、
前記温度の変化量が所定の範囲を超えた場合に、前記閾値を再判定する処理を前記情報処理装置に実行させる付記９又は１０記載のバッテリ残量予測プログラム。
（付記１２）
前記記録する処理は、前記負荷の大きさを示す値を周期的に記録する付記９乃至１１いずれか一項記載のバッテリ残量予測プログラム。
【符号の説明】
【０１０８】
１０、１０ａ  情報処理装置
１１          負荷監視部
１２          閾値判定部
１３          推移制御部
１４          予測部
１５          温度監視部
２１          推移記録テーブル
２２          閾値情報管理テーブル
２３          アプリ・負荷相関テーブル
２４          関数テーブル
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
１０８        温度センサ
１０９        バッテリ
１１０        電流値測定器
Ｂ            バス
【図１】
0005708265.tif 000002
【図２】
0005708265.tif 000003
【図３】
0005708265.tif 000004
【図４】
0005708265.tif 000005
【図５】
0005708265.tif 000006
【図６】
0005708265.tif 000007
【図７】
0005708265.tif 000008
【図８】
0005708265.tif 000009
【図９】
0005708265.tif 000010
【図１０】
0005708265.tif 000011
【図１１】
0005708265.tif 000012
【図１２】
0005708265.tif 000013
【図１３】
0005708265.tif 000014
【図１４】
0005708265.tif 000015
【図１５】
0005708265.tif 000016
【図１６】
0005708265.tif 000017
【図１７】
0005708265.tif 000018
【図１８】
0005708265.tif 000019
【図１９】
0005708265.tif 000020
【図２０】
0005708265.tif 000021
【図２１】
0005708265.tif 000022