(57)【要約】【課題】ＧＰＵに対する処理負荷が大きい場合において省電力化を図る。【解決手段】ディスプレイドライバ２０１は、複数の動作周波数の何れかにより動作するＧＰＵ１１６を制御する。ディスプレイドライバ２０１は、プロセッサからのＧＰＵ１１６に対する処理要求に応じて、複数の動作周波数毎のＧＰＵ１１６が処理要求による処理を実行した場合の単位時間当たりの消費電力と総処理時間を取得する消費電力／総処理時間取得５０１と、単位時間当たりの消費電力と総処理時間をもとに、動作周波数毎の総消費電力を算出する総消費電力算出５０２と、動作周波数毎の総消費電力に基づいて、ＧＰＵ１１６の動作周波数を制御するＧＰＵ動作周波数制御部５０３とを有する。【選択図】図５
2010277350.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
複数の動作周波数の何れかにより動作するＧＰＵと、
前記プロセッサからの前記ＧＰＵに対する処理要求に応じて、前記複数の動作周波数のそれぞれにより前記ＧＰＵが前記処理要求による処理を実行したと想定した場合の前記ＧＰＵによる単位時間当たりの消費電力と総処理時間を取得する取得手段と、
前記取得手段により取得された単位時間当たりの消費電力と総処理時間をもとに、前記複数の動作周波数のそれぞれにより前記ＧＰＵが前記処理要求による処理を実行したと想定した場合の総消費電力を算出する算出手段と、
前記算出手段により算出された前記動作周波数毎の総消費電力に基づいて、前記ＧＰＵの動作周波数を制御する制御手段と
を具備したことを特徴とする電子機器。
【請求項２】
前記ＧＰＵの動作時における消費電力を測定する消費電力測定手段をさらに具備し、
前記取得手段は、
前記処理要求の対象とするデータの一部に対して、前記ＧＰＵの前記複数の動作周波数のそれぞれにより処理を実行させ、
前記データの一部に対する処理の実行中に前記消費電力測定手段によって測定された消費電力をもとに前記単位時間当たりの消費電力を算出し、
前記データの一部に対する処理により算出される前記複数の動作周波数のそれぞれにおける前記ＧＰＵによる単位時間当たりの処理量と、前記処理要求の対象とする総データ量とに基づいて前記総処理時間を算出することを特徴とする請求項１記載の電子機器。
【請求項３】
前記取得手段により実行された前記データの一部に対する処理により求められた前記単位時間当たりの消費電力と、前記単位時間当たりの処理量とを、前記処理要求の処理条件と対応付けて記録する記録手段をさらに具備し、
前記取得手段は、前記処理要求の処理条件に対応する前記単位時間当たりの消費電力と前記単位時間当たりの処理量とを前記記録手段から取得し、
前記算出手段は、前記記録手段から取得された前記単位時間当たりの消費電力と前記単位時間当たりの処理量をもとに、前記総消費電力を算出することを特徴とする請求項２記載の電子機器。
【請求項４】
前記制御手段は、前記総消費電力が最も少なくなる前記動作周波数を前記ＧＰＵに対して設定することを特徴とする請求項１記載の電子機器。
【請求項５】
前記制御手段は、前記処理要求の対象とするデータに対する、前記複数の動作周波数のそれぞれにより実行される前記ＧＰＵによる動作能力を判別し、必要とされる動作能力を満たす前記動作周波数のうちで、前記総消費電力が最も少なくなる前記動作周波数を前記ＧＰＵに対して設定することを特徴とする請求項４記載の電子機器。
【請求項６】
前記ＧＰＵに実行させる処理についての許容時間をユーザに設定させるための設定画面を表示する設定画面表示手段とをさらに具備し、
前記制御手段は、前記設定画面を通じて入力された許容時間以下で前記処理要求に対する処理を実行可能な前記動作周波数のうちで、前記総消費電力が最も少なくなる前記動作周波数を前記ＧＰＵに対して設定することを特徴とする請求項４記載の電子機器。
【請求項７】
前記取得手段は、前記ＧＰＵによる処理に使用されるメモリモジュールを含む単位時間当たりの消費電力と総処理時間を取得し、
前記制御手段は、前記ＧＰＵと共に前記メモリモジュールの動作周波数を制御することを特徴とする請求項１記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＰＵ（Graphic Processing Unit）を備えた電子機器に関する。
【背景技術】
【０００２】
近年、ＧＰＵ（Graphic Processing Unit）を備えたパーソナルコンピュータ等の電子機器においては、ＧＰＵを用いた汎用計算処理の普及により、ディスプレイに画像を表示させるための表示処理以外にＧＰＵを活用することが多くなっている。例えば、動画像データに対するエンコードやデコードをＧＰＵによって実行させることができる。一般に、ＣＰＵ（Central Processing Unit）に限らず、ＧＰＵにおいても高速にデータ処理を実行することが求められている。一方、高速にデータ処理を実行するよう、ＧＰＵに対する処理負荷を増大させると、ＧＰＵやＶＲＡＭによる消費電力が増大してしまう。
【０００３】
従来では、表示品質に影響を与えることなく、表示コントローラ（ＧＰＵ）の消費電力を低減することが可能な情報処理装置が考えられている（特許文献１参照）。特許文献１に記載された情報処理装置では、ディスプレイドライバは、ＣＰＵからＧＰＵに送信される描画要求の内容に基づいて、ＧＰＵのコアユニットによって実現可能な最大フレームレート、つまり単位時間当たりにコアユニットが描画可能な最大フレーム数を算出する。もし最大フレーム数がリフレッシュレートに対応するフレーム数よりも大きい場合、ディスプレイドライバは、ＧＰＵの動作速度を低下させる動作速度制御処理を実行する。このパワーマネージメント機能により、表示品質の低下を招くことなく、ＧＰＵの消費電力の低減を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１６４０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように従来では、ＧＰＵによる描画可能な最大フレーム数がリフレッシュレートに対応するフレーム数よりも大きい場合、すなわちＧＰＵに対する負荷を下げることができる場合にＧＰＵの動作速度を低下させることによりＧＰＵの消費電力の低下を図っていた。
【０００６】
つまり従来では、ＧＰＵに対する負荷が小さい場合には消費電力を低下させることができるが、ＧＰＵによって汎用計算処理を実行させる場合のように、ＧＰＵに対する負荷が大きな場合には、ＧＰＵによる消費電力を下げて省電力化を図ることができなかった。
【０００７】
本発明は上述の事情を考慮してなされたものであり、ＧＰＵに対する処理負荷が大きい場合において省電力化を図ることが可能な電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明は、プロセッサと、複数の動作周波数の何れかにより動作するＧＰＵと、前記プロセッサからの前記ＧＰＵに対する処理要求に応じて、前記複数の動作周波数のそれぞれにより前記ＧＰＵが前記処理要求による処理を実行したと想定した場合の前記ＧＰＵによる単位時間当たりの消費電力と総処理時間を取得する取得手段と、前記取得手段により取得された単位時間当たりの消費電力と総処理時間をもとに、前記複数の動作周波数のそれぞれにより前記ＧＰＵが前記処理要求による処理を実行したと想定した場合の総消費電力を算出する算出手段と、前記算出手段により算出された前記動作周波数毎の総消費電力に基づいて、前記ＧＰＵの動作周波数を制御する制御手段とを具備したことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ＧＰＵに対する処理負荷が大きい場合において省電力化を図ることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る電子機器の構成を示す外観図。
【図２】本実施形態におけるパーソナルコンピュータのシステム構成を示すブロック図。
【図３】本実施形態におけるＧＰＵの構成例を示すブロック図。
【図４】本実施形態におけるＧＰＵにより汎用計算処理が実行されることにより記録される消費電力データの一例を示す図。
【図５】本実施形態におけるＧＰＵに関係するソフトウェアの関係を示す図。
【図６】本実施形態におけるＧＰＵによって汎用計算処理を実行する場合の動作を示すフローチャート。
【図７】本実施形態における動作周波数Ｆ１，Ｆ２，Ｆ３に対して算出される総消費電力の一例を示す図。
【図８】本実施形態における許容時間設定処理を示すフローチャート。
【図９】本実施形態における許容時間設定画面の表示例を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態を説明する。  
図１は、本発明の一実施形態に係る電子機器の構成を示す外観図である。この電子機器は、例えば、バッテリ駆動可能なノートブック型の携帯型パーソナルコンピュータ１０として実現されている。本実施形態におけるパーソナルコンピュータ１０は、ディスプレイに画像を表示させるための表示処理を実行するグラフィクスプロセッシングユニット（ＧＰＵ）を有しており、このＧＰＵに対して表示処理以外の汎用計算処理を実行させることができる。本実施形態では、ＧＰＵに対して負荷の大きい汎用計算処理を実行させる場合に、ＧＰＵの動作速度（動作周波数）を低下させる動作速度制御処理を実行することによってＧＰＵの消費電力を低減させる。
【００１２】
図１は、パーソナルコンピュータ１０のディスプレイユニットを開いた状態における斜視図である。パーソナルコンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２には、ＬＣＤ（Liquid Crystal Display）１７から構成される表示装置が組み込まれており、そのＬＣＤ１７の表示画面はディスプレイユニット１２のほぼ中央に位置されている。
【００１３】
ディスプレイユニット１２は、コンピュータ本体１１に対して開放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ本体１１はバッテリが取り外し自在に装着可能な薄い箱形の筐体を有している。
【００１４】
コンピュータ本体１１の上面には、キーボード１３、パワーオン／オフするためのパワーボタンスイッチ１４、およびタッチパッド１５などが配置されている。
【００１５】
次に、図２を参照して、本実施形態におけるパーソナルコンピュータ１０のシステム構成について説明する。
【００１６】
パーソナルコンピュータ１０は、図２に示されているように、ＣＰＵ１１１、ノースブリッジ１１４、主メモリ１１５、グラフィクスプロセッシングユニット（ＧＰＵ）１１６、サウスブリッジ１１７、ＢＩＯＳ−ＲＯＭ１２０、ハードディスクドライブ（ＨＤＤ）１２１、光ディスクドライブ（ＯＤＤ）１２２、各種ＰＣＩデバイス１２３，１２４、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１４０、電源回路１４１等を備えている。
【００１７】
ＣＰＵ１１１は、パーソナルコンピュータ１０の動作を制御するために設けられたプロセッサであり、ＨＤＤ１２１から主メモリ１１５にロードされる、オペレーティングシステム（ＯＳ）２００および各種アプリケーションプログラム２０２等を実行する。また、ＣＰＵ１１１は、ＧＰＵ１１６を制御するためのソフトウェアであるディスプレイドライバ２０１を実行する。
【００１８】
オペレーティングシステム（ＯＳ）２００またはアプリケーションプログラム２０１からの、２次元または３次元グラフィクスの描画要求は、ディスプレイドライバ２０１を介してＧＰＵ１１６に送られる。さらに、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２０に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。ＯＳ２００は、システムＢＩＯＳを通じて、電源回路１４１（電源マイコン１４４）によって測定される各コンポーネントにおける消費電力値を取得することができる。
【００１９】
ノースブリッジ１１４はＣＰＵ１１１のローカルバスとサウスブリッジ１１７との間を接続するブリッジデバイスである。ノースブリッジ１１４には、主メモリ１１５をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１４は、PCI Expressバスなどを介してＧＰＵ１１６との通信を実行する機能も有している。
【００２０】
ＧＰＵ１１６は、パーソナルコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７と、ＣＲＴのような外部ディスプレイ３０２とを制御する表示コントローラである。外部ディスプレイ３０２は、コンピュータ本体１１に設けられた外部ビデオ出力端子３０１に必要に応じて接続される。
【００２１】
ＧＰＵ１１６は、２次元グラフィクスおよび３次元グラフィクスを表示するための描画機能を有している。ＧＰＵ１１６は、ノースブリッジ１１４を介してＣＰＵ１１１から送信される描画要求に基づいてビデオメモリ（ＶＲＡＭ）１１６Ａにフレーム群を描画するための表示処理（グラフィクス演算処理）を実行する。具体的には、あるフレームに対応する描画要求を受信すると、ＧＰＵ１１６は、その受信した描画要求で指定される各種グラフィクス演算処理を実行して各種オブジェクトを含むフレームを生成し、その生成したフレームをビデオメモリ（ＶＲＡＭ）１１６Ａに格納する。
【００２２】
また、ＧＰＵ１１６は、ＣＰＵ１１１（アプリケーションプログラム２０２）からの各種汎用計算処理の処理要求に対して、要求された計算処理を実行する。ＧＰＵ１１６により汎用計算処理を実行する場合、ＨＤＤ１２１に格納された処理対象とするデータが、サウスブリッジ１１７とノースブリッジ１１４を経由して、一旦、主メモリ１１５に格納される。その後、ＧＰＵ１１６は、主メモリ１１５に格納された処理対象とするデータを取り出す命令を出力して、処理対象とするデータを主メモリ１１５からＶＲＡＭ１１６Ａに転送する。ＧＰＵ１１６は、ＶＲＡＭ１１６Ａからデータを読み込み、ＣＰＵ１１１からの処理要求に応じた演算を実行し、演算結果をＶＲＡＭ１１６Ａに格納する。ＶＲＡＭ１１６Ａに格納された演算結果は、主メモリ１１５に転送される。ＧＰＵ１１６において実行される汎用計算処理には、例えば動画像ファイルに対するデコード／エンコードなどがある。
【００２３】
ＧＰＵ１１６とＶＲＡＭ１１６Ａは、複数の動作周波数の何れかにより動作することができる。本実施形態では、例えば３段階の動作周波数Ｆ１，Ｆ２，Ｆ３の何れかに切り替えが可能であるものとする。ＧＰＵ１１６とＶＲＡＭ１１６Ａの動作周波数の制御は、ディスプレイドライバ２０１（ＧＰＵ動作周波数制御部５０３）によって行われる。
【００２４】
なお、ＧＰＵ１１６に対する汎用計算処理の処理要求があった場合に、処理要求の対象とするデータの一部に対して、複数の動作周波数Ｆ１，Ｆ２，Ｆ３のそれぞれによる処理が実行され、処理の実行中に電源マイコン１４４によって測定された消費電力をもとにした単位時間当たりの消費電力と、単位時間当たりの処理量が算出される。この単位時間当たりの消費電力と、単位時間当たりの処理量は、処理要求の処理条件（例えば、処理対象とする動画像ファイルの解像度など）と対応付けて、消費電力データ１２１ａとしてＨＤＤ１２１に記録される（図４参照）。消費電力データ１２１ａは、同じ動作条件による処理要求があった場合に参照され、処理要求の動作条件に対応する単位時間当たりの消費電力と単位時間当たりの処理量をもとに、処理対象とする総データに対する処理を実行したと想定した場合の総消費電力を算出するために用いられる。
【００２５】
サウスブリッジ１１７はＰＣＩバス１に接続されており、ＰＣＩバス１を介してＰＣＩデバイス１２３，１２４との通信を実行する。また、サウスブリッジ１１７は、ＨＤＤ１２１および光ディスクドライブ（ＯＤＤ）１２２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラやSerial ATAコントローラを内蔵している。
【００２６】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１４０は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１５を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１４０は、ユーザによるパワーボタンスイッチ１４の操作に応じてパーソナルコンピュータ１０をパワーオン／パワーオフする機能を有している。パーソナルコンピュータ１０のパワーオン／パワーオフの制御は、ＥＣ／ＫＢＣ１４０と電源回路１４１との共同動作によって実行される。電源回路１４１は、コンピュータ本体１１に装着されたバッテリ１４２からの電力、またはコンピュータ本体１１に外部電源として接続されるＡＣアダプタ１４３からの電力を用いて、各コンポーネントへの動作電源を生成する。
【００２７】
電源回路１４１には、電源マイコン１４４が設けられており、各コンポーネントにおける消費電力を測定することができる。本実施形態では、ＧＰＵ１１６とＶＲＡＭ１１６Ａとを含む表示回路について測定された消費電力値は、ＧＰＵ１１６（ＶＲＡＭ１１６Ａ）の動作周波数を制御するために利用される。
【００２８】
図３には、本実施形態におけるＧＰＵ１１６の構成例が示されている。  
ＧＰＵ１１６は、図３に示されているように、コアユニット４０１、ＬＶＤＳ（Low Voltage Differential Signaling）インタフェース部４０２、Ｄ／Ａコンバータ（ＤＡＣ）４０３、ホストインタフェース（Ｉ／Ｆ）部４０４、制御レジスタ４０５、および内部クロック発生器４０６などを備えている。
【００２９】
コアユニット４０１は、表示処理（グラフィクス演算処理）などの表示に関係する処理の他、ＣＰＵ１１１から要求される汎用計算処理を実行するユニットである。コアユニット４０１は、２Ｄ演算処理部、３Ｄ演算処理部、ＶＲＡＭインタフェース部などを備えている。
【００３０】
ＬＶＤＳインタフェース部４０２は、コアユニット４０１によってＶＲＡＭ１１６Ａから読み出される表示データをＬＶＤＳ形式の表示信号に変換し、そのＬＶＤＳ形式の表示信号をＬＣＤ１７に供給する。Ｄ／Ａコンバータ（ＤＡＣ）４０３は、表示データをアナログ形式の表示信号に変換し、そのアナログ形式の表示信号を外部ディスプレイ３０２に供給する。
【００３１】
ホストインタフェース部（Ｉ／Ｆ）４０４は、ＣＰＵ１１１からの各種制御パラメータを受信する。各種制御パラメータには、描画要求、テクスチャのようなオブジェクトデータ、およびパワーマネージメントに関する制御パラメータを含む。パワーマネージメントに関する制御パラメータには、クロックパラメータがある。クロックパラメータは、ＧＰＵ１１６内のコアユニット４０１に供給される内部クロック信号ＣＬＫ１，ＣＬＫ２の周波数を指定するためのパラメータである。本実施形態では、例えば３段階の動作周波数Ｆ１，Ｆ２，Ｆ３の何れかが指定されるものとする。内部クロック信号ＣＬＫ１は、コアユニット１１４の駆動用のコアクロック信号であり、内部クロック信号ＣＬＫ２は、ＶＲＡＭ１１６Ａの駆動用のメモリクロック信号である。コアクロックパラメータは制御レジスタ４０５に設定される。
【００３２】
内部クロック発生器４０６は、クロックパラメータで指定された周波数に応じた内部クロック信号ＣＬＫ１，ＣＬＫ２を、外部クロック信号（ＣＬＫ）を逓倍または分周することによって発生する。内部クロック発生器４０６は、例えばＰＬＬ（Phase Locked Loop）回路から構成されている。
【００３３】
図４は、ＧＰＵ１１６により汎用計算処理が実行されることにより記録される消費電力データ１２１ａの一例を示す図である。  
消費電力データ１２１ａは、動作周波数Ｆ１，Ｆ２，Ｆ３のそれぞれによる処理が実行された場合について、処理の実行中に電源マイコン１４４によって測定された消費電力をもとにした単位時間当たりの消費電力と、単位時間当たりの処理量とを、処理要求の処理条件と対応付けて示すデータである。
【００３４】
例えば、図４に示す消費電力データ１２１ａでは、動画ファイルのエンコードについては、例えば処理条件として処理対象とする動画像ファイルの解像度が設定され、各解像度における動画像ファイルについてエンコードを実行した場合の単位時間当たりの消費電力と単位時間当たりの処理量を示すデータが設定される。単位時間当たりの消費電力と単位時間当たりの処理量を示すデータは、ＧＰＵ１１６に対する動作周波数Ｆ１，Ｆ２，Ｆ３のそれぞれによって処理を実行することにより取得される。
【００３５】
図５は、本実施形態におけるＧＰＵ１１６に関係するソフトウェアの関係を示す図である。  
ＧＰＵ１１６において表示処理を実行させる場合には、アプリケーションプログラム２０２からの描画要求がＯＳ２００を介してディスプレイドライバ２０１に送られる。ディスプレイドライバ２０１は、描画要求をＧＰＵ１１６に送信する。ＧＰＵ１１６は、ディスプレイドライバ２０１からの描画要求に応じて表示処理（グラフィクス演算処理）を実行して、各種オブジェクトを含むフレームを生成し、その生成したフレームをビデオメモリ（ＶＲＡＭ）１１６Ａに格納する。
【００３６】
また、ＧＰＵ１１６において汎用計算処理を実行させる場合には、アプリケーションプログラム２０２からの処理要求がＯＳ２００を介してディスプレイドライバ２０１に送られる。ディスプレイドライバ２０１には、アプリケーションプログラム２０２からの処理要求に対して動作する消費電力／総処理時間取得部５０１、総消費電力算出部５０２、及びＧＰＵ動作周波数制御部５０３のモジュールが設けられており、汎用計算処理の実行中の省電力化を図るための処理を実行する。
【００３７】
消費電力／総処理時間取得部５０１は、ＣＰＵ１１１（アプリケーションプログラム２０２）からのＧＰＵ１１６に対する処理要求に応じて、複数の動作周波数のそれぞれによりＧＰＵ１１６が前記処理要求による処理を実行したと想定した場合のＧＰＵ１１６による単位時間当たりの消費電力と総処理時間を取得する。消費電力／総処理時間取得部５０１は、処理要求があった場合に、処理要求の対象とするデータの一部に対して、ＧＰＵ１１６の複数の動作周波数のそれぞれにより処理を実行させ、データの一部に対する処理の実行中に電源マイコン１４４によって測定された消費電力をもとに単位時間当たりの消費電力を算出し、またデータの一部に対する処理により算出される複数の動作周波数のそれぞれにおけるＧＰＵ１１６による単位時間当たりの処理量と、処理要求の対象とする総データ量とに基づいて総処理時間を算出する。すなわち、総処理時間＝（総データ量／単位時間当たりの処理量）として算出する。なお、総データ量は、例えば処理要求を行うアプリケーションプログラム２０２（あるいはＯＳ２００）が把握しており、アプリケーションプログラム２０２からディスプレイドライバ２０１に対して通知されるものとする。
【００３８】
処理要求の対象とするデータの一部としては、例えば動画像ファイルについては予め決められたフレーム数（例えば、先頭から１００フレーム）としたり、あるいは予め決められた時間に処理可能なフレーム（例えば、２秒間に処理可能なフレーム）とすることができる。また、消費電力／総処理時間取得部５０１は、ＨＤＤ１２１に記録された消費電力データ１２１ａにおいて、ＣＰＵ１１１（アプリケーションプログラム２０２）からの処理要求の処理条件に対応する単位時間当たりの消費電力と単位時間当たりの処理量とが設定されている場合には、データの一部に対する処理を実行することなく、ＯＳ２００を通じて消費電力データ１２１ａから必要なデータを取得することができる。
【００３９】
なお、本実施形態において、消費電力／総処理時間取得部５０１は、ＧＰＵ１１６による単位時間当たりの消費電力と総処理時間を取得するとしているが、ＧＰＵ１１６による処理に使用されるＶＲＡＭ１１６Ａ（メモリモジュール）を含む表示回路における単位時間当たりの消費電力を取得するものとしても良い。
【００４０】
総消費電力算出部５０２は、消費電力／総処理時間取得部５０１により取得された単位時間当たりの消費電力と総処理時間をもとに、複数の動作周波数のそれぞれによりＧＰＵ１１６が処理要求による処理を実行したと想定した場合の総消費電力を算出する。総消費電力算出部５０２は、処理要求の処理条件に対応する単位時間当たりの消費電力と単位時間当たりの処理量を示すデータが、ＨＤＤ１２１に記録された消費電力データ１２１ａに設定されている場合には、このデータをもとに総消費電力を算出する。
【００４１】
ＧＰＵ動作周波数制御部５０３は、総消費電力算出部５０２により算出された動作周波数毎の総消費電力に基づいて、ＧＰＵ１１６の動作周波数を制御する。ＧＰＵ動作周波数制御部５０３は、例えば総消費電力が最も少なくなる動作周波数をＧＰＵ１１６に対して設定することにより、ＣＰＵ１１１（アプリケーションプログラム２０２）から要求された処理の実行中における省電力化を図る。なお、ＧＰＵ動作周波数制御部５０３は、処理要求の対象とするデータに対する複数の動作周波数のそれぞれにより実行されるＧＰＵ１１６による動作能力を判別し、必要とされる動作能力を満たす動作周波数のうちで総消費電力が最も少なくなる動作周波数をＧＰＵ１１６に対して設定する。さらに、ＧＰＵ動作周波数制御部５０３は、ユーザから汎用計算処理についての許容時間が指定されている場合には、この許容時間以下で処理要求に対する処理を実行可能な動作周波数のうちで、総消費電力が最も少なくなる動作周波数をＧＰＵ１１６に対して設定することができる。なお、ＧＰＵ動作周波数制御部５０３は、ＧＰＵ１１６の動作周波数と共にＶＲＡＭ１１６Ａの動作周波数を制御する。
【００４２】
次に、本実施形態における、ＧＰＵ１１６によって汎用計算処理を実行する場合の動作について、図６に示すフローチャートを参照しながら説明する。  
ここでは、ＧＰＵ１１６に対して、汎用計算処理として動画像ファイルに対するビデオエンコードを実行させる場合を例にして説明する。
【００４３】
アプリケーションプログラム２０２は、ＯＳ２００を通じて、ＨＤＤ１２１に格納された動画像ファイルについてのビデオエンコードの処理要求をディスプレイドライバ２０１に対して送信する。
【００４４】
ディスプレイドライバ２０１は、アプリケーションプログラム２０２からのビデオエンコードの実行要求に応じて、消費電力／総処理時間取得部５０１により、ＧＰＵ１１６が動作可能な複数の動作周波数のそれぞれにより、ＧＰＵ１１６が処理要求による処理を実行したと想定した場合の単位時間当たりの消費電力と総処理時間を取得するための処理を実行する。
【００４５】
まず、消費電力／総処理時間取得部５０１は、ＯＳ２００を介して、ＨＤＤ１２１に記録された消費電力データ１２１ａにおいて、処理要求に対する単位時間当たりの消費電力と処理量を示すデータが設定されているか判別する（ステップＡ１）。すなわち、過去に同じ処理条件による処理を実行済みであるかを判別する。ここでは、例えば同じ解像度の動画像ファイルに対するエンコードについて処理を実行した時に記録された、単位時間当たりの消費電力と処理量（例えば、処理フレーム数）が記録されているかを判別する。
【００４６】
ここで、同じ動作条件に対応する単位時間当たりの消費電力と処理量を示すデータが記録されていない場合（ステップＡ２、Ｙｅｓ）、消費電力／総処理時間取得部５０１は、処理対象とするデータの一部として、例えば動画像ファイルの先頭から１００フレーム分について、ＧＰＵ１１６の複数の動作周波数のそれぞれにより処理を実行させて、単位時間当たりの消費電力と処理量を取得する。
【００４７】
すなわち、消費電力／総処理時間取得部５０１は、ＧＰＵ動作周波数制御部５０３によってＧＰＵ１１６の動作周波数をＦ１に切り替えて、対象とする動画像ファイルに対するデコード処理を実行させる。消費電力／総処理時間取得部５０１は、動作周波数Ｆ１の設定時における、動画像ファイルの先頭から１００フレーム分の処理に要したＧＰＵ１１６の消費電力Ｐ１と処理時間Ｔ１を測定する。同様にして、消費電力／総処理時間取得部５０１は、動作周波数Ｆ２，Ｆ２の設定時における、動画像ファイルの先頭から１００フレーム分の処理に要したＧＰＵ１１６の消費電力Ｐ２，Ｐ２と処理時間Ｔ２，Ｔ３を測定する。そして、消費電力／総処理時間取得部５０１は、各動作周波数Ｆ１，Ｆ２，Ｆ３の設定時に測定された処理時間Ｔ１，Ｔ２，Ｔ３と、処理対象としたデータ量（ここでは、１００フレーム）をもとに単位時間当たりの処理量を算出する（ここでは、例えばフレーム数）（ステップＡ５）。
【００４８】
消費電力／総処理時間取得部５０１は、ここで取得された単位時間当たりの消費電力と処理量を、アプリケーションプログラム２０２から要求された処理条件と対応付けて、消費電力データ１２１ａとして記録する。
【００４９】
こうして、実際に処理対象とするデータの一部に対して処理を実行することによって得られた単位時間当たりの消費電力と処理量を消費電力データ１２１ａとして記録することで、パーソナルコンピュータ１０の個体差や動作環境の違いなどによって処理能力に違いがある場合であっても、後述する総消費電力の計算をより正確に実行できる。
【００５０】
なお、前述した説明において、単位時間当たりの消費電力と処理量を取得するために、例えば動画像ファイルの先頭から１００フレーム分について処理を実行するものとしているが、単位時間当たりの消費電力と処理量を取得することが可能な必要最小限のデータ量を対象とすることが望ましい。
【００５１】
一方、消費電力データ１２１ａにおいて処理条件に対応する単位時間当たりの消費電力と処理量を示すデータが記録されていた場合には、前述したように、以前に同じ処理条件においてのデコード処理を実行した際に記録された消費電力データ１２１ａから該当する同じ動作条件に対応する単位時間当たりの消費電力と処理量を示すデータを読み出す（ステップＡ４）。
【００５２】
次に、総消費電力算出部５０２は、消費電力／総処理時間取得部５０１により取得された単位時間当たりの消費電力と処理量を示すデータをもとに、動作周波数Ｆ１，Ｆ２，Ｆ３の設定時のそれぞれにおける、処理要求の対象とする動画像ファイル全体に対して演算処理を実行したと想定した場合の総消費電力を算出する（ステップＡ５）。
【００５３】
すなわち、動作周波数Ｆｘの設定時の総消費電力はＰｘＴｘとなる（ｘ＝１，２，３）。図７には、各動作周波数Ｆ１，Ｆ２，Ｆ３に対して算出される総消費電力を示している。
【００５４】
次に、ＧＰＵ動作周波数制御部５０３は、消費電力／総処理時間取得部５０１により取得された各動作周波数Ｆ１，Ｆ２，Ｆ３により動作したと想定した場合の処理時間Ｔ１，Ｔ２，Ｔ３をもとに、アプリケーションプログラム２０２からの処理要求を支障なく実行可能であるか動作能力を判別する（ステップＡ６）。
【００５５】
ＧＰＵ動作周波数制御部５０３は、処理要求を支障なく実行可能と判別された各動作周波数において処理を実行したと想定した場合の総消費電力を比較し（ステップＡ７）、総消費電力が最小となる動作周波数を選択し、その動作周波数をＧＰＵ１１６に設定する（ステップＡ８，Ａ９，Ａ１０）。例えば、動作周波数Ｆ１，Ｆ２，Ｆ３の何れにおいても支障なく処理を実行可能である場合に、Ｐ１Ｔ１＜Ｐ２Ｔ２かつＰ１Ｔ１＜Ｐ３Ｔ３であればＧＰＵ１１６に対して動作周波数Ｆ１を設定する。総消費電力が最小となるＧＰＵ１１６の動作周波数は、単純に最低の動作周波数の場合に限るものではなく、ＧＰＵ１１６に実行させる汎用計算処理の処理内容によって、最低の動作周波数以外の場合に総消費電力が最低となる場合もあり得る。
【００５６】
ディスプレイドライバ２０１は、ＧＰＵ動作周波数制御部５０３によるＧＰＵ１１６に対する動作周波数の設定がされると、処理要求があった動画像ファイルに対するデコード処理を実行させる（ステップＡ１１）。ここでは、ＧＰＵ１１６に対する負荷が大きくなる汎用計算処理を実行する状況においても、予め総消費電力が最小となることが想定されている動作周波数が設定されているため、エンコード処理に要する時間が最速の動作周波数を設定した場合より長くなるが、最速の動作周波数を設定した場合と比較して汎用計算処理の実行時における電力消費を低減することができる。
【００５７】
このようにして、ＣＰＵ１１１（アプリケーションプログラム２０２）からのＧＰＵ１１６に対する汎用計算処理の処理要求に対して、処理全体を実行したと想定した場合に要する総消費電力をＧＰＵ１１６に設定可能な各動作周波数について算出し、この総消費電力が最小となる動作周波数をＧＰＵ１１６に対して処理を実行することができる。これにより、ＧＰＵ１１６に対する負荷が増大する汎用計算処理を実行する場合において省電力化を図ることができる。
【００５８】
なお、本実施形態におけるパーソナルコンピュータ１０では、前述したように、ＧＰＵ１１６によって汎用計算処理を実行させる場合に総消費電力を最小とする動作周波数を設定するだけでなく、ユーザが汎用計算処理に要する許容時間を指定することで、許容時間内で処理を実行可能な範囲で総処理時間を最小となるようにすることもできる。
【００５９】
この場合、例えばＧＰＵ１１６を管理するためのアプリケーションプログラム（ユーティリティプログラム）あるいはディスプレイドライバ２０１に許容時間設定モジュール（図示せず）を設ける。許容時間設定モジュールは、ユーザからの許容時間設定が指示されると、ＧＰＵ１１６に実行させる汎用計算処理についての許容時間をユーザに設定させるための許容時間設定処理を実行する。
【００６０】
図８は、本実施形態における許容時間設定処理を示すフローチャートである。
【００６１】
まず、ユーザからの許容時間設定が指示されると、許容時間設定モジュールは、許容時間設定画面をディスプレイにおいて表示させる（ステップＢ１）。
【００６２】
図９は、本実施形態における許容時間設定画面の表示例を示す図である。図９は、動画像データのエンコード処理についての許容時間を設定する設定画面を示している。許容時間は、例えばアプリケーションプログラム２０２からの処理要求別に設定できるものとする。
【００６３】
ユーザは、許容時間設定画面を通じて、許容時間を示す設定値を任意に入力する（ステップＢ２）。ユーザによって設定値の入力完了が指示されると（ステップＢ３、Ｙｅｓ）、入力された設定値が例えばＨＤＤ１２１に記録される（ステップＢ４）。
【００６４】
例えば、許容時間として「０％」がユーザにより指定された場合には、ＧＰＵ動作周波数制御部５０３は、例えばＨＤＤ１２１に記録された許容時間を示す設定値を参照して、ＧＰＵ１１６に対して処理時間が最短となるように動作周波数を設定する。また、許容時間として「５０％」がユーザにより指定された場合に、ＧＰＵ動作周波数制御部５０３は、同様にして設定値を参照して、ＧＰＵ１１６に対して最大の動作周波数を設定した場合よりも処理時間が「１５０％」以下の場合で、かつ総消費電力が最低となる動作周波数を設定する。例えば、前述した例では、Ｔ２＜１．５×Ｔ１とＰ２Ｔ２＜Ｐ１Ｔ１を満たす動作周波数Ｆ２が存在すれば、この動作周波数Ｆ２がＧＰＵ１１６に対して設定されて処理が実行される。
【００６５】
これにより、ユーザが許容可能な処理時間で最も消費電力が少なくなるようにＧＰＵ１１６の動作周波数を制御することが可能となる。
【００６６】
なお、前述した説明では、ディスプレイドライバ２０１に消費電力／総処理時間取得部５０１と総消費電力算出部５０２とを設けて、消費電力／総処理時間取得処理及び総消費電力算出処理とを実行させているが、ＯＳ２００あるいはアプリケーションプログラム２０２に、前述した消費電力／総処理時間取得部５０１と総消費電力算出部５０２と同等の処理モジュールを設けた構成としても良い。
【００６７】
例えば、アプリケーションプログラム２０２に消費電力／総処理時間取得部５０１と総消費電力算出部５０２とを設けた場合には、消費電力／総処理時間取得部５０１は、ＯＳ２００を通じて、電源マイコン１４４により測定される消費電力を取得する。またＧＰＵ１１６によって処理させるデータ（例えば動画像ファイル）の総データ量をアプリケーションプログラム２０２が把握しているので、消費電力／総処理時間取得部５０１は、処理対象とするデータの総データ量に基づいて総処理時間を算出することができる。総消費電力算出部５０２は、ＧＰＵ１１６の動作周波数毎に算出された総消費電力に基づいて、表示回路における消費電力を最小とすることができる動作周波数を決定して、ディスプレイドライバ２０１のＧＰＵ動作周波数制御部５０３に対して、ＧＰＵ１１６及びＶＲＡＭ１１６Ａの動作周波数の切り替えを指示する。
【００６８】
また、ＯＳ２００において消費電力／総処理時間取得部５０１及び総消費電力算出部５０２と同等の処理モジュールを設けた構成とした場合においても、前述と同様にして実現することが可能である。
【００６９】
また、前述した説明では、初めての動作条件で処理対象とするデータの一部に対して処理を実行した場合に消費電力データ１２１ａを記録するとしているが、消費電力データ１２１ａを更新するようにしても良い。例えばある動作条件に対応する消費電力データ１２１ａが記録された後、一定期間が経過している場合には、改めて同じ動作条件で処理対象とするデータの一部に対して処理を実行して得られた単位時間当たりの消費電力と単位時間当たりの処理量を示す消費電力データ１２１ａに更新する。これにより、パーソナルコンピュータ１０の動作性能や動作環境の変化によって処理能力に変動があった場合でも、ＧＰＵ１１６に対する各動作周波数時における総消費電力を正確に算出できる。
【００７０】
また、前述した説明では、ＧＰＵ１１６に対して汎用計算処理のみを実行させる場合について説明しているが、ＧＰＵ１１６において汎用計算処理以外の処理を並行して実行する場合を想定した総消費電力や動作能力をもとにして、ＧＰＵ１１６に対する動作周波数を設定するようにしても良い。例えば、ＧＰＵ１１６によって、ディスプレイに動画像を表示するための表示処理を実行させながら汎用計算処理を実行させる場合に、ステップＡ６において、ディスプレイにおける表示を支障なく実行可能な動作周波数を判別し、この実行可能な動作周波数のなかで総消費電力が最小となる動作周波数をＧＰＵ１１６に対して設定する。
【００７１】
また、動作速度制御処理においては、ＧＰＵ動作速度制御部５０３は、コアクロックパラメータをＧＰＵ１１６に送信して、内部クロック信号ＣＬＫ２の周波数を制御する処理を実行する。もちろん、外部クロック信号ＣＬＫ１の周波数を制御してもよい。また、ＶＲＡＭ１１６Ａに供給されるメモリクロック信号の周波数を制御することによってもＧＰＵ１１６の動作速度を低下させることができる。さらには、ＧＰＵ１１６に供給される電源電圧の値を変化させることによってもＧＰＵ１１６の動作速度を低下させることができる。
【００７２】
また、パーソナルコンピュータ１０がＡＣ電源に接続されておらず、バッテリ１４２により駆動している場合には、総消費電力算出部５０２により算出された総消費電力とバッテリ１４２の残存容量とを比較し、アプリケーションプログラム２０２から要求された処理（例えばエンコード処理）が完了するまでに残存容量がなくなってしまうと判別される場合には、事前に「ＡＣアダプタを接続してください」といった警告を出すことができる。
【００７３】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【００７４】
また、前述した実施の形態において記載した処理は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。コンピュータは、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【符号の説明】
【００７５】
１０…コンピュータ、１１…コンピュータ本体、１１１…ＣＰＵ、１１５…主メモリ、１１６…ＧＰＵ、１１６Ａ…ＶＲＡＭ、２０１…ディスプレイドライバ、４０１…コアユニット、４０６…内部クロック発生器。
【図１】
2010277350.tif 000003
【図２】
2010277350.tif 000004
【図３】
2010277350.tif 000005
【図４】
2010277350.tif 000006
【図５】
2010277350.tif 000007
【図６】
2010277350.tif 000008
【図７】
2010277350.tif 000009
【図８】
2010277350.tif 000010
【図９】
2010277350.tif 000011
【手続補正書】
【提出日】平成22年6月7日(2010.6.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、
少なくとも第１の動作周波数と第２の動作周波数を用いて動作するＧＰＵと、
前記プロセッサからの前記ＧＰＵに対する処理要求に応じて、前記第１の動作周波数で動作する前記ＧＰＵを用いて処理を実行するための第１の推定単位時間当たり消費電力と第１の推定完了時間についての第１のデータと、前記第２の動作周波数で動作する前記ＧＰＵを用いて処理を実行するための第２の推定単位時間当たり消費電力と第２の推定完了時間についての第２のデータとを取得するデータ取得手段と、
前記第１及び第２のデータに基づいて、前記第１の動作周波数で動作する前記ＧＰＵを用いて前記処理を完了するための第１の消費電力と、前記第２の動作周波数で動作する前記ＧＰＵを用いて前記処理を完了するための第２の消費電力を判別する算出手段と、
前記ＧＰＵを用いて前記処理を完了するための前記第１及び第２の消費電力に基づいて、前記ＧＰＵの動作周波数を制御する制御手段と
を具備したことを特徴とする電子機器。
【請求項２】
前記ＧＰＵの動作時における消費電力を測定する消費電力測定手段をさらに具備し、
前記データ取得手段は、
前記第１及び第２の動作周波数で動作する前記ＧＰＵを用いて、前記処理要求についてのデータ一部の処理を実行させ、
前記データの一部に対する処理の実行中に前記消費電力測定手段によって測定された第１の測定消費電力をもとに前記第１の単位時間当たり消費電力と前記データの一部に対する処理の実行中に前記消費電力測定手段によって測定された第２の測定消費電力をもとに前記第２の単位時間当たり消費電力とを算出し、
前記データの一部に対する処理と前記処理要求の対象とする総データ量とに基づいて算出されるものであって、前記第１の動作周波数で動作する前記ＧＰＵを用いた単位時間当たりの計算量に基づいて前記第１の推定完了時間を算出し、前記第２の動作周波数で動作する前記ＧＰＵを用いた単位時間当たりの計算量に基づいて前記第２の推定完了時間を算出することを特徴とする請求項１記載の電子機器。
【請求項３】
前記データ取得手段により実行された前記データの一部に対する処理により求められた前記第１及び第２の推定単位時間当たり消費電力と、前記単位時間当たりの計算量とを、前記処理要求の処理条件と対応付けて記録する記録手段をさらに具備し、
前記データ取得手段は、前記処理要求の処理条件に対応する前記第１及び第２の単位時間当たり消費電力と前記単位時間当たりの計算量についてのデータを前記記録手段から取得し、
前記算出手段は、前記記録手段から取得された前記第１及び第２の単位時間当たり消費電力と前記単位時間当たりの計算量をもとに、前記処理を完了するための前記第１及び第２の消費電力を算出することを特徴とする請求項２記載の電子機器。
【請求項４】
前記制御手段は、前記ＧＰＵを用いて処理を完了するための推定消費電力が最も少なくなる動作周波数を設定することを特徴とする請求項１記載の電子機器。
【請求項５】
前記制御手段は、前記処理要求のデータに対する、前記第１及び第２の動作周波数で前記ＧＰＵにより実行される処理の動作能力を判別し、前記動作能力を満たすように前記ＧＰＵの前記動作周波数の１つを設定し、前記ＧＰＵを使用して処理を完了するための前記消費電力を最小限にすることを特徴とする請求項４記載の電子機器。
【請求項６】
前記ＧＰＵに実行される処理についての許容時間をユーザに入力させる設定画面を表示する設定画面表示手段をさらに具備し、
前記制御手段は、前記設定画面を通じて入力された前記許容時間以下で前記処理要求に応じた処理を実行可能な前記動作周波数のうちで、前記処理を完了するための前記消費電力が最も少なくなる前記動作周波数を設定することを特徴とする請求項４記載の電子機器。
【請求項７】
前記データ取得手段は、前記ＧＰＵと前記ＧＰＵによる処理のデータを格納するメモリモジュールを用いて処理を実行するための、前記第１及び第２の単位時間当たり消費電力と前記第１及び第２の完了時間を取得し、
前記制御手段は、前記ＧＰＵと前記メモリモジュールの動作周波数を制御することを特徴とする請求項１記載の電子機器。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ＧＰＵ（Graphics Processing Unit）を備えた電子機器に関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
近年、ＧＰＵ（Graphics Processing Unit）を備えたパーソナルコンピュータ等の電子機器においては、ＧＰＵを用いた汎用計算処理の普及により、ディスプレイに画像を表示させるための表示処理以外にＧＰＵを活用することが多くなっている。例えば、動画像データに対するエンコードやデコードをＧＰＵによって実行させることができる。一般に、ＣＰＵ（Central Processing Unit）に限らず、ＧＰＵにおいても高速にデータ処理を実行することが求められている。一方、高速にデータ処理を実行するよう、ＧＰＵに対する処理負荷を増大させると、ＧＰＵやＶＲＡＭによる消費電力が増大してしまう。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
オペレーティングシステム（ＯＳ）２００またはアプリケーションプログラム２０２からの、２次元または３次元グラフィクスの描画要求は、ディスプレイドライバ２０１を介してＧＰＵ１１６に送られる。さらに、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２０に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。ＯＳ２００は、システムＢＩＯＳを通じて、電源回路１４１（電源マイコン１４４）によって測定される各コンポーネントにおける消費電力値を取得することができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
すなわち、消費電力／総処理時間取得部５０１は、ＧＰＵ動作周波数制御部５０３によってＧＰＵ１１６の動作周波数をＦ１に切り替えて、対象とする動画像ファイルに対するデコード処理を実行させる。消費電力／総処理時間取得部５０１は、動作周波数Ｆ１の設定時における、動画像ファイルの先頭から１００フレーム分の処理に要したＧＰＵ１１６の消費電力Ｐ１と処理時間Ｔ１を測定する。同様にして、消費電力／総処理時間取得部５０１は、動作周波数Ｆ２，Ｆ３の設定時における、動画像ファイルの先頭から１００フレーム分の処理に要したＧＰＵ１１６の消費電力Ｐ２，Ｐ３と処理時間Ｔ２，Ｔ３を測定する。そして、消費電力／総処理時間取得部５０１は、各動作周波数Ｆ１，Ｆ２，Ｆ３の設定時に測定された処理時間Ｔ１，Ｔ２，Ｔ３と、処理対象としたデータ量（ここでは、１００フレーム）をもとに単位時間当たりの処理量を算出する（ここでは、例えばフレーム数）（ステップＡ３）。