(57)【特許請求の範囲】
【請求項１】
複数のデバイスが協働して情報を処理する情報処理装置で実行されるデバイス設定プログラムであって、
前記情報処理装置に、
前記各デバイスの動作速度と消費電力との相関関係を動作速度に応じて定義した相関テーブルと、前記情報処理装置に対して任意に設定された既定の消費電力とに基づいて、該既定の消費電力を超えない範囲内で、デバイスの動作速度の変更を受け付ける第一の処理と、
変更を受け付けたデバイスの動作速度の総消費電力に従って、変更を受け付けたデバイスとは異なるデバイスに対する変更不可の動作速度を表示する第二の処理と、
前記変更を受け付けたら、前記各デバイスの動作速度を制御する際に参照される該各デバイスの動作速度を規定する速度情報を更新する第三の処理と、を実行させることを特徴とするデバイス設定プログラム。
【請求項２】
前記情報処理装置に、
前記各デバイスに用意されている複数の動作速度の選択肢のうち何れかの動作速度の選択操作を受け付ける処理を更に実行させる、
請求項１に記載のデバイス設定プログラム。
【請求項３】
前記情報処理装置に、
前記各デバイスの稼働率に応じて各デバイスの動作速度を決定する処理を更に実行させる、
請求項１または２に記載のデバイス設定プログラム。
【請求項４】
前記情報処理装置に、
前記既定の消費電力の変更を受け付ける処理を更に実行させる、
請求項１から３の何れか一項に記載のデバイス設定プログラム。
【請求項５】
複数のデバイスが協働して情報を処理する情報処理装置が実行するデバイス設定方法であって、
前記情報処理装置が、
前記各デバイスの動作速度と消費電力との相関関係を動作速度に応じて定義した相関テーブルと、前記情報処理装置に対して任意に設定された既定の消費電力とに基づいて、該既定の消費電力を超えない範囲内で、デバイスの動作速度の変更を受け付ける第一の処理と、
変更を受け付けたデバイスの動作速度の総消費電力に従って、変更を受け付けたデバイスとは異なるデバイスに対する変更不可の動作速度を表示する第二の処理と、
前記変更を受け付けたら、前記各デバイスの動作速度を制御する際に参照される該各デバイスの動作速度を規定する速度情報を更新する第三の処理と、を実行することを特徴とするデバイス設定方法。
【請求項６】
複数のデバイスが協働して情報を処理する情報処理装置であって、
前記各デバイスの動作速度と消費電力との相関関係を動作速度に応じて定義した相関テーブルと、前記情報処理装置に対して任意に設定された既定の消費電力とに基づいて、該既定の消費電力を超えない範囲内で、デバイスの動作速度の変更を受け付ける第一の手段、
変更を受け付けたデバイスの動作速度の総消費電力に従って、変更を受け付けたデバイスとは異なるデバイスに対する変更不可の動作速度を表示する第二の手段と、
前記変更を受け付けたら、前記各デバイスの動作速度を制御する際に参照される該各デバイスの動作速度を規定する速度情報を更新する第三の手段と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、デバイス設定プログラム、方法、及び情報処理装置を開示する。
【背景技術】
【０００２】
近年、地球環境を保護する観点から、様々な分野で省エネルギーが強く求められている。また、電力に関しては、電力会社が擁する発電設備の能力に限界があるため、電力の需要が高い夏場には消費電力を制限することが求められることもある。【０００３】
電子機器の消費電力は、動作電圧や動作クロックに大きく依存する。そこで、電子機器の中には、負荷が小さい場合に動作クロックを下げて消費電力を抑制するものがある（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−７０６８１号公報
【特許文献２】特開平１０−２６８９８６号公報
【特許文献３】特開２０００−３３０６７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
コンピュータ等の情報処理装置は、様々なデバイスが組み合わさっている。そこで、一部のユーザは、ＢＴＯ（Build to Order）等で自らの利用形態にあったデバイスを選び、無駄な仕様を省いた情報処理機器をカスタマイズしたりしている。無駄な仕様を省くことにより、消費電力を低く抑えつつ高い性能を得ることができる。【０００６】
ところで、コンピュータ等の情報処理装置を構成するデバイスは、負荷（処理する情報量）が小さければ動作クロックを下げることで消費電力を低減できるが、負荷が大きい場合は消費電力が最大まで達してしまう。ここで、無駄な仕様を省くようにカスタマイズされた情報処理機器の場合、各デバイスの性能はユーザが望む程度に制限されているため、最大消費電力も低く抑えられる。しかし、そのようにカスタマイズされた情報処理機器は、例えば、作業内容が変わったりすることによりユーザの利用形態が変化した場合、ユーザの利便性が損なわれる。特定のデバイスの能力が低いと、全体の性能を低下させるためである。【０００７】
そこで、本願は、ユーザの利用形態が変化しても、最大消費電力を低く抑えつつ利便性も損なわないデバイス設定プログラム、方法、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願は、上記課題を解決するため、下記のコンピュータプログラムを開示する。
複数のデバイスが協働して情報を処理する情報処理装置で実行されるデバイス設定プログラムであって、
前記情報処理装置に、
前記各デバイスの動作速度と消費電力との相関関係を動作速度に応じて定義した相関テーブルと、前記情報処理装置に対して任意に設定された既定の消費電力とに基づいて、該既定の消費電力を超えない範囲内で、デバイスの動作速度の変更を受け付ける第一の処理と、
変更を受け付けたデバイスの動作速度の総消費電力に従って、変更を受け付けたデバイスとは異なるデバイスに対する変更不可の動作速度を表示する第二の処理と、
前記変更を受け付けたら、前記各デバイスの動作速度を制御する際に参照される該各デバイスの動作速度を規定する速度情報を更新する第三の処理と、を実行させることを特徴とするデバイス設定プログラム。
【０００９】
なお、上記デバイス設定プログラムは、方法や装置の側面から捉えることもできる。
【発明の効果】
【００１０】
ユーザの利用形態が変化しても、最大消費電力を低く抑えつつ利便性も損なわないデバイス設定プログラム、方法、及び情報処理装置を提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】コンピュータの構成図である。
【図２】デバイス設定プログラムの実行によってコンピュータ内に実現される機能ブロック図である。
【図３】消費電力テーブルの内容を示す図である。
【図４】デバイス設定プログラムが実行する処理フローの図である。
【図５】モニタに表示される設定画面の一例である。
【図６】モニタに表示される設定画面の変形例である。
【図７】デバイス設定プログラムが実行する処理フローの変形例の図である。
【図８】モニタに表示されるエラー画面の一例である。
【図９】モニタに表示される確認画面の一例である。
【図１０】モニタに表示される再起動の確認画面の一例である。
【図１１】デバイス設定プログラムの実行によってコンピュータ内に実現される機能ブロックの変形例の図である。
【図１２】デバイス設定プログラムが実行する処理フローの変形例の図である。
【図１３】モニタに表示される設定画面の変形例である。
【発明を実施するための形態】
【００１２】
本願で開示するデバイス設定プログラム、方法、及び情報処理装置の実施形態を以下に説明する。以下に示す実施形態は、単に本願で開示するデバイス設定プログラム、方法、及び情報処理装置の実施形態を例示的に示すものであるため、本願の権利範囲が以下に示す実施形態に限定されるものではない。
【００１３】
図１は、実施形態に係る情報処理装置であるコンピュータ１の構成図である。コンピュータ１は、図１に示すように、ＣＰＵ（Central Processing Unit）２、ビデオカード３、主メモリ４、チップセット５、クロックジェネレータ６、及び不揮発性メモリ２７を備える。コンピュータ１は、ＣＰＵ２やビデオカード３、主メモリ４、チップセット５、クロックジェネレータ６、及び不揮発性メモリ２７が協働することで、各種の情報処理を実現する。チップセット５は、コンピュータ１に外部接続されるキーボード７と繋がる。ビデオカード３は、コンピュータ１に外部接続されるモニタ８と繋がる。
【００１４】
ＣＰＵ２は、主メモリ４にあるコンピュータプログラムの命令を順に読み込んで解釈し、実行することで情報の加工を行う。ＣＰＵ２は、フリップフロップなどの回路素子で構成されるＣＰＵレジスタ２Ａを内蔵している。ＣＰＵレジスタ２Ａは、演算結果を一時的に保持したり、主メモリ４を読み書きする際のアドレスを保持したり、或いはＣＰＵ２の動作クロックの設定を保持する。ＣＰＵ２は、ＣＰＵバス９によってチップセット５と接続されている。ＣＰＵ２は、チップセット５を介してビデオカード３や主メモリ４、キーボード７、モニタ８、不揮発性メモリ２７とデータやプログラムなどの情報をやりとりする。ＣＰＵ２は、プログラムコードに従って主メモリ４とＣＰＵレジスタ２Ａとの間でデータを移送することで、各種の情報処理を実現する。
【００１５】
ビデオカード３は、映像を信号としてモニタ８に出力するデバイスである。ビデオカード３には、ビデオカード３の動作を制御するビデオカードコントローラ３Ａが内蔵されている。ビデオカードコントローラ３Ａは、データを一時的に保持したりビデオカード３の動作クロックの設定を保持したりするレジスタを内蔵している。なお、ビデオカードコントローラ３Ａは、ＣＰＵ２あるいはチップセット５に設けられていてもよい。また、ビデオカード３を設けない構成を採ってもよい。
【００１６】
主メモリ４は、ＣＰＵ２が処理すべきコンピュータプログラムやデータを保持するデバイスである。主メモリ４は、揮発性のメモリである。主メモリ４の動作クロックは、チップセット５内のメモリコントローラ４Ａによって制御される。メモリコントローラ４Ａは、主メモリ４の動作クロックの設定を保持するレジスタを内蔵している。なお、メモリコントローラ４Ａは、主メモリ４やＣＰＵ２に設けられていてもよい。
【００１７】
チップセット５は、ＣＰＵバス９やグラフィックバス１０、メモリバス１１、不揮発性メモリ２７を相互に接続するバスブリッジである。チップセット５には、既述したメモリコントローラ４Ａが内蔵されている。メモリコントローラ４Ａは、主メモリ４の動作を制御する。
【００１８】
クロックジェネレータ６は、共振回路を有しており、ＣＰＵ２やビデオカード３、チップセット５といった各デバイスの動作を同期させるためのクロック信号を生成する。ＣＰＵ２やビデオカード３、主メモリ４といった各デバイスは、このクロックジェネレータ６が生成するベースクロックを基準に動作する。本実施形態では、クロックジェネレータ６から供給されるベースクロックは、ＣＰＵ２、ビデオカード３、チップセット５に供給される。主メモリ４は、チップセット５経由でベースクロックの供給を受ける。もっとも、コンピュータ１のハードウェア構成に応じて、クロックの供給方法は異なっていてもよい。
【００１９】
キーボード７は、コンピュータ１に用いられる一般的な入力装置の一つであり、主に文字入力を基本とする機器である。なお、本実施形態のコンピュータ１には、入力装置としてキーボード７を例示しているが、マウスを併用してもよいし、タッチパネルやその他の入力装置類に代えてもよい。
【００２０】
モニタ８は、ビデオカード３から出力される映像信号を画面に表示する表示装置である。
【００２１】
不揮発性メモリ２７は、記憶保持動作が不要なメモリである。不揮発性メモリ２７には、ＢＩＯＳ（Basic Input Output System）が格納されており、チップセット５や主メモリ４、ビデオカード３やその他入出力装置類の動作速度の設定情報が保持される。
【００２２】
コンピュータ１は、電源がオンになると、ＣＰＵ２が不揮発性メモリ２７に格納されているＢＩＯＳを読み出して実行する。ＢＩＯＳが実行されると、キーボード７やモニタ８といった周辺機器とコンピュータ１との間における入出力が可能になる。また、ＢＩＯＳが実行されると、ＣＰＵレジスタ２Ａやビデオカードコントローラ３Ａ、メモリコントローラ４Ａが有している動作クロックの設定を保持するコントロールレジスタに、ＢＩＯＳが規定する各デバイスの動作クロックに関する情報が設定される。ＣＰＵ２や主メモリ４、ビデオカード３といった各デバイスの動作クロックは、各デバイスのコントロールレジスタの情報に従う。すなわち、ＣＰＵ２や主メモリ４、ビデオカード３といった各デバイスは、各々に用意されているコントローラの設定が変更されることにより、動作クロックを変更することができる。例えば、ビデオカード３であれば、ビデオカードコントローラ３Ａのレジスタ設定の変更により、コアクロックを変更できる。ＣＰＵ２であれば、ＡＣＰＩ（Advanced Configuration and Power Interface）機能の設定やＣＰＵレジスタ設定の変更により、動作クロックを変更できる。主メモリ４であれば、メモリコントローラ４Ａのレジスタ設定の変更により、主メモリ４の動作クロックを変更できる。
【００２３】
ＢＩＯＳが実行されてコンピュータ１の起動が完了したら、ユーザは、所望する各種のプログラムを実行可能になる。ここで、ユーザが、本実施形態に係るデバイス設定プログラムの実行を開始すると、コンピュータ１の内部には、図２に示すような機能ブロックが実現される。図２に示す機能ブロックは、主にＣＰＵ２や主メモリ４が協働することで実現される。なお、本願では、説明の便宜上、本実施形態に係るデバイス設定プログラムを実行することでコンピュータが実現する各機能ブロックを図２に示すように図示しているが、各機能ブロックは、ＣＰＵ２やビデオカード３、主メモリ４、チップセット５、クロックジェネレータ６、キーボード７、モニタ８、不揮発性メモリ２７が協働することで実現されるものである。
【００２４】
図２に示す機能ブロックの内容を詳述する。ユーザが、デバイス設定プログラムを実行すると、コンピュータ１の内部には、動作設定選択部２１や最大消費電力設定部２２、消費電力テーブル２３、設定値決定部２４、動作設定部２５等の各種機能ブロックが実現される。
【００２５】
動作設定選択部２１は、ＣＰＵ２やビデオカード３、主メモリ４といった各デバイスの動作クロックをユーザに設定させる機能を司る。すなわち、動作設定選択部２１は、モニタ８に表示させる各デバイスの動作クロックの選択画面を生成する。選択画面は、消費電力テーブル２３の情報を既製のグラフィック画面に組み合わせることで生成される。
【００２６】
最大消費電力設定部２２は、コンピュータ１が消費可能な電力の最大値の設定操作を受け付ける機能を司る。すなわち、最大消費電力設定部２２は、モニタ８に表示させるコンピュータ１の最大消費電力の選択画面を生成する。最大消費電力の選択肢は、コンピュータ１が有する電源ユニットの容量等に応じて段階的に既定されたものである。
【００２７】
消費電力テーブル２３は、ＣＰＵ２やビデオカード３、主メモリ４の動作クロックと消費電力との相関関係を既定したものである。消費電力テーブル２３の内容を図３に示す。消費電力テーブル２３は、図３に示すように、ＣＰＵ２やビデオカード３、主メモリ４といった各デバイスについて、動作クロックの設定と消費電力との相関関係をデバイス毎に４段階ずつ既定している。
【００２８】
設定値決定部２４は、動作設定選択部２１によって選択される各デバイスの動作設定の妥当性を、最大消費電力設定部２２や消費電力テーブル２３の情報に基づいて検証したり、最終的に決定された各デバイスの動作クロックの設定情報を動作設定部２５に引き渡したりする。
【００２９】
動作設定部２５は、設定値決定部２４から各デバイスの動作クロックの設定値の情報を引き渡されたら、不揮発性メモリ２７に格納されているＢＩＯＳにアクセスして各デバイスの動作クロックの設定に関するＢＩＯＳの情報を書き換える。
【００３０】
図２に示す各機能ブロックが協働して実現する処理フローを図４に示す。ユーザが、デバイス設定プログラムの実行を開始すると、最大消費電力設定部２２がコンピュータ１の最大消費電力の設定画面を生成し、動作設定選択部２１が各デバイスの動作設定の画面を生成する（Ｓ１０１）。図５は、最大消費電力設定部２２と動作設定選択部２１によって生成され、モニタ８に表示される画面の一例である。最大消費電力設定部２２は、図５に示すように、コンピュータ１の最大消費電力の選択肢を４つ提示する。また、動作設定選択部２１は、図５に示すように、ＣＰＵ２とビデオカード３と主メモリ４について、動作クロックの選択肢を４つずつ提示する。各選択肢は、マウス等のポインティングデバイスで選択可能である。
【００３１】
図５の画面で何れかの選択肢のボタンが押され、確認ボタンが押されると（Ｓ１０２）、各デバイスの消費電力の合計を設定値決定部２４が算出する（Ｓ１０３）。例えば、最大消費電力を１００Ｗ以下に制限しつつグラフィック表示の速度を重視したいユーザが、図５に示すように、ＣＰＵ２の動作クロックを２０００ＭＨｚに設定し、ビデオカード３の動作クロックを６００ＭＨｚに設定し、主メモリ４の動作クロックを６６５ＭＨｚに設定したとする。この場合、設定値決定部２４が算出する各デバイスの消費電力の合計は９０Ｗになる。ここで、コンピュータ１は、ＣＰＵ２やビデオカード３、主メモリ４の他にも電力を消費する機器を内蔵している。例えば、チップセット５やクロックジェネレータ６である。また、コンピュータ１は、外部の機器にも電力を供給している。例えば、キーボード７である。コンピュータ１が消費する電力には、ＣＰＵ２やビデオカード３、主メモリ４以外のこれらの機器の電力（以下、ベース電力という）も含まれている。このように、動作クロックの変更によっても消費電力が変化しないベース電力についても、コンピュータ１全体の消費電力に含めて考慮する必要がある。そこで、設定値決定部２４は、ＣＰＵ２やビデオカード３、主メモリ４の消費電力の合計値に更にベース電力を合算したものをコンピュータ１の消費電力として算出する。ベース電力は、コンピュータ１の動作状態に関わらず概ね一定である。よって、設定値決定部２４は、消費電力テーブル２３に既定されているように、ベース電力を１０Ｗとして計算する。その結果、図５に示す選択肢が選択されている場合であれば、設定値決定部２４は、コンピュータ１の消費電力として１００Ｗという値を算出することになる。なお、設定値決定部２４は、実測値からベース電力を取得してもよい。
【００３２】
設定値決定部２４は、コンピュータ１の消費電力を算出したら、この算出値が最大消費電力の選択値以下であるか否かを判定する（Ｓ１０４）。例えば、図５に示す選択肢が選択されている場合であれば、設定値決定部２４がステップＳ１０３で算出したコンピュータ１の消費電力が１００Ｗであるのに対し、設定されている最大消費電力は１００Ｗであるため、設定値決定部２４は肯定判定を行なう。
【００３３】
なお、設定値決定部２４は、選択ボタンが押される度に、各デバイスの消費電力の合計値が設定された最大消費電力を超えているか否かの判定を行い、選択不能な選択肢をグレー表示にしてユーザに選択させないようにしてもよい。この場合の設定画面の例を図６に、処理フローを図７に示す。
【００３４】
図６に示す設定画面は、最大消費電力が１００Ｗに設定され、ＣＰＵ２の動作クロックが２５００ＭＨｚに設定された際の例である。Ｓ１０１の画面で選択ボタンが押され、最大消費電力として１００Ｗが選択され、ＣＰＵ２の動作クロックとして２５００ＭＨｚが選択されたとする（Ｓ１００１）。設定値決定部２４は、選択されたデバイスの消費電力の合計値を算出する（Ｓ１００２）。そして、算出したデバイスの消費電力の合計値が、選択された最大消費電力以下であるか否かを判定する（Ｓ１００３）。
【００３５】
算出したデバイスの消費電力の合計値が選択された最大消費電力よりも大きい場合、設定値決定部２４は、Ｓ１００１で受け付けた選択操作をキャンセルする。一方、算出したデバイスの消費電力の合計値が選択された最大消費電力以下であれば、設定値決定部２４は、選択不能な選択肢を抽出する（Ｓ１００５）。
【００３６】
例えば、ＣＰＵ２の動作クロックとして２５００ＭＨｚが選択されていたら、ビデオカード３と主メモリ４が使える残りの電力は、設定された最大消費電力からＣＰＵ２の電力とベース電力を減算した値であるため、４０Ｗになる。ここで、主メモリ４の最低消費電力は１５Ｗであるため、ビデオカード３に割当可能な電力の最大値は２５Ｗになる。よって、選択不能な選択肢として、ビデオカード３の動作クロックの選択肢である６００ＭＨｚと５００ＭＨｚが抽出される。また、ビデオカード３の最低消費電力は２０Ｗであるため、主メモリ４に割当可能な電力の最大値は２０Ｗになる。よって、主メモリ４の動作クロックの選択肢である１３３３ＭＨｚが選択不能な選択肢として抽出される。
【００３７】
設定値決定部２４は、抽出したこれらの選択肢をモニタ８にグレー表示させる（Ｓ１００６）。すなわち、図６に示すように、ビデオカード３の動作クロックの選択肢である６００ＭＨｚと５００ＭＨｚ、及び主メモリ４の動作クロックの選択肢である１３３３ＭＨｚをグレー表示させる。このように、設定値決定部２４が、図６の設定画面の選択ボタンが押される度に消費電力の合計値を算出して選択不能な選択肢を抽出し、これをモニタ８にグレー表示させることで、ユーザが選択不能な選択肢を選ぶことが無くなる。なお、決定ボタンが押されたら（Ｓ１００７）、図４のステップＳ１０６以降の処理が実行される。
【００３８】
このように、選択不能な選択肢をグレー表示するようにすれば、選択不能な選択肢をユーザに選択させることがないので、設定変更操作がしやすくなる。以下、図４の処理フローの説明に戻る。
【００３９】
設定値決定部２４は、ステップＳ１０４で否定判定を行った場合、エラー画面をモニタ８に表示させる（Ｓ１０５）。図８は、設定値決定部２４がモニタ８に表示させるエラー画面の一例である。設定値決定部２４は、ステップＳ１０４で否定判定を行った場合、図８に示すように、コンピュータ１の消費電力が設定された最大消費電力を超えている旨のエラーメッセージをモニタ８に表示させる。確認ボタンが押されたら、再びステップＳ１０１の処理に戻る。すなわち、最大消費電力設定部２２がコンピュータ１の最大消費電力の設定画面を生成し、動作設定選択部２１が各デバイスの動作設定の画面を生成する（Ｓ１０１）。
【００４０】
設定値決定部２４は、ステップＳ１０４で肯定判定を行った場合、確認画面をモニタ８に表示させる（Ｓ１０６）。図９は、設定値決定部２４がモニタ８に表示させる確認画面の一例である。設定値決定部２４は、ステップＳ１０４で肯定判定を行った場合、図９に示すように、ステップＳ１０３の処理で算出した消費電力の値と、設定変更を実行するか否かの確認メッセージをモニタ８に表示させる。キャンセルボタンが押されたら、再びステップＳ１０１の処理に戻る。一方、確認ボタンが押されたら、設定値決定部２４は、動作設定部２５に各デバイスの動作クロックの設定情報を引き渡す。
【００４１】
動作設定部２５は、設定値決定部２４から各デバイスの動作クロックの設定値の情報が引き渡されたら、ＢＩＯＳの更新処理を行う（Ｓ１０８）。すなわち、動作設定部２５は、不揮発性メモリ２７にアクセスし、設定値決定部２４から引き渡された各デバイスの動作クロックの設定情報を、不揮発性メモリ２７に格納されたＢＩＯＳが持つ各デバイスの動作クロックの設定情報に上書きする。
【００４２】
動作設定部２５は、ＢＩＯＳの更新処理が終了したら、図１０に示すように、コンピュータ１の再起動を促す画面をモニタ８に表示させる（Ｓ１０９）。
【００４３】
動作設定部２５は、コンピュータ１の再起動を促す画面をモニタ８に表示させたら、ユーザ操作があるまで待機する（Ｓ１１０）。キャンセルボタンが押されたら、デバイス設定プログラムを終了する。一方、承認ボタンが押されたら、コンピュータ１に再起動処理を開始させたのち（Ｓ１１１）、デバイス設定プログラムを終了する。
【００４４】
デバイス設定プログラムによって実現される上記一連の処理により、コンピュータ１のＢＩＯＳが更新されると、コンピュータ１が再び起動した際、各デバイスがユーザの設定したクロックで動作する。すなわち、コンピュータ１が再起動され、或いは電源がオンになると、ＣＰＵ２が不揮発性メモリ２７に格納されている更新後のＢＩＯＳを読み出して実行する。更新後のＢＩＯＳが実行されると、ＣＰＵレジスタ２Ａやビデオカードコントローラ３Ａ、メモリコントローラ４Ａが有している動作クロックの設定を保持するコントロールレジスタに、ユーザが設定した各デバイスの動作クロックに関する情報が設定される。これにより、ＣＰＵ２や主メモリ４、ビデオカード３といった各デバイスの動作クロックは、ユーザが設定したクロックで動作することになる。この結果、設定された最大消費電力の範囲内で、ユーザが望む処理を優先させた動作が実現されるようになる。例えば、図５に示す例であれば、最大消費電力を１００Ｗ以下に制限しつつグラフィック表示の速度を重視した動作が実現される。すなわち、本実施形態によれば、特定のデバイスの負荷が高い状況においても、ユーザの作業内容や意向に配慮した最大消費電力の抑制が実現できる。
【００４５】
なお、上記実施形態では、最大消費電力や各デバイスの設定を４段階にしていたが、３段階以下にしてもよいし、５段階以上にしてもよい。また、最大消費電力や各デバイスの選択肢として示す電力や周波数は、図３や図５、図６に示すものに限定されるものでなく、消費可能な最大電力量や動作可能な周波数の範囲内で適宜変えてもよい。
【００４６】
また、上記実施形態では、最大消費電力や各デバイスの設定を段階的に行なう無段階にしてもよい。この場合、図３に示す消費電力テーブルは、各デバイスの消費電力と動作クロックとの相関を段階的に定義するものではなく、例えば、各デバイスの消費電力と動作クロックとの相関をグラフのようなもので無段階に定義するものが好ましい。また、図５に示す設定画面は、最大消費電力や各デバイスの動作クロックを段階的に選択するためのボタンを配したものではなく、スライダーやスライダーの位置に応じてクロック周波数や消費電力を示す目盛り等を配したものであることが好ましい。
【００４７】
また、上記実施形態では、ＣＰＵ２、ビデオカード３、主メモリ４の３つのデバイスについて、動作クロックを変更していたが、動作クロックを変更すると消費電力が変わるものであれば、如何なるデバイスであってもよい。
【００４８】
また、上記実施形態では、ＣＰＵ２やビデオカード３、主メモリ４のコントローラのレジスタ値を変更することで、各デバイスの動作クロックを変更していたが、各デバイスの動作速度の変更はこのような態様に限定されるものではない。例えば、各デバイスに接続するバスのクロックあるいは転送速度を変更することで、各デバイスの速度を変更するものであってもよい。
【００４９】
なお、上記デバイス設定プログラムは、以下に示すようなものであってもよい。本変形例に係るデバイス設定プログラムによってコンピュータ１内に実現される機能ブロックを図１１に示す。
【００５０】
図１１に示す機能ブロックのうち、既述したものと同一のものについてはその説明を省略する。本変形例に係るデバイス設定プログラムが実行されると、コンピュータ１の内部には、動作設定選択部２１や最大消費電力設定部２２、消費電力テーブル２３、設定値決定部２４、動作設定部２５等の既述した各種機能ブロックの他に、利用度測定部２６が実現される。
【００５１】
利用度測定部２６は、ＣＰＵ２やビデオカード３、主メモリ４といった各デバイスの利用度（負荷率ということもできる）を測定する。すなわち、利用度測定部２６は、ＣＰＵ２やビデオカード３、主メモリ４といった各デバイスの利用度を一定間隔でログに記録する。各デバイスの利用度とは、ある一定時間内に当該デバイスの論理回路が実動作したクロック数を、一定時間内に計数されるクロック数で除算することで得られる値である。このような各デバイスの利用度は、コンピュータ１のオペレーティングシステムが持つパフォーマンスツールで測定してもよいし、コンピュータ１を製造したメーカ以外の者が作成したサードパーティ製の測定ツールで測定してもよい。利用度測定部２６は、各デバイスの利用度を例えば一秒毎に測定してログに記録する。ログは、主メモリ４や図示しないハードディスクといった不揮発性の記憶媒体に保存される。
【００５２】
図１１に示す各機能ブロックが協働して実現する処理フローを図１２に示す。ユーザが、デバイス設定プログラムの実行を開始すると、最大消費電力設定部２２がコンピュータ１の最大消費電力の設定画面を生成し、利用度測定部２６がログの単位の設定画面を生成する（Ｓ２０１）。図１３は、最大消費電力設定部２２と利用度測定部２６によって生成され、モニタ８に表示される画面の一例である。最大消費電力設定部２２は、図１３に示すように、コンピュータ１の最大消費電力の選択肢を４つ提示する。また、利用度測定部２６は、図１３に示すように、各デバイスの利用率の決定に際して参照するログの期間の選択肢を４つ提示する。
【００５３】
ここで、何れの選択肢のボタンも押されないまま確認ボタンが押されると（Ｓ２０２）、既述したステップＳ１０６からステップＳ１１１までの処理と同様の処理が実行されて、ＢＩＯＳが持つ各デバイスの動作クロックの設定情報の更新やコンピュータ１の再起動が行われる。なお、図１３に示す画面の一例では、最大消費電力が１００Ｗに設定され、ログの単位が１週間に設定されているが、何れの選択肢のボタンも押されない場合は、最大消費電力がデフォルト値として１５０Ｗに設定され、ログの単位がデフォルト値として１時間に設定されているものとする。
【００５４】
一方、図１２の画面で何れかの選択肢のボタンが押されると（Ｓ２０２）、各デバイスの利用度の相対値を決定する（Ｓ２０３）。設定値決定部２４は、各デバイスの利用度の相対値を決定するにあたり、利用度測定部２６から各デバイスの利用度に関する情報を取得する。設定値決定部２４は、利用度の情報の取得に際して、図１２の画面で設定されたログの単位分のログの利用度の情報を利用度測定部２６から得る。例えば、図１３に示すようにログの単位が１日に設定されたら、設定値決定部２４は、１日分のログの利用度の情報を利用度測定部２６から得る。なお、利用度測定部２６は、ログがユーザの設定した単位に満たない分しか残っていない場合、デフォルト値として既定の初期値を設定値決定部２４に返す。初期値は、例えば、各デバイスを均等に利用している場合を想定した一律の利用度である１００％であってもよいし、デバイス毎に異なる利用度であってもよい。
【００５５】
次に、設定値決定部２４は、利用度測定部２６から得た利用度の情報に基づき、各デバイスの利用度の相対値を決定する。利用度の相対値は、各デバイスの利用度の合計値に対する特定のデバイスの利用度の割合を表したものである。例えば、ビデオカード３の利用度の相対値であれば、以下の数式で表される。
数式１：ビデオカード３の利用度の相対値＝（（ビデオカード３の利用度／（ＣＰＵ２の利用度＋ビデオカード３の利用度＋主メモリ４の利用度））
【００５６】
ＣＰＵ２とビデオカード３と主メモリ４の利用度がそれぞれ８０％、７０％、６０％であれば、ビデオカード３の利用度の相対値Ｒｖ１Ｖは（７０％／（７０％＋８０％＋６０％））＝０．３３であり、ＣＰＵ２の利用度の相対値Ｒｖ１Ｃは０．３８、主メモリ４の利用度の相対値Ｒｖ１Ｍは０．２８となる。
【００５７】
設定値決定部２４は、次に、各デバイスの消費電力の相対値を決定する。各デバイスの消費電力は利用度が同じでも消費電力が相違する。ここでは、各デバイスの最大消費電力から、各デバイスの消費電力の相対値を決定する。すなわち、消費電力の相対値は、各デバイスの最大消費電力の合計値に対する特定のデバイスの最大消費電力の割合を表したものである。例えば、ビデオカード３の消費電力の相対値であれば、以下の数式で表される。
数式２：ビデオカード３の消費電力の相対値＝（（ビデオカード３の最大消費電力／（ＣＰＵ２の最大消費電力＋ビデオカード３の最大消費電力＋主メモリ４の最大消費電力））
【００５８】
消費電力テーブル２３に示されるように、ＣＰＵ２とビデオカード３と主メモリ４の最大消費電力がそれぞれ６０Ｗ、３５Ｗ、２２Ｗであれば、ビデオカード３の消費電力の相対値Ｒｖ２Ｖは（３５Ｗ／（３５Ｗ＋６０Ｗ＋２２Ｗ））＝０．２９であり、ＣＰＵ２の消費電力の相対値Ｒｖ２Ｃは０．５１、主メモリ４の消費電力の相対値Ｒｖ２Ｍは０．１８となる。
【００５９】
設定値決定部２４は、次に、利用度の相対値と消費電力の相対値とをそれぞれ合計し、各デバイスの最終的な相対値を決定する。最終的な相対値は、負荷率と最大消費電力の相対値の合計値に対する全デバイスの負荷率と最大消費電力の相対値の合計値の割合を表したものである。例えば、ビデオカード３の最終的な相対値であれば、以下の数式で表される。
数式３：ビデオカード３の最終的な相対値＝（（ビデオカード３の負荷率の相対値＋ビデオカード３の最大消費電力の相対値）／（ビデオカード３、ＣＰＵ２、主メモリ４の負荷率の相対値の合計＋ビデオカード３、ＣＰＵ２、主メモリ４の最大消費電力の相対値の合計））
【００６０】
上述した数式１と数式２より算出した各デバイスの利用度の相対値と消費電力の相対値を数式３に代入する。例えば、ビデオカード３の最終的な相対値Ｒｖ３Ｖは（（０．３３＋０．２９）／（（０．３３＋０．３８＋０．２８）＋（０．２９＋０．５１＋０．１８）））＝０．３１となり、ＣＰＵ２の最終的な相対値Ｒｖ３Ｃは０．４４、主メモリ４の最終的な相対値Ｒｖ３Ｍは０．２３となる。
【００６１】
設定値決定部２４は、各デバイスの最終的な相対値を算出したら、ＣＰＵ２やビデオカード３、主メモリ４に割当可能な電力の合計値からこの相対値を乗算した値を、各デバイスに割当可能な電力として算出する（Ｓ２０４）。ここで、設定値決定部２４は、各デバイスに割り当てる電力を決定するにあたり、図１３の画面で設定された最大消費電力の範囲内で割当を決定する。例えば、最大消費電力が１００Ｗに設定されていたら、全デバイスの電力がこの範囲内になるように各デバイスの電力を割り当てる。最大消費電力が１００Ｗに設定されていれば、ベース電力（１０Ｗ）を差し引いた残りの電力、換言すると、各デバイスに割当可能な電力の合計値は９０Ｗであるため、これに最終的な相対値を乗算した値を各デバイスに設定する電力とする。各デバイスの最終的な相対値の合計値が１なので、各デバイスに設定する電力をこのように決定することで、各デバイスの消費電力の合計値が既定の上限値の範囲内に収まることになる。例えば、ビデオカード３であれば最終的な相対値Ｒｖ３Ｖは０．３１なのでビデオカード３に割当可能な電力ＰＶは９０Ｗ×０．３１＝２８．４Ｗであり、ＣＰＵ２に割当可能な電力ＰＣは４０．２Ｗ、主メモリ４に割当可能な電力ＰＭは２１．３Ｗになる。
【００６２】
設定値決定部２４は、このように各デバイスの利用率から各デバイスの重みを算出し、各デバイスの重みに見合う動作クロックをデバイス毎に決定する。各デバイスの動作クロックは、割り当てた電力を超えない範囲で設定される。例えば、ビデオカード３であれば、割り当てられた２８．４Ｗを超えない範囲の消費電力である４００ＭＨｚ（２５Ｗ）が選択される。設定値決定部２４は、ビデオカード３と同様、ＣＰＵ２について２０００ＭＨｚ（４０Ｗ）、主メモリ４について１０６６ＭＨｚ（２０Ｗ）を選択する。
【００６３】
上記ステップＳ２０３からＳ２０４の処理が行われた後、図１３に示す設定画面の確認ボタンが押されると（Ｓ２０２）、既述したステップＳ１０６からステップＳ１１１までの処理と同様の処理が実行され、ＢＩＯＳの更新やコンピュータ１の再起動が行われる。ステップＳ１０８で実行される処理は、各デバイスの動作クロックを規定するＢＩＯＳの情報が、ステップＳ２０４の処理で設定値決定部２４が決定した動作クロックとなるように、ＢＩＯＳの更新処理が行われる。
【００６４】
本変形例に係るデバイス設定プログラムによって実現される上記一連の処理により、コンピュータ１のＢＩＯＳが持つ各デバイスの動作クロックの設定情報が更新されると、コンピュータ１が再び起動した際、ＢＩＯＳの設定情報に基づき、各デバイスの動作クロックが設定され、各デバイスが直近の利用度に応じたクロックで動作する。すなわち、ＣＰＵ２や主メモリ４、ビデオカード３といった各デバイスの動作クロックが、ログに基づく最近のユーザの利用度に鑑みたクロックで動作することになる。この結果、設定された最大消費電力の範囲内で、ユーザが頻繁に行う処理を優先させた動作が実現されるようになる。すなわち、本変形例によれば、特定のデバイスの負荷が高い状況においても、ユーザの作業内容や意向に配慮した最大消費電力の抑制が実現できる。ユーザによっては、自身の作業内容に応じた各デバイスに必要な動作クロックが明確に分からない場合もある。しかし、本変形例であれば、各デバイスの利用状況（負荷率）の測定結果により各デバイスに必要な動作クロックを自動的に決定している。このため、自身の作業内容に応じた各デバイスに必要な動作クロックが明確に分からないユーザが使う場合であっても、ユーザの作業内容に配慮した最大消費電力の抑制が実現できる。
【００６５】
なお、本願で開示するデバイス設定プログラムは、ユーザ自身が各デバイスの動作クロックを設定する上記実施形態に係るプログラムと、利用状況により自動的に各デバイスの動作クロックを設定する上記変形例に係るプログラムとを組み合わせたものであってもよい。例えば、プログラムを起動したら、利用状況により自動的に各デバイスの動作クロックの設定を決定してユーザにモニタ上で提示したのち、ユーザ自身が各デバイスの動作クロックを設定できるようなものであってもよい。
【００６６】
また、上記変形例では、設定値決定部２４が行う割当電力の決定プロセスは、相対値を利用したが、次のようなものであってもよい。例えば、ＣＰＵ２、ビデオカード３、主メモリ４の利用度がそれぞれ６０％、１００％、５０％であったとする。設定値決定部２４は、各デバイスの動作クロックを、暫定的に次のように決定する。すなわち、ＣＰＵ２の動作クロックは定格の約６０％の能力となる２０００ＭＨｚ、ビデオカード３の動作クロックは定格能力である６００ＭＨｚ、主メモリ４の動作クロックは定格の約５０％の能力となる６６５ＭＨｚに、暫定的に決定する。ここで、設定値決定部２４は、暫定的に決定した各デバイスの動作クロックと消費電力テーブル２３との相関から、ＣＰＵ２とビデオカード３と主メモリ４の消費電力の合計値を算出する。この例では、ＣＰＵ２の消費電力が４０Ｗであり、ビデオカード３の消費電力が３５Ｗであり、主メモリ４の消費電力が１５Ｗであるため、消費電力の合計値は９０Ｗとなる。設定値決定部２４は、算出した消費電力の合計値が設定されている最大消費電力以下であれば、暫定的に決定した設定状態を囲み枠で示す設定画面を生成し、モニタ８に再び表示させる。
【００６７】
一方、設定値決定部２４は、最大消費電力が例えば７５Ｗに設定されていた場合のように、算出した消費電力の合計値が設定されている最大消費電力よりも高ければ、暫定的に決定した各デバイスの動作クロックを１つずつ下げる。設定値決定部２４は、暫定的に決定した各デバイスの動作クロックを、上述のように、ＣＰＵ２の動作クロックを２０００ＭＨｚにしていた場合は１５００ＭＨｚに、ビデオカード３の動作クロックを６００ＭＨｚにしていた場合は５００ＭＨｚに、主メモリ４の動作クロックを６６５ＭＨｚにしていた場合はそれ以上下げられないのでそのままにする。そして、各デバイスの消費電力の合計値を再度算出し、設定されている最大消費電力以下であるか否かの判定を行なう。この処理は、算出される各デバイスの消費電力の合計値が設定されている最大消費電力以下になるまで繰り返す。設定値決定部２４は、各デバイスの消費電力の合計値が設定されている最大消費電力以下になれば、暫定的に決定した設定状態を囲み枠で示す設定画面を生成し、モニタ８に再び表示させる。
【００６８】
設定値決定部２４が行う割当電力の決定プロセスは、このようにして決定されたものであっても、コンピュータ１の再起動後、ＢＩＯＳの設定情報に基づき、各デバイスの動作クロックが設定され、各デバイスが直近の利用度に応じたクロックで動作する。この結果、設定された最大消費電力の範囲内で、ユーザが頻繁に行う処理を優先させた動作が実現される。
【００６９】
なお、上記実施形態や各変形例に係るデバイス設定プログラムは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。このような記録媒体のプログラムをコンピュータに読み込ませて実行させることにより、上記各機能を提供させることができる。ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ＤＡＴ、８ｍｍテープ、メモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【符号の説明】
【００７０】
１・・コンピュータ
２・・ＣＰＵ
２Ａ・・ＣＰＵレジスタ
３・・ビデオカード
３Ａ・・ビデオカードコントローラ
４・・主メモリ
４Ａ・・メモリコントローラ
５・・チップセット
６・・クロックジェネレータ
７・・キーボード
８・・モニタ
９・・ＣＰＵバス
１０・・グラフィックバス
１１・・メモリバス
２１・・動作設定選択部
２２・・最大消費電力設定部
２３・・消費電力テーブル
２４・・設定値決定部
２５・・動作設定部
２６・・利用度測定部
２７・・不揮発性メモリ
【図１】
0005447648.tif 000002
【図２】
0005447648.tif 000003
【図３】
0005447648.tif 000004
【図４】
0005447648.tif 000005
【図５】
0005447648.tif 000006
【図６】
0005447648.tif 000007
【図７】
0005447648.tif 000008
【図８】
0005447648.tif 000009
【図９】
0005447648.tif 000010
【図１０】
0005447648.tif 000011
【図１１】
0005447648.tif 000012
【図１２】
0005447648.tif 000013
【図１３】
0005447648.tif 000014