(57)【要約】【課題】消費電力を削減すること。【解決手段】スマート端末は、第１のプロセッサと、第２のプロセッサと、特定部と、電力状態制御部とを有する。第１のプロセッサは、描画処理を実行する。第２のプロセッサは、第１のプロセッサに、描画処理に含まれる命令を発行するプロセスを実行する。特定部は、命令を発行したプロセスを特定する。電力状態制御部は、特定部により特定されたプロセスの履歴、及び、プロセスの終了タイミングに基づいて、次の描画処理を開始するまでの第１のプロセッサの消費電力の状態を制御する。【選択図】図１
2015207052.tif 000002
【特許請求の範囲】
【請求項１】
描画処理を実行する第１のプロセッサと、
前記第１のプロセッサに、描画処理に含まれる命令を発行するプロセスを実行する第２のプロセッサと、
前記命令を発行したプロセスを特定する特定部と、
前記特定部により特定されたプロセスの履歴、及び、該プロセスの終了タイミングに基づいて、次の描画処理を開始するまでの前記第１のプロセッサの消費電力の状態を制御する電力状態制御部と、
を有することを特徴とするスマート端末。
【請求項２】
前記電力状態制御部は、前記特定部により特定されたプロセスの履歴が、１フレームにおいて前記第２のプロセッサにより実行される所定のプロセスのパターンと一致し、かつ、前記特定部により特定されたプロセスの終了タイミングから次のフレームの開始時刻までの時間が所定の閾値以上である場合に、前記第１のプロセッサの複数の消費電力の状態のうち、最も消費電力が少ない状態となるように前記第１のプロセッサを制御する
ことを特徴とする請求項１に記載のスマート端末。
【請求項３】
前記電力状態制御部は、前記特定部により特定されたプロセスの履歴が、前記所定のプロセスのパターンと一致しないか、または、前記時間が所定の閾値未満である場合に、前記複数の消費電力の状態のうち、前記最も消費電力が少ない状態以外の状態となるように前記第１のプロセッサを制御する
ことを特徴とする請求項２に記載のスマート端末。
【請求項４】
前記特定部は、フレームごとに、前記特定部により特定されたプロセスの履歴を記録し、
前記電力状態制御部は、前記記録部によりフレームごとに記録されたプロセスの履歴が、所定数のフレームにおいて連続して一致する場合に、該連続して一致するプロセスの履歴と、前記特定部により特定されたプロセスの履歴との比較結果に応じて、前記第１のプロセッサの消費電力の状態を制御する
ことを特徴とする請求項１〜３の何れか１つに記載のスマート端末。
【請求項５】
描画処理を実行する第１のプロセッサと前記第１のプロセッサに描画処理に含まれる命令を発行するプロセスを実行する第２のプロセッサとを有するスマート端末が、
前記命令を発行したプロセスを特定し、
特定されたプロセスの履歴、及び、該プロセスの終了タイミングに基づいて、次の描画処理を開始するまでの前記第１のプロセッサの消費電力の状態を制御する
処理を実行することを特徴とする消費電力の状態の制御方法。
【請求項６】
描画処理を実行する第１のプロセッサと前記第１のプロセッサに描画処理に含まれる命令を発行するプロセスを実行する第２のプロセッサとを有するコンピュータに、
前記命令を発行したプロセスを特定し、
特定されたプロセスの履歴、及び、該プロセスの終了タイミングに基づいて、次の描画処理を開始するまでの前記第１のプロセッサの消費電力の状態を制御する
処理を実行させることを特徴とする消費電力状態制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラムに関する。
【背景技術】
【０００２】
描画処理を実行するＧＰＵ（Graphics  Processing  Unit）と、ＧＰＵに対して描画コマンドを発行するＣＰＵ（Central  Processing  Unit）とを有するスマートデバイスがある。スマートデバイスは、スマート端末とも称される。かかるスマート端末では、消費電力を抑えるために、ＧＰＵにおいて、描画処理が行われていない間に、ＧＰＵへのクロック信号の入力を停止するクロックゲートが行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００８／１２６１９２号
【特許文献２】特開２００８−２７１１１８号公報
【特許文献３】特開２００７−４１１４３号公報
【特許文献４】特開２０１１−６０１９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、上述の従来のスマート端末において、更に消費電力を抑制するために、ＧＰＵに対して、クロックゲートに加えて、電力の供給を停止するパワーゲートを行うことが考えられる。しかしながら、単純に、ＧＰＵが描画処理を行っていない間に、クロックゲートに加えてパワーゲートを行った場合には、電力の供給が停止された状態から動作可能な状態となるまでに時間がかかる。このため、ある描画処理の完了からその次の描画処理の開始までの時間が短い場合には、ＧＰＵが動作可能な状態となるまでに時間がかかるため、描画性能が悪化してしまう。したがって、従来のスマート端末では、消費電力を更に削減することが困難であるという問題がある。
【０００５】
１つの側面では、本発明は、消費電力を削減することを目的とする。
【課題を解決するための手段】
【０００６】
１態様では、スマート端末は、第１のプロセッサと、第２のプロセッサと、特定部と、電力状態制御部とを有する。第１のプロセッサは、描画処理を実行する。第２のプロセッサは、第１のプロセッサに、描画処理に含まれる命令を発行するプロセスを実行する。特定部は、命令を発行したプロセスを特定する。電力状態制御部は、特定部により特定されたプロセスの履歴、及び、プロセスの終了タイミングに基づいて、次の描画処理を開始するまでの第１のプロセッサの消費電力の状態を制御する。
【発明の効果】
【０００７】
消費電力を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１に係るスマート端末の構成の一例を示す図である。
【図２】図２は、表示制御情報のデータ構造の一例を示す図である。
【図３】図３は、プロセス動作情報のデータ構造の一例を示す図である。
【図４】図４は、ＧＰＵ動作履歴情報のデータ構造の一例を示す図である。
【図５】図５は、実施例１に係るＣＰＵが実行するプロセスにより描画コマンドが発行されてから、ＧＰＵにより描画コマンドに基づく描画処理の一部の処理が実行されるまでの処理の一例を説明するための図である。
【図６】図６は、実施例１に係る所定のプロセスのパターンの一例を示す図である。
【図７】図７は、ＧＰＵの電力の状態遷移の一例を説明するための図である。
【図８】図８は、アプリケーションプロセス及び画像合成処理プロセスと、ＧＰＵドライバと、ＧＰＵとのデータのやりとりの一例について説明するための図である。
【図９】図９は、実施例１に係るＧＰＵドライバが実行する処理の手順を示すフローチャートである。
【図１０】図１０は、描画終了判定処理の手順を示すフローチャートである。
【図１１】図１１は、実施例２に係る描画終了判定部を示す図である。
【図１２】図１２は、実施例２に係る描画終了判定部が実行する処理の一例について説明するための図である。
【図１３】図１３は、実施例２に係る描画終了判定処理の手順を示すフローチャートである。
【図１４】図１４は、実施例２に係るＶＳＹＮＣ発生時処理の手順を示すフローチャートである。
【図１５】図１５は、消費電力状態制御プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示するスマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラムの各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１０】
［スマート端末１０の構成］
まず、実施例１に係るスマート端末の構成の一例について説明する。図１は、実施例１に係るスマート端末の構成の一例を示す図である。
【００１１】
図１に示すように、スマート端末１０は、タッチパネル１１と、ディスプレイ１２と、描画用メモリ１３と、記憶部１４と、ＣＰＵ１５と、ＧＰＵ１６とを有する。
【００１２】
タッチパネル１１は、ユーザの操作を受け付け、受け付けた操作を示す情報をＣＰＵ１５に出力する。
【００１３】
ディスプレイ１２は、後述のディスプレイドライバ２３ｂにより描画用メモリ１３に記憶された画像データが示す画像を表示するように制御されることにより、かかる画像を表示する。また、ディスプレイ１２は、後述のディスプレイドライバ２３ｂにより所定のフレームレート（例えば、６０ｆｐｓ（frame  per  second））で、表示する画像を更新するように制御されることにより、表示する画像を所定のフレームレートで更新する。また、ディスプレイ１２は、ＶＳＹＮＣ（垂直同期信号）を所定の時間間隔でＣＰＵ１５に出力する。例えば、ディスプレイ１２は、所定のフレームレートがＮ［ｆｐｓ］である場合には、１／Ｎ［秒］ごとに、ＶＳＹＮＣをＣＰＵ１５に出力する。なお、このＶＳＹＮＣを出力する間隔（１／Ｎ［秒］）は、１フレームの長さに相当する。
【００１４】
描画用メモリ１３には、ＧＰＵ１６により画像データが格納される。
【００１５】
記憶部１４は、各種情報を記憶する。例えば、記憶部１４は、表示制御情報１４ａと、プロセス動作情報１４ｂと、ＧＰＵ動作履歴情報１４ｃとを記憶する。
【００１６】
表示制御情報１４ａには、ＶＳＹＮＣがディスプレイ１２から出力された時刻が後述のディスプレイドライバ２３ｂにより登録される。図２は、表示制御情報のデータ構造の一例を示す図である。例えば、図２に示すように、表示制御情報１４ａには、ＶＳＹＮＣがディスプレイ１２から出力される時刻が登録される。図２の例に示す表示制御情報１４ａの１番目のレコードは、２０１４年２月２５日の１２時０分１５．０１６６秒に、ＶＳＹＮＣがディスプレイ１２から出力されたことを示す。
【００１７】
プロセス動作情報１４ｂには、ＣＰＵ１５が実行中のプロセスに関する情報が、後述のＯＳ（Operating  System）カーネル２３により登録される。図３は、プロセス動作情報のデータ構造の一例を示す図である。例えば、図３に示すように、プロセス動作情報１４ｂは、「名称」及び「プロセスＩＤ（Identification）」の各項目を有する。「名称」の項目には、ＣＰＵ１５が実行中のプロセスの名称が登録される。「プロセスＩＤ」の項目には、同一レコードの「名称」の項目に登録された名称のプロセスを識別するためのＩＤ（プロセスＩＤ）が登録される。図３の例に示すプロセス動作情報１４ｂの１番目のレコードは、名称が「アプリケーションプロセス」であり、プロセスＩＤが「Ａ」であるプロセスをＣＰＵ１５が実行中であることを示す。
【００１８】
ＧＰＵ動作履歴情報１４ｃには、後述の描画終了判定部２４により、直近の１フレームにおいて、描画コマンドをＧＰＵ１６に対して発行したプロセスが、描画コマンドを発行した順番で登録される。図４は、ＧＰＵ動作履歴情報のデータ構造の一例を示す図である。例えば、図４の例に示すように、ＧＰＵ動作履歴情報１４ｃには、直近の１フレームにおいて、１番目に描画コマンドを発行したプロセスのプロセスＩＤ「Ｓ」、及び、２番目に描画コマンドを発行したプロセスのプロセスＩＤ「Ａ」が登録される。すなわち、図４の例に示すＧＰＵ動作履歴情報１４ｃは、直近の１フレームにおいて、プロセスＩＤ「Ｓ」が示すプロセスであって、名称が「画像合成処理プロセス」であるプロセスが、１番目に描画コマンドを発行したことを示す。また、図４の例に示すＧＰＵ動作履歴情報１４ｃは、直近の１フレームにおいて、プロセスＩＤ「Ａ」が示すプロセスであって、名称が「アプリケーションプロセス」であるプロセスが、２番目に描画コマンドを発行したことを示す。以下の説明では、名称が「画像合成処理プロセス」であるプロセスのことを、単に、「画像合成処理プロセス」と表記し、名称が「アプリケーションプロセス」であるプロセスのことを、単に、「アプリケーションプロセス」と表記する場合がある。
【００１９】
図１の説明に戻り、ＣＰＵ１５は、スマート端末１０全体の動作を制御する。ＧＰＵ１６は、ディスプレイ１２に表示させる画像の画像データを描画用メモリ１３に格納する。ＧＰＵ１６は、描画処理を行う第１のプロセッサの一例である。ＣＰＵ１５は、ＧＰＵ１６に、描画処理に含まれる命令を発行するプロセスを実行する第２のプロセッサの一例である。
【００２０】
図５は、実施例１に係るＣＰＵが実行するプロセスにより描画コマンドが発行されてから、ＧＰＵにより描画コマンドに基づく描画処理の一部の処理が実行されるまでの処理の一例を説明するための図である。ここで、描画処理とは、１つ以上の描画コマンドを含む処理（１つ以上の描画コマンドにより実行される処理を含む処理）である。描画コマンドは、描画処理に含まれる命令の一例である。
【００２１】
図５の例に示すアプリケーションプロセス２０及び画像合成処理プロセス２１は、ＣＰＵ１５により実行されるプロセスである。アプリケーションプロセス２０は、スマート端末１０のユーザにより利用されるアプリケーションのプロセスである。かかるアプリケーションの一例としては、ブラウザやメールが挙げられる。アプリケーションプロセス２０は、アプリケーションの処理結果をディスプレイ１２に表示させるための描画コマンドを生成する。かかる描画コマンドは、ＧＰＵ１６に実行させるコマンドである。すなわち、アプリケーションプロセス２０は、描画コマンドをＧＰＵ１６に対して発行する。アプリケーションプロセス２０は、生成された描画コマンドをアプリケーションフレームワーク／ライブラリ部２２に出力する。以下の説明では、「アプリケーションフレームワーク／ライブラリ部２２」を、単に、「ライブラリ部２２」と表記する。なお、図５の例では、アプリケーションプロセス２０の数が３つであり、３つのアプリケーションプロセス２０のそれぞれは、それぞれ異なる３つのアプリケーションのそれぞれのプロセスであるが、各種プロセスの数は、任意である。
【００２２】
画像合成処理プロセス２１は、複数のアプリケーションの処理結果を示す画面を合成して合成された画面を示す画像データを描画用メモリ１３に格納する描画コマンドを生成する。かかる描画コマンドは、ＧＰＵ１６に実行させるコマンドである。すなわち、画像合成処理プロセス２１は、ＧＰＵ１６に対して描画コマンドを発行する。画像合成処理プロセス２１は、生成された描画コマンドをライブラリ部２２に出力する。
【００２３】
ライブラリ部２２は、アプリケーションやサービスプログラムが利用する様々な機能を提供するモジュールであり、ＣＰＵ１５により実行される。例えば、ライブラリ部２２は、アプリケーションプロセス２０及び画像合成処理プロセス２１から出力された描画コマンドを受信すると、受信した描画コマンドをＯＳに対応する描画コマンドに変換し、変換後の描画コマンドをＯＳカーネル２３に出力する。なお、ＯＳは、ＣＰＵ１５により実行される。ＯＳの一例としては、Ａｎｄｒｏｉｄが挙げられる。
【００２４】
ＯＳカーネル２３は、ＯＳの中核となる部分であり、ソフトウェアとハードウェアとのデータのやりとりを管理する。例えば、ＯＳカーネル２３は、ＣＰＵ１５が実行中のプロセスに関する情報（例えば、プロセスの名称及びプロセスＩＤ）を、プロセス動作情報１４ｂに登録する。具体例を挙げて説明する。例えば、ＯＳカーネル２３は、ＣＰＵ１５が実行するプロセスが切り替わった場合には、切り替わる前まで実行していたプロセスに関する情報をプロセス動作情報１４ｂから削除し、切り替わり後のプロセスに関する情報をプロセス動作情報１４ｂに登録する。ＯＳカーネル２３は、ＧＰＵドライバ２３ａと、ディスプレイドライバ２３ｂとを有する。
【００２５】
ＧＰＵドライバ２３ａは、ＧＰＵ１６を制御する。例えば、ＧＰＵドライバ２３ａは、ライブラリ部２２から出力された描画コマンドを受信すると、受信した描画コマンドを、ハードウェアであるＧＰＵ１６に対応する描画コマンドに変換し、変換後の描画コマンドをＧＰＵ１６に出力する。
【００２６】
また、ＧＰＵドライバ２３ａは、描画終了判定部２４と、電力状態制御部２５とを有する。
【００２７】
描画終了判定部２４は、ＧＰＵ１６に対して描画コマンドを発行したプロセスを特定する。描画終了判定部２４は、特定部の一例である。そして、描画終了判定部２４は、特定したプロセスの履歴が、１フレームにおいてＣＰＵ１５により実行される所定のプロセスのパターンと一致するか否かを判定する。描画終了判定部２４は、一致すると判定した場合には、特定したプロセスの終了タイミングから次のフレームの開始時刻までの時間が所定の閾値以上であるか否かを判定する。描画終了判定部２４は、かかる時間が所定の閾値以上であると判定した場合に、ＧＰＵ１６の複数の消費電力の状態のうち、最も消費電力が少ない状態（休止状態）にＧＰＵ１６の消費電力の状態を遷移させる指示を、電力状態制御部２５に行う。ここで、複数の消費電力の状態には、例えば、上述の休止状態に加え、ＧＰＵ１６が動作可能な状態における消費電力の状態である活性状態、及び、休止状態よりも消費電力が大きいが活性状態よりも消費電力が小さい活性待機状態が含まれる。例えば、上述の３つの消費電力の状態のうち、休止状態は、活性状態への復帰までに最も時間がかかる状態である。また、活性待機状態は、休止状態よりも活性状態への復帰に時間がかからない状態である。一方、描画終了判定部２４は、一致しないと判定した場合、または、上述の時間が所定の閾値未満であると判定した場合には、次の処理を行う。すなわち、描画終了判定部２４は、複数の消費電力の状態のうち、休止状態以外の状態、例えば、活性待機状態にＧＰＵ１６の状態が遷移するように、電力状態制御部２５に活性待機状態を通知する。
【００２８】
描画終了判定部２４の一態様について説明する。例えば、描画終了判定部２４は、ＧＰＵ１６により描画コマンドに基づく処理の実行完了を示すメッセージが通知されると、ＧＰＵ１６に対して描画コマンドを発行したプロセスのプロセスＩＤを特定する。ここで、描画終了判定部２４は、プロセス動作情報１４ｂを参照し、プロセス動作情報１４ｂに登録されているプロセスＩＤを、ＧＰＵ１６に対して描画コマンドを発行したプロセスのプロセスＩＤとして特定する。そして、描画終了判定部２４は、特定したプロセスＩＤを、描画コマンドを発行した順番でＧＰＵ動作履歴情報１４ｃに登録する。
【００２９】
そして、描画終了判定部２４は、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、上述の所定のプロセスのパターンとを比較して両パターンが一致するか否かを判定する。所定のプロセスのパターンは、予め、スマート端末１０の開発者などによって設定されている。例えば、所定のプロセスのパターンは、記憶部１４に記憶されている。ここで、所定のプロセスのパターンについて図６を参照して説明する。図６は、実施例１に係る所定のプロセスのパターンの一例を示す図である。図６の例に示す所定のプロセスのパターンは、１フレームにおいて、プロセスＩＤ「Ｓ」が示す画像合成処理プロセス２１が１番目に描画コマンドを発行することを示す。図６の例に示す所定のプロセスのパターンは、１フレームにおいて、プロセスＩＤ「Ａ」が示すアプリケーションプロセス２０が２番目と３番目に描画コマンドを発行することを示す。したがって、所定のプロセスのパターンと、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンとが一致する場合には、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了したこととなる。一方、両パターンが一致しない場合には、１フレームにおいて、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が未完了であることとなる（すなわち、１フレームにおいて、未実行の描画コマンドが存在することとなる）。
【００３０】
例えば、描画終了判定部２４は、図４に示すようなＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、図６に示すような所定のプロセスのパターンとを比較した場合には、両パターンが一致しないと判定する。すなわち、この場合には、これからアプリケーションプロセス２０により３番目の描画コマンドが発行されるため、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が未完了である。
【００３１】
そして、描画終了判定部２４は、両パターンが一致すると判定した場合には、変数「判定結果」に、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了したことを示す文字列「１フレーム描画完了」を代入する。一方、描画終了判定部２４は、両パターンが一致しないと判定した場合には、変数「判定結果」に、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が未完了であることを示す文字列「１フレーム描画未完了」を代入する。
【００３２】
そして、描画終了判定部２４は、変数「判定結果」に、文字列「１フレーム描画完了」を代入した場合には、次のＶＳＹＮＣがディスプレイ１２から出力される時刻をディスプレイドライバ２３ｂに問い合わせる。そして、描画終了判定部２４は、ディスプレイドライバ２３ｂから次のＶＳＹＮＣがディスプレイ１２から出力される時刻を受信すると、現在時刻から受信した時刻までの時間が、所定の閾値以上であるか否かを判定する。
【００３３】
ここで、描画終了判定部２４は、所定の閾値以上であると判定した場合には、ＧＰＵ１６の消費電力の状態を休止状態にする指示を電力状態制御部２５に行う。描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了し、かつ、現在時刻から次のＶＳＹＮＣの発生時刻までの時間が所定の閾値以上となるような長い時間である場合には、休止状態に移行させても、描画性能が悪化しにくい。このため、描画終了判定部２４は、ＧＰＵ１６の消費電力の状態を休止状態にする指示を電力状態制御部２５に行う。
【００３４】
一方、描画終了判定部２４は、上述の両パターンが一致しないと判定した場合、及び、現在時刻から受信した時刻までの時間が所定の閾値未満であると判定した場合には、ＧＰＵ１６の消費電力の状態を活性待機状態にする指示を電力状態制御部２５に行う。描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が未完了である場合や、かかる全ての処理の実行が完了したが次の描画処理までの時間が短い場合に、ＧＰＵ１６の消費電力の状態を休止状態に移行させると、次のようになる。すなわち、ＧＰＵ１６が活性状態に復帰するまでの時間がかかる。このため、描画性能が悪化してしまう。そこで、描画終了判定部２４は、ＧＰＵ１６の消費電力の状態を休止状態ではなく、活性状態に復帰するまでの時間が休止状態よりも短い活性待機状態にする指示を電力状態制御部２５に行う。
【００３５】
電力状態制御部２５は、ＧＰＵ１６の消費電力の状態を休止状態にする指示を描画終了判定部２４から受けた場合には、ＧＰＵ１６に対してクロックゲート及びパワーゲートを行って、ＧＰＵ１６の消費電力の状態を休止状態に遷移させる。また、電力状態制御部２５は、ＧＰＵ１６の消費電力の状態を活性待機状態にする指示を描画終了判定部２４から受けた場合には、ＧＰＵ１６に対してクロックゲートを行って、ＧＰＵ１６の消費電力の状態を活性待機状態に遷移させる。なお、電力状態制御部２５は、ライブラリ部２２から出力された描画コマンドを受信すると、ＧＰＵ１６に対するクロック信号の入力や電力の供給を再開させて、ＧＰＵ１６の消費電力の状態を活性状態に遷移させる。
【００３６】
図７は、ＧＰＵの電力の状態遷移の一例を説明するための図である。図７の例に示すように、２つのＶＳＹＮＣ間が示す１フレームにおいて、電力状態制御部２５は、符号３１ａが示すタイミングで、ライブラリ部２２から出力された描画コマンドを受信すると、ＧＰＵ１６の消費電力の状態を活性状態に遷移させる。
【００３７】
そして、描画終了判定部２４は、符号３０ａが示すタイミングで、処理の実行完了を示すメッセージが通知されると、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が未完了であるため、次の処理を行う。すなわち、描画終了判定部２４は、ＧＰＵ１６の消費電力の状態を活性待機状態にする指示を電力状態制御部２５に行う。これにより、ＧＰＵ１６の消費電力の状態が活性待機状態に遷移される。
【００３８】
そして、電力状態制御部２５は、符号３１ｂが示すタイミングで、ライブラリ部２２から出力された描画コマンドを受信すると、ＧＰＵ１６の消費電力の状態を活性状態に遷移させる。
【００３９】
そして、描画終了判定部２４は、符号３０ｂが示すタイミングで、ＧＰＵ１６により描画コマンドに基づく処理の実行完了を示すメッセージが通知されると、ＧＰＵ１６の消費電力の状態を休止状態にする指示を電力状態制御部２５に行う。これにより、ＧＰＵ１６の消費電力の状態が休止状態に遷移される。このように、休止状態に遷移させる理由は、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了し、かつ、タイミング３０ｂから次のＶＳＹＮＣの発生時刻までの時間が所定の閾値以上となるような長い時間であるからである。
【００４０】
そして、電力状態制御部２５は、次の１フレームにおいて、符号３１ｃが示すタイミングで、ライブラリ部２２から出力された描画コマンドを受信すると、ＧＰＵ１６の消費電力の状態を活性状態に遷移させる。
【００４１】
そして、描画終了判定部２４は、符号３０ｃが示すタイミングで、ＧＰＵ１６により描画コマンドに基づく処理の実行完了を示すメッセージが通知されると、ＧＰＵ１６の消費電力の状態を活性待機状態にする指示を電力状態制御部２５に行う。これにより、ＧＰＵ１６の消費電力の状態が活性待機状態に遷移される。このように、活性待機状態に遷移させる理由は、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了したが、タイミング３０ｃから次のＶＳＹＮＣの発生時刻までの時間が所定の閾値未満となるような短い時間であるからである。
【００４２】
図５の説明に戻り、ディスプレイドライバ２３ｂは、ディスプレイ１２から出力されたＶＳＹＮＣを受信するたびに、描画用メモリ１３に記憶された画像データが示す画像を表示するようにディスプレイ１２を制御する。これにより、ディスプレイ１２は、所定のフレームレートで、表示する画像を更新する。
【００４３】
また、ディスプレイドライバ２３ｂは、ＶＳＹＮＣを受信した時刻を、ＶＳＹＮＣがディスプレイ１２から出力された時刻として、表示制御情報１４ａに登録する。
【００４４】
また、ディスプレイドライバ２３ｂは、描画終了判定部２４から、次のＶＳＹＮＣがディスプレイ１２から出力される時刻についての問い合わせを受けると、次の処理を行う。すなわち、ディスプレイドライバ２３ｂは、表示制御情報１４ａに登録された直近のＶＳＹＮＣがディスプレイ１２から出力された時刻に、１フレーム分の時間を加えた時刻を、次のＶＳＹＮＣがディスプレイ１２から出力される時刻として算出する。そして、ディスプレイドライバ２３ｂは、算出した時刻を、描画終了判定部２４に出力する。
【００４５】
ＧＰＵ１６は、描画コマンドを受信すると、受信した描画コマンドに基づく処理を実行する。また、ＧＰＵ１６は、描画コマンドに基づく処理の実行が完了すると、処理の実行完了を示すメッセージをＧＰＵドライバ２３ａに通知する。
【００４６】
次に、図８を参照して、アプリケーションプロセス２０及び画像合成処理プロセス２１と、ＧＰＵドライバ２３ａと、ＧＰＵ１６とのデータのやりとりについて説明する。図８は、アプリケーションプロセス及び画像合成処理プロセスと、ＧＰＵドライバと、ＧＰＵとのデータのやりとりの一例について説明するための図である。図８は、描画処理を実行する場合の一例を示す。
【００４７】
図８に示すように、まず、アプリケーションプロセス２０は、描画メモリを確保するための要求である描画メモリ確保要求をＧＰＵドライバ２３ａに送信する（ステップＳ１）。ＧＰＵドライバ２３ａは、描画メモリ確保要求を受信すると、記憶部１４の記憶領域の中から描画処理用の記憶領域を確保することで、描画メモリ１３を確保する（ステップＳ２）。
【００４８】
そして、アプリケーションプロセス２０または画像合成処理プロセス２１は、描画コマンドを生成する（ステップＳ３）。そして、描画コマンドを生成したアプリケーションプロセス２０または画像合成処理プロセス２１は、生成した描画コマンドをＧＰＵドライバ２３ａに送信する（ステップＳ４）。
【００４９】
ＧＰＵドライバ２３ａの電力状態制御部２５は、描画コマンドを受信すると、ＧＰＵ１６に対するクロック信号の入力や電力の供給を再開させて、ＧＰＵ１６の消費電力の状態を活性状態に遷移させる（ステップＳ５）。そして、ＧＰＵドライバ２３ａの電力状態制御部２５は、描画コマンドを受信すると、ＧＰＵ１６に対するクロック信号の入力や電力の供給を再開させて、ＧＰＵ１６の消費電力の状態を活性状態に遷移させる（ステップＳ５）。
【００５０】
ＧＰＵドライバ２３ａは、描画コマンドを受信すると、受信した描画コマンドを、ハードウェアであるＧＰＵ１６に対応する描画コマンドに変換し、変換後の描画コマンドをＧＰＵ１６に送信する（ステップＳ６）。そして、ＧＰＵ１６は、描画コマンドに基づく処理を実行する（ステップＳ７）。そして、ＧＰＵ１６は、描画コマンドに基づく処理の実行が完了すると、処理の実行完了を示すメッセージをＧＰＵドライバ２３ａに通知する（ステップＳ８）。
【００５１】
ＧＰＵドライバ２３ａの描画終了判定部２４は、処理の実行完了を示すメッセージを受信すると、ＧＰＵ１６の消費電力の状態を決定する（ステップＳ９）。そして、ＧＰＵドライバ２３ａの電力状態制御部２５は、ＧＰＵ１６の消費電力の状態が、決定した消費電力の状態に遷移するように、ＧＰＵ１６を制御する（ステップＳ１０）。そして、ＧＰＵドライバ２３ａは、処理の実行完了を描画コマンドを発行したアプリケーションプロセス２０または画像合成処理プロセス２１に通知する（ステップＳ１１）。
【００５２】
描画処理に含まれる処理の数に応じて、上述のステップＳ３〜ステップＳ１１の処理を繰り返し行った後に、アプリケーションプロセス２０は、描画メモリを解放するための要求である描画メモリ解放要求をＧＰＵドライバ２３ａに送信する（ステップＳ１２）。ＧＰＵドライバ２３ａは、描画メモリ解放要求を受信すると、描画処理用の記憶領域を解放することで、描画メモリ１３を解放する（ステップＳ１３）。
【００５３】
［処理の流れ］
次に、本実施例に係るスマート端末１０のＧＰＵドライバ２３ａが実行する処理の流れについて説明する。図９は、実施例１に係るＧＰＵドライバが実行する処理の手順を示すフローチャートである。なお、かかる処理は、所定の時間間隔で実行される。例えば、かかる処理は、フレームレートが６０ｆｐｓである場合には、１／１２０［秒］ごとに実行される。
【００５４】
図９に示すように、描画終了判定部２４は、ＧＰＵ１６により描画コマンドに基づく処理の実行完了を示すメッセージが通知されたか否かを判定する（ステップＳ１０１）。描画終了判定部２４は、メッセージが通知されたと判定した場合（ステップＳ１０１；Ｙｅｓ）には、描画終了判定処理を実行する（ステップＳ１０２）。
【００５５】
図１０は、描画終了判定処理の手順を示すフローチャートである。図１０に示すように、描画終了判定部２４は、ＧＰＵ１６に対して描画コマンドを発行したプロセスのプロセスＩＤを特定し、特定したプロセスＩＤを、描画コマンドを発行した順番でＧＰＵ動作履歴情報１４ｃに登録する（ステップＳ２０１）。
【００５６】
そして、描画終了判定部２４は、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、上述の所定のプロセスのパターンとを比較して両パターンが一致するか否かを判定する（ステップＳ２０２）。
【００５７】
そして、描画終了判定部２４は、両パターンが一致すると判定した場合（ステップＳ２０２；Ｙｅｓ）には、変数「判定結果」に、文字列「１フレーム描画完了」を代入する（ステップＳ２０３）。そして、描画終了判定部２４は、処理結果を内部メモリに格納し、リターンする。一方、描画終了判定部２４は、両パターンが一致しないと判定した場合（ステップＳ２０２；Ｎｏ）には、変数「判定結果」に、文字列「１フレーム描画未完了」を代入する（ステップＳ２０４）。そして、描画終了判定部２４は、処理結果を内部メモリに格納し、リターンする。
【００５８】
図９の説明に戻り、描画終了判定部２４は、変数「判定結果」に、文字列「１フレーム描画完了」が代入されているか否かを判定する（ステップＳ１０３）。描画終了判定部２４は、代入されていると判定した場合（ステップＳ１０３；Ｙｅｓ）には、次のＶＳＹＮＣがディスプレイ１２から出力される時刻をディスプレイドライバ２３ｂに問い合わせる。そして、描画終了判定部２４は、ディスプレイドライバ２３ｂから次のＶＳＹＮＣがディスプレイ１２から出力される時刻を受信すると、現在時刻から受信した時刻までの時間が、所定の閾値以上であるか否かを判定する（ステップＳ１０４）。
【００５９】
描画終了判定部２４は、所定の閾値以上であると判定した場合（ステップＳ１０４；Ｙｅｓ）には、ＧＰＵ１６の消費電力の状態を休止状態にする指示を電力状態制御部２５に行い（ステップＳ１０５）、処理を終了する。
【００６０】
一方、描画終了判定部２４は、両パターンが一致しないと判定した場合（ステップＳ１０４；Ｎｏ）、及び、所定の閾値未満であると判定した場合（ステップＳ１０３；Ｎｏ）には、次の処理を行う。すなわち、描画終了判定部２４は、ＧＰＵ１６の消費電力の状態を活性待機状態にする指示を電力状態制御部２５に行い（ステップＳ１０６）、処理を終了する。
【００６１】
また、描画終了判定部２４は、メッセージが通知されていないと判定した場合（ステップＳ１０１；Ｎｏ）には、ディスプレイ１２から出力されたＶＳＹＮＣを受信したか否かを判定する（ステップＳ１０７）。描画終了判定部２４は、ＶＳＹＮＣを受信したと判定した場合（ステップＳ１０７；Ｙｅｓ）には、ＶＳＹＮＣ発生時処理を実行し（ステップＳ１０８）、処理を終了する。例えば、描画終了判定部２４は、ＶＳＹＮＣ発生時処理において、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤを削除する。描画終了判定部２４は、ＶＳＹＮＣを受信していないと判定した場合（ステップＳ１０７；Ｎｏ）にも、処理を終了する。
【００６２】
上述してきたように、本実施例に係るスマート端末１０は、描画処理を実行するＧＰＵ１６と、ＧＰＵ１６に、描画処理に含まれる描画コマンドを発行するプロセスを実行するＣＰＵ１５とを有する。そして、スマート端末１０は、描画コマンドを発行したプロセスを特定する。そして、スマート端末１０は、特定されたプロセスの履歴、及び、プロセスの終了タイミングに基づいて、次の描画処理を開始するまでのＧＰＵ１６の消費電力の状態を制御する。よって、スマート端末１０によれば、次の描画処理を開始するまでの時間が長い場合などには、消費電力が最も小さくなる休止状態にＧＰＵ１６の状態を遷移させることができる。したがって、本実施例に係るスマート端末１０によれば、消費電力を削減することができる。
【００６３】
なお、実施例１では、消費電力の状態が、活性状態、活性待機状態及び休止状態の３つの状態である場合について説明したが、消費電力の状態は、これに限られず、４つ以上とすることができる。
【００６４】
また、実施例１では、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、１つの所定のプロセスのパターンとを比較する場合について説明した。しかしながら、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、複数の所定のプロセスのパターンのそれぞれとを比較することもできる。また、所定のプロセスのパターンに、描画コマンドの種別を示す情報を含ませた上で、ＧＰＵ動作履歴情報１４ｃに、更に、描画コマンドの種別を示す情報を登録するようにし、描画コマンドの種別についても一致するか否かを判定するようにしてもよい。
【００６５】
また、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、１つの所定のプロセスのパターンとが一致したと判定した後に、同一のフレームにおいて、ＧＰＵ動作履歴情報１４ｃに更にプロセスＩＤが登録される場合がある。この場合には、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了したと誤って判定されるため、描画終了判定部２４が、ＧＰＵ１６の消費電力の状態を活性待機状態にする指示を電力状態制御部２５に行うようにしてもよい。
【実施例２】
【００６６】
次に、実施例２に係るスマート端末について説明する。実施例２に係るスマート端末は、上述の所定のプロセスのパターンを自動的に設定する。なお、実施例１と同様の構成については、同一の符号を付し、その説明を省略する場合がある。図１１は、実施例２に係る描画終了判定部を示す図である。実施例２に係るスマート端末は、実施例１に係る描画終了判定部２４に代えて、図１１に示す描画終了判定部２４ａを有する。描画終了判定部２４ａは、実施例１に係る描画終了判定部２４が有する機能と同様の機能に加えて、上述の所定のプロセスのパターンを自動的に設定する機能を有する。
【００６７】
描画終了判定部２４ａの一態様について説明する。例えば、描画終了判定部２４ａは、フレームごとに、特定したプロセスの履歴を、記憶部１４に記憶された履歴リストに記録する。図１２は、実施例２に係る描画終了判定部が実行する処理の一例について説明するための図である。図１２の例は、描画終了判定部２４ａが、Ｆ番目のフレームからＦ＋４番目のフレームのそれぞれについて、履歴リストに記録したプロセスの履歴の一例を示す。図１２の例では、Ｆ番目のフレームとＦ＋２番目のフレームとでプロセスの履歴のパターンが同一であり、Ｆ＋１番目のフレームとＦ＋３番目のフレームとＦ＋４番目のフレームとでプロセスの履歴のパターンが同一である。
【００６８】
そして、描画終了判定部２４ａは、履歴リストを参照し、直近のフレームから過去Ｎ個分のフレームまでの連続した全フレームについて、プロセスの履歴のパターンが一致するか否かを判定する。
【００６９】
そして、描画終了判定部２４ａは、一致すると判定した場合には、一致すると判定されたプロセスの履歴のパターンを、上述の所定のプロセスのパターンとして設定する。例えば、描画終了判定部２４ａは、一致すると判定されたプロセスの履歴のパターンを、上述の所定のプロセスのパターンとして記憶部１４に格納する。このようにして、実施例２では、実際にＣＰＵ１５が１フレームにおいて実行するプロセスのパターンを、所定のプロセスのパターンとして設定する。したがって、実施例２では、精度良く、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了したか否かを判定することができる。
【００７０】
次に、実施例２において、ステップＳ１０２で実行される描画終了判定処理について説明する。図１３は、実施例２に係る描画終了判定処理の手順を示すフローチャートである。図１３に示すように、描画終了判定部２４ａは、ＧＰＵ１６に対して描画コマンドを発行したプロセスのプロセスＩＤを特定し、特定したプロセスＩＤを、描画コマンドを発行した順番でＧＰＵ動作履歴情報１４ｃに登録する（ステップＳ３０１）。
【００７１】
そして、描画終了判定部２４ａは、所定のプロセスのパターンが既に設定済みであるか否かを判定する（ステップＳ３０２）。描画終了判定部２４ａは、設定済みであると判定した場合（ステップＳ３０２；Ｙｅｓ）には、次の処理を行う。すなわち、描画終了判定部２４ａは、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤが示すプロセスのパターンと、設定済みである所定のプロセスのパターンとを比較して両パターンが一致するか否かを判定する（ステップＳ３０３）。
【００７２】
そして、描画終了判定部２４は、両パターンが一致すると判定した場合（ステップＳ３０３；Ｙｅｓ）には、変数「判定結果」に、文字列「１フレーム描画完了」を代入する（ステップＳ３０４）。そして、描画終了判定部２４は、処理結果を内部メモリに格納し、リターンする。描画終了判定部２４は、設定済みでないと判定した場合（ステップＳ３０２；Ｎｏ）、及び、両パターンが一致しないと判定した場合（ステップＳ３０３；Ｎｏ）には、変数「判定結果」に、文字列「１フレーム描画未完了」を代入する（ステップＳ３０５）。そして、描画終了判定部２４は、処理結果を内部メモリに格納し、リターンする。
【００７３】
次に、実施例２において、ステップＳ１０８で実行されるＶＳＹＮＣ発生時処理について説明する。図１４は、実施例２に係るＶＳＹＮＣ発生時処理の手順を示すフローチャートである。図１４に示すように、描画終了判定部２４ａは、上述の所定のプロセスのパターンが未設定であるか否かを判定する（ステップＳ４０１）。描画終了判定部２４ａは、上述の所定のプロセスのパターンが設定されていると判定した場合（ステップＳ４０１；Ｎｏ）には、後述のステップＳ４０５に移行する。一方、描画終了判定部２４ａは、未設定であると判定した場合（ステップＳ４０１；Ｙｅｓ）には、ＧＰＵ動作履歴情報１４ｃに登録された直近の１フレームにおけるプロセスＩＤが示すプロセスのパターンを履歴リストに移動させる（ステップＳ４０２）。
【００７４】
そして、描画終了判定部２４ａは、履歴リストを参照し、直近のフレームから過去Ｎ個分のフレームまでの連続した全フレームについて、プロセスの履歴のパターンが一致するか否かを判定する（ステップＳ４０３）。描画終了判定部２４ａは、一致しないと判定した場合（ステップＳ４０３；Ｎｏ）には、後述のステップＳ４０５に移行する。一方、描画終了判定部２４ａは、一致すると判定した場合（ステップＳ４０３；Ｙｅｓ）には、一致すると判定されたプロセスの履歴のパターンを、上述の所定のプロセスのパターンとして設定する（ステップＳ４０４）。
【００７５】
そして、描画終了判定部２４ａは、ＧＰＵ動作履歴情報１４ｃに登録されたプロセスＩＤを削除して、ＧＰＵ動作履歴情報１４ｃの登録内容を初期化し（ステップＳ４０５）、処理結果を内部メモリに格納し、リターンする。
【００７６】
上述したように、実施例２に係るスマート端末は、実際にＣＰＵ１５が１フレームにおいて実行するプロセスのパターンを、所定のプロセスのパターンとして設定する。したがって、実施例２に係るスマート端末によれば、精度良く、描画処理に含まれる処理のうち１フレームにおいて実行される全ての処理の実行が完了したか否かを判定することができる。
【００７７】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００７８】
例えば、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００７９】
また、各種の負荷や使用状況などに応じて、実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【００８０】
また、各種の負荷や使用状況などに応じて、実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【００８１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８２】
［消費電力状態制御プログラム］
また、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１５を用いて、上記の各実施例と同様の機能を有する消費電力状態制御プログラムを実行するコンピュータの一例について説明する。
【００８３】
図１５は、消費電力状態制御プログラムを実行するコンピュータの一例について説明するための図である。図１５に示すように、コンピュータ１００は、タッチパネル１１０と、ディスプレイ１２０とを有する。さらに、コンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０と、ＧＰＵ１９０とを有する。これら１１０〜１９０の各部はバス１４０を介して接続される。
【００８４】
ＨＤＤ１７０には、図１５に示すように、上記のＧＰＵドライバ２３ａと同様の機能を発揮する消費電力状態制御プログラム１７０ａが予め記憶される。
【００８５】
そして、ＣＰＵ１５０が、消費電力状態制御プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、消費電力状態制御プログラム１７０ａは、消費電力状態制御プロセスとして機能する。この消費電力状態制御プロセスは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。
【００８６】
なお、上記の消費電力状態制御プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【００８７】
１０    スマート端末
１５    ＣＰＵ
１６    ＧＰＵ
２４    描画終了判定部
２５    電力状態制御部
【図１】
2015207052.tif 000003
【図２】
2015207052.tif 000004
【図３】
2015207052.tif 000005
【図４】
2015207052.tif 000006
【図５】
2015207052.tif 000007
【図６】
2015207052.tif 000008
【図７】
2015207052.tif 000009
【図８】
2015207052.tif 000010
【図９】
2015207052.tif 000011
【図１０】
2015207052.tif 000012
【図１１】
2015207052.tif 000013
【図１２】
2015207052.tif 000014
【図１３】
2015207052.tif 000015
【図１４】
2015207052.tif 000016
【図１５】
2015207052.tif 000017