(57)【要約】【課題】アプリケーションの性能に支障が生じないC-stateの段階を決定できる消費電力削減装置を提供する。【解決手段】消費電力削減装置100は、アプリケーションが稼働する消費電力削減装置であって、プロセッサ101と、ユーザモードのプロセッサ101により制御されアプリケーションの性能に支障が生じない条件を出力する出力部102と、カーネルモードのプロセッサ102により制御され出力された条件が満たされるようにプロセッサ102の構成要素のうち動作させる構成要素を決定する決定部103とを備える。【選択図】図１
2018169882.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが稼働する消費電力削減装置であって、
プロセッサと、
ユーザモードの前記プロセッサにより制御され前記アプリケーションの性能に支障が生じない条件を出力する出力部と、
カーネルモードの前記プロセッサにより制御され出力された条件が満たされるように前記プロセッサの構成要素のうち動作させる構成要素を決定する決定部とを備える
ことを特徴とする消費電力削減装置。
【請求項２】
カーネルモードのプロセッサにより制御され決定された構成要素のみを動作させるように前記プロセッサに指示する指示部を備える
請求項１記載の消費電力削減装置。
【請求項３】
出力部は、アプリケーションの性能に支障が生じない条件として前記アプリケーションによる処理が遅延した時に前記性能に支障が生じない前記処理の最大の遅延時間を出力する
請求項１または請求項２記載の消費電力削減装置。
【請求項４】
複数のアプリケーションが稼働し、
出力部は、前記複数のアプリケーションのそれぞれの性能に支障が生じない条件をアプリケーションごとに出力し、
決定部は、出力された複数の条件が満たされるようにプロセッサの構成要素のうち動作させる構成要素を決定する
請求項１から請求項３のうちのいずれか１項に記載の消費電力削減装置。
【請求項５】
PCI Expressデバイスを備え、
決定部は、出力された条件が満たされるように前記PCI Expressデバイスの構成要素のうち動作させる構成要素を決定する
請求項１から請求項４のうちのいずれか１項に記載の消費電力削減装置。
【請求項６】
アプリケーションが稼働する消費電力削減装置であって、
プロセッサと、
ユーザモードの前記プロセッサにより制御され前記アプリケーションの性能に支障が生じないように前記プロセッサの構成要素のうち動作させる構成要素を決定する決定部と、
カーネルモードの前記プロセッサにより制御され決定された構成要素のみを動作させるように前記プロセッサに指示する指示部とを備える
ことを特徴とする消費電力削減装置。
【請求項７】
プロセッサを備え、アプリケーションが稼働する消費電力削減装置において実行される消費電力削減方法であって、
ユーザモードの前記プロセッサが前記アプリケーションの性能に支障が生じない条件を出力し、
カーネルモードの前記プロセッサが出力された条件が満たされるように前記プロセッサの構成要素のうち動作させる構成要素を決定する
ことを特徴とする消費電力削減方法。
【請求項８】
プロセッサが決定された構成要素のみを動作させる
請求項７記載の消費電力削減方法。
【請求項９】
プロセッサを備え、アプリケーションが稼働するコンピュータにおいて実行される消費電力削減プログラムであって、
前記プロセッサに、
ユーザモードで前記アプリケーションの性能に支障が生じない条件を出力する出力処理、および
カーネルモードで出力された条件が満たされるように前記プロセッサの構成要素のうち動作させる構成要素を決定する決定処理
を実行させるための消費電力削減プログラム。
【請求項１０】
プロセッサに、
決定された構成要素のみを動作させる動作処理を実行させる
請求項９記載の消費電力削減プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費電力削減装置、消費電力削減方法および消費電力削減プログラムに関し、特にマイクロプロセッサの消費電力を削減する消費電力削減装置、消費電力削減方法および消費電力削減プログラムに関する。
【背景技術】
【０００２】
コンピュータには、一般的にC-stateと呼ばれるコンピュータの構成要素ごとに機能を停止させることによって省電力を実現する機能が搭載されている。
【０００３】
C-stateには、C1、C3、C6等の複数の段階が存在する。段階が大きいC-stateほど、実行されると停止される構成要素の範囲が広いため、より効果の大きい省電力が実現される。また、C-stateが実行されておらず、省電力が実現されていないコンピュータの状態をC0と呼ぶ。
【０００４】
図１６〜図１８にC-stateの実行例を示す。図１６は、プロセッサの構成例を示すブロック図である。図１６に示すように、プロセッサ10は、L1キャッシュメモリ（以下、L1キャッシュという。）11と、FPU(Floating-Point Unit)12と、L2キャッシュメモリ（以下、L2キャッシュという。）13と、ALU(Arithmetic and Logic Unit)14と、レジスタ15とを備える。すなわち、プロセッサ10は、様々な機能を有する要素で構成されている。
【０００５】
なお、プロセッサ10には、図１６に示す各構成要素が必ずしも備えられていなくてもよい。また、プロセッサ10は、図１６に示す構成要素以外の種類の構成要素が備えられたプロセッサでもよい。
【０００６】
図１７は、C1のC-stateの実行例を示すブロック図である。図１６に示すプロセッサ10と比較すると、図１７に示すFPU12とALU14に斜線が付されている。図１７に示す斜線は、C-stateが実行されたことによって該当の構成要素が機能が停止されている状態であることを意味する。すなわち、図１７は、プロセッサ10がFPU12の機能とALU14の機能が停止されている状態であることを示す。
【０００７】
図１８は、C3のC-stateの実行例を示すブロック図である。図１７に示すプロセッサ10と比較すると、図１８に示すL1キャッシュ11とレジスタ15にさらに斜線が付されている。すなわち、図１８は、プロセッサ10がL1キャッシュ11の機能とレジスタ15の機能がさらに停止されている状態であることを示す。
【０００８】
上記のように、C-stateは、プロセッサの構成要素が有する機能を段階的に停止させることによってプロセッサの省電力を実現する機能である。特許文献１には、C-stateを制御する装置の例が記載されている。特許文献１に記載されている装置は、C-stateの制御機能を有し、処理の遅延許容値を考慮してC-stateの段階を決定する。
【０００９】
C-stateが実行されると、コンピュータの一部の機能が停止する。すなわち、C-stateが実行されると、所定時間コンピュータの一部の動作が停止する。また、機能が停止する構成要素の範囲が広がるほど、省電力状態への遷移時間、および省電力状態からの復帰時間が長くなる。また、省電力状態への遷移中、および省電力状態からの復帰中、コンピュータで稼働しているアプリケーションは、完全に動作を停止する。
【００１０】
図１９は、各段階のC-stateが実行された場合の遷移時間、復帰時間、および電力使用率の例を示す説明図である。図１９に示すように、段階が上のC-stateが実行されるほど、遷移時間、復帰時間は共に長くなる。また、C0比電力使用率は低くなる。
【００１１】
C-stateの実行に伴って生じる遅延時間が原因で性能が低下することが明らかなソフトウェアやシステムをコンピュータで動作させる場合、ソフトウェアやシステムの性能の低下を防ぐ唯一の手段は、C-stateや他の省電力機能を停止させることである。
【００１２】
例えば、性能が遅延時間の影響を受けるアプリケーションでは、アプリケーションにとって適切でない、より高度な段階のC-stateが実行されたときに生じる性能劣化が大きな問題になる。よって、ネットワークシステム等の遅延時間が重要な因子になる技術領域では、性能を消費電力より優先するために、C-state機能の無効化が多く行われている。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第５７３０９９９号公報
【特許文献２】特許第５９７２９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
C-state機能を有効に活用するためには、性能に支障が生じないようにアプリケーションにもC-stateの制御に関与することが求められる。しかし、C-stateが実行される一般的なコンピュータにおいて、アプリケーションは、C-stateの制御に関与していない。以下、C-stateが実行される一般的なコンピュータの例を示す。
【００１５】
図２０は、C-stateが実行される一般的なコンピュータの構成例を示すブロック図である。図２０に示すコンピュータ9000は、ユーザモードで動作するアプリケーション1100を備える。
【００１６】
また、コンピュータ9000は、カーネルモードで動作するOS/C-state制御部1200と、BIOS(Basic Input/Output System)1210とを備える。コンピュータのOS(Operating System)は、カーネルモードで動作する要素で構成されている。また、コンピュータ9000は、プロセッサ1230を備える。
【００１７】
図２０に示すコンピュータ9000において、C-stateは、専らOSで制御される。すなわち、図２０に示すように、アプリケーション1100は、C-stateの制御に何ら関与していない。
【００１８】
上記の課題を解決するために、アプリケーションもC-stateの制御に関与できる装置が求められている。アプリケーションがC-stateの制御に関与できる装置の例が、特許文献２に記載されている。
【００１９】
特許文献２には、C-stateの制御機能を有し、アプリケーションからの制御情報を用いて最適な段階のC-stateを決定する装置が記載されている。
【００２０】
しかし、特許文献２には、C-stateが実行される制約条件に関連する、アプリケーションの性能に支障が生じない条件をアプリケーション側がOS側に入力することは記載されていない。
【００２１】
［発明の目的］
そこで、本発明は、上述した課題を解決する、アプリケーションの性能に支障が生じないC-stateの段階を決定できる消費電力削減装置、消費電力削減方法および消費電力削減プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明による消費電力削減装置は、アプリケーションが稼働する消費電力削減装置であって、プロセッサと、ユーザモードのプロセッサにより制御されアプリケーションの性能に支障が生じない条件を出力する出力部と、カーネルモードのプロセッサにより制御され出力された条件が満たされるようにプロセッサの構成要素のうち動作させる構成要素を決定する決定部とを備えることを特徴とする。
【００２３】
本発明による消費電力削減装置は、アプリケーションが稼働する消費電力削減装置であって、プロセッサと、ユーザモードのプロセッサにより制御されアプリケーションの性能に支障が生じないようにプロセッサの構成要素のうち動作させる構成要素を決定する決定部と、カーネルモードのプロセッサにより制御され決定された構成要素のみを動作させるようにプロセッサに指示する指示部とを備えることを特徴とする。
【００２４】
本発明による消費電力削減方法は、プロセッサを備え、アプリケーションが稼働する消費電力削減装置において実行される消費電力削減方法であって、ユーザモードのプロセッサがアプリケーションの性能に支障が生じない条件を出力し、カーネルモードのプロセッサが出力された条件が満たされるようにプロセッサの構成要素のうち動作させる構成要素を決定することを特徴とする。
【００２５】
本発明による消費電力削減プログラムは、プロセッサを備え、アプリケーションが稼働するコンピュータにおいて実行される消費電力削減プログラムであって、プロセッサに、ユーザモードでアプリケーションの性能に支障が生じない条件を出力する出力処理、およびカーネルモードで出力された条件が満たされるようにプロセッサの構成要素のうち動作させる構成要素を決定する決定処理を実行させることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、アプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【図面の簡単な説明】
【００２７】
【図１】本発明による消費電力削減装置の第１の実施形態の構成例を示すブロック図である。
【図２】第１の実施形態の消費電力削減装置100による決定処理の動作を示すフローチャートである。
【図３】本発明による消費電力削減装置の第１の実施形態の他の構成例を示すブロック図である。
【図４】第１の実施形態の消費電力削減装置200による指示処理の動作を示すフローチャートである。
【図５】本発明によるコンピュータの第２の実施形態の構成例を示すブロック図である。
【図６】第２の実施形態のコンピュータの具体例を示すブロック図である。
【図７】第２の実施形態のコンピュータの他の具体例を示すブロック図である。
【図８】第２の実施形態のコンピュータ1002によるC-state制御処理の全体動作を示すフローチャートである。
【図９】第２の実施形態のコンピュータ1002による計算処理の動作を示すフローチャートである。
【図１０】第２の実施形態のコンピュータ1002による制御処理の動作を示すフローチャートである。
【図１１】本発明によるコンピュータの第３の実施形態の構成例を示すブロック図である。
【図１２】第３の実施形態のアプリケーション1100によるC-state決定処理の動作を示すフローチャートである。
【図１３】第３の実施形態のOS/C-state制御部1200によるC-state制御処理の動作を示すフローチャートである。
【図１４】本発明によるコンピュータの第４の実施形態の構成例を示すブロック図である。
【図１５】L-stateによる遅延時間の測定環境の構成例を示すブロック図である。
【図１６】プロセッサの構成例を示すブロック図である。
【図１７】C1のC-stateの実行例を示すブロック図である。
【図１８】C3のC-stateの実行例を示すブロック図である。
【図１９】各段階のC-stateが実行された場合の遷移時間、復帰時間、および電力使用率の例を示す説明図である。
【図２０】C-stateが実行される一般的なコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００２８】
実施形態１．
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による消費電力削減装置の第１の実施形態の構成例を示すブロック図である。本発明による消費電力削減装置100は、アプリケーションが稼働する消費電力削減装置であって、プロセッサ101（例えば、プロセッサ1230）と、ユーザモードのプロセッサ101により制御されアプリケーションの性能に支障が生じない条件を出力する出力部102（例えば、C-state制御用情報出力部1110）と、カーネルモードのプロセッサ101により制御され出力された条件が満たされるようにプロセッサ101の構成要素のうち動作させる構成要素を決定する決定部103（例えば、OS/C-state制御部1200）とを備える。
【００２９】
以下、消費電力削減装置100による決定処理を説明する。図２は、第１の実施形態の消費電力削減装置100による決定処理の動作を示すフローチャートである。
【００３０】
最初に、ユーザモードのプロセッサ101により制御される出力部102は、アプリケーションの性能に支障が生じない条件を出力する（ステップS11）。
【００３１】
次いで、カーネルモードのプロセッサ101により制御される決定部103は、出力された条件が満たされるようにプロセッサ101の構成要素のうち動作させる構成要素を決定する（ステップS12）。決定した後、消費電力削減装置100は、決定処理を終了する。
【００３２】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【００３３】
また、消費電力削減装置100は、カーネルモードのプロセッサ101により制御され決定された構成要素のみを動作させるようにプロセッサ101に指示する指示部（例えば、OS/C-state制御部1200）を備えてもよい。
【００３４】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないようにプロセッサの消費電力を削減できる。
【００３５】
また、出力部102は、アプリケーションの性能に支障が生じない条件としてアプリケーションによる処理が遅延した時に性能に支障が生じない処理の最大の遅延時間を出力してもよい。
【００３６】
そのような構成により、消費電力削減装置は、アプリケーションの処理の遅延許容時間を考慮した上でC-stateの段階を決定できる。
【００３７】
また、消費電力削減装置100において複数のアプリケーションが稼働し、出力部102は、複数のアプリケーションのそれぞれの性能に支障が生じない条件をアプリケーションごとに出力し、決定部103は、出力された複数の条件が満たされるようにプロセッサ101の構成要素のうち動作させる構成要素を決定してもよい。
【００３８】
そのような構成により、消費電力削減装置は、複数のアプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【００３９】
また、消費電力削減装置100は、PCI Express（登録商標）デバイス（例えば、PCI Expressデバイス2300）を備え、決定部103は、出力された条件が満たされるようにPCI Expressデバイスの構成要素のうち動作させる構成要素を決定してもよい。
【００４０】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないようにPCI Expressデバイスの消費電力を削減できる。
【００４１】
図３は、本発明による消費電力削減装置の第１の実施形態の他の構成例を示すブロック図である。本発明による消費電力削減装置200は、アプリケーションが稼働する消費電力削減装置であって、プロセッサ201（例えば、プロセッサ1230）と、ユーザモードのプロセッサ201により制御されアプリケーションの性能に支障が生じないようにプロセッサ201の構成要素のうち動作させる構成要素を決定する決定部202（例えば、C-state決定部1130）と、カーネルモードのプロセッサ201により制御され決定された構成要素のみを動作させるようにプロセッサ201に指示する指示部203（例えば、OS/C-state制御部1200）とを備える。
【００４２】
以下、消費電力削減装置200による指示処理を説明する。図４は、第１の実施形態の消費電力削減装置200による指示処理の動作を示すフローチャートである。
【００４３】
最初に、ユーザモードのプロセッサ201により制御される決定部202は、アプリケーションの性能に支障が生じないようにプロセッサ201の構成要素のうち動作させる構成要素を決定する（ステップS21）。
【００４４】
次いで、カーネルモードのプロセッサ201により制御される指示部203は、決定された構成要素のみを動作させるようにプロセッサ201に指示する（ステップS22）。指示した後、消費電力削減装置200は、指示処理を終了する。
【００４５】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【００４６】
実施形態２．
［構成の説明］
次に、本発明の第２の実施形態を、図面を参照して説明する。図５は、本発明によるコンピュータの第２の実施形態の構成例を示すブロック図である。
【００４７】
図５に示すコンピュータ1000は、ユーザモードで動作するアプリケーション1100を備える。また、アプリケーション1100は、C-state制御用情報出力部1110を含む。
【００４８】
また、図５に示すコンピュータ1000は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、C-state操作部1220とを備える。また、コンピュータ1000は、プロセッサ1230を備える。
【００４９】
図２０に示すコンピュータ9000と異なり、本実施形態のコンピュータ1000は、C-state制御用情報出力部1110と、C-state操作部1220とを備えている。図５に示すように、アプリケーション1100にC-state制御用情報出力部1110が設けられている。また、コンピュータ1000のOSにC-state制御用情報が入力されるC-state操作部1220が設けられている。
【００５０】
図５に示す構成により、アプリケーション1100は、OSに対してC-state制御を行うための情報をOSに設定できる。OSは、設定された情報が利用されるC-state制御を行うことによって、アプリケーション1100にとって適切なC-stateを実行できる。
【００５１】
アプリケーション1100のC-state制御用情報出力部1110は、C-state操作部1220にC-state制御用情報を入力する。次いで、C-state操作部1220は、入力されたC-state制御用情報をOS/C-state制御部1200に入力する。
【００５２】
次いで、OS/C-state制御部1200が入力されたC-state制御用情報を利用することによって、適切なC-stateの段階を決定する。C-state操作部1220に入力される情報は、例えば図１９に示す情報に関する。
【００５３】
図１９に示す情報は、各段階のC-stateが適切に実行されるための制約条件でもある。図１９に示す制約条件は、プロセッサごとに固有の条件である。制約条件は、例えばACPI(Advanced Configuration and Power Interface)等のプロセッサ固有の命令が発行されることによって取得される。
【００５４】
また、制約条件は、OSに予め組み込まれていてもよい。OSに予め組み込まれていれば、C-state操作部1220は、制約条件を取得および利用できる。本実施形態のOS/C-state制御部1200等は、C-stateの制約条件を用いてC-stateを制御する。
【００５５】
図６は、第２の実施形態のコンピュータの具体例を示すブロック図である。図６に示す具体例は、C-state制御のために１つのアプリケーションが遅延許容値をOSに設定する例である。
【００５６】
図６に示すコンピュータ1001は、ユーザモードで動作するアプリケーション1100を備える。また、アプリケーション1100は、遅延許容値出力部1120を含む。
【００５７】
また、図６に示すコンピュータ1001は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、遅延許容値操作部1240とを備える。また、コンピュータ1001は、プロセッサ1230を備える。
【００５８】
図６に示すアプリケーション1100は、C-stateの実行に伴って生じる遅延時間の許容値である遅延許容値を有している。本具体例の遅延許容値出力部1120は、遅延許容値操作部1240にアプリケーション1100の遅延許容値を入力する。次いで、遅延許容値操作部1240は、入力された遅延許容値をOS/C-state制御部1200に入力する。
【００５９】
OS/C-state制御部1200は、遅延許容値操作部1240が入力した遅延許容値とC-stateの制約条件とを用いて、遅延許容値が実行に伴って生じる遅延時間以下であるC-stateのうち、生じる遅延時間が最も大きいC-stateの段階を選択する。
【００６０】
なお、遅延のトリガになる割込みには、アプリケーションやOSを起因とする割込みだけでなく、ハードウェアを起因とする割込みが含まれてもよい。
【００６１】
図７は、第２の実施形態のコンピュータの他の具体例を示すブロック図である。図７に示す具体例は、C-state制御のために複数のアプリケーションが遅延許容値をOSに設定する例である。
【００６２】
図７に示すコンピュータ1002は、ユーザモードで動作する第１アプリケーション1101と、第２アプリケーション1102と、第３アプリケーション1103とを備える。
【００６３】
また、図７に示すように、第２アプリケーション1102は、第２遅延許容値出力部1121を含む。また、第３アプリケーション1103は、第３遅延許容値出力部1122を含む。
【００６４】
また、図７に示すコンピュータ1002は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、第１遅延許容値操作部1241と、第２遅延許容値操作部1242と、第３遅延許容値操作部1243とを備える。また、コンピュータ1002は、プロセッサ1230を備える。なお、図６に示す具体例は、図７に示す具体例の一種である。
【００６５】
図７に示すように、コンピュータ1002には、遅延許容値を有するアプリケーションが複数存在する。また、コンピュータ1002のOSには、遅延許容値が設定される遅延許容値操作部が複数存在する。
【００６６】
図７に示す例では、第２アプリケーション1102の第２遅延許容値出力部1121が、第２遅延許容値操作部1242に第２アプリケーション1102の遅延許容値を入力する。また、第３アプリケーション1103の第３遅延許容値出力部1122が、第３遅延許容値操作部1243に第３アプリケーション1103の遅延許容値を入力する。
【００６７】
［動作の説明］
以下、本実施形態のコンピュータ1002の動作を図８〜図１０を参照して説明する。
【００６８】
最初に、本実施形態のコンピュータ1002のC-stateを制御する全体動作を図８を参照して説明する。図８は、第２の実施形態のコンピュータ1002によるC-state制御処理の全体動作を示すフローチャートである。
【００６９】
最初に、OS/C-state制御部1200は、遷移時間と復帰時間の合計が遅延許容値よりも小さいC-stateの段階を示すCiのうち、iが最大であるCmaxを計算する（ステップS110）。
【００７０】
次いで、OS/C-state制御部1200は、C-stateを制御する（ステップS120）。
【００７１】
次いで、OS/C-state制御部1200は、遅延許容値が変更されたか否かを確認する（ステップS130）。遅延許容値が変更された場合（ステップS130におけるYes）、OS/C-state制御部1200は、再度ステップS110の処理を行う。
【００７２】
遅延許容値が変更されていない場合（ステップS130におけるNo）、OS/C-state制御部1200は、所定時間待機する（ステップS140）。所定時間待機した後、OS/C-state制御部1200は、再度ステップS120の処理を行う。
【００７３】
次に、ステップS110のコンピュータ1002のCmaxを計算する動作を図９を参照して説明する。図９は、第２の実施形態のコンピュータ1002による計算処理の動作を示すフローチャートである。
【００７４】
OS/C-state制御部1200に、第１遅延許容値操作部1241〜第３遅延許容値操作部1243から遅延許容値がそれぞれ入力される。OS/C-state制御部1200は、入力された遅延許容値の最小値をlatに設定する（ステップS111）。
【００７５】
次いで、OS/C-state制御部1200は、遷移時間と復帰時間の合計がlatよりも小さいC-stateの段階であるCiのうち、iが最大であるCiを算出する（ステップS112）。
【００７６】
次いで、OS/C-state制御部1200は、ステップS112で算出されたCiをCmaxに設定する（ステップS113）。設定した後、コンピュータ1002は、計算処理を終了する。
【００７７】
次に、ステップS120のコンピュータ1002のC-stateを制御する動作を図１０を参照して説明する。図１０は、第２の実施形態のコンピュータ1002による制御処理の動作を示すフローチャートである。
【００７８】
最初に、OS/C-state制御部1200は、最適なC-stateの段階を算出する。OS/C-state制御部1200は、算出されたC-stateの段階をCcurに設定する（ステップS121）。
【００７９】
OS/C-state制御部1200は、ステップS121で設定されたCcurとステップS110で計算されたCmaxとを比較する（ステップS122）。CcurがCmax以下である場合（ステップS122におけるFalse）、OS/C-state制御部1200は、ステップS124の処理に進む。
【００８０】
Ccurの方がCmaxより大きい場合（ステップS122におけるTrue）、OS/C-state制御部1200は、CmaxをCcurに設定する（ステップS123）。設定した後、OS/C-state制御部1200は、ステップS124の処理に進む。
【００８１】
次いで、OS/C-state制御部1200は、CcurのC-stateを実行する（ステップS124）。実行した後、コンピュータ1002は、制御処理を終了する。
【００８２】
すなわち、図８に示すC-state制御処理で各制約条件を満たすC-stateの段階を決定する際、OS/C-state制御部1200は、各アプリケーションから設定された遅延許容値をいずれも満たし、かつ段階が最大のC-stateを算出する。
【００８３】
OS/C-state制御部1200は、例えば所定の時間間隔で算出処理を実行する。すなわち、OS/C-state制御部1200は、最適なC-stateの算出処理を繰り返し実行する。
【００８４】
［効果の説明］
本実施形態のコンピュータにおけるユーザモードで動作するプログラムであるアプリケーションには、C-stateを制御するための情報を出力する出力部が設けられる。また、カーネルまたはOSと呼ばれるコンピュータを制御するための基本プログラムには、C-stateを制御できる操作部が設けられる。
【００８５】
ユーザモードで動作するプログラムには、許容されるC-stateによる遅延時間である遅延許容値と、C-stateを制御するための情報を出力する構成要素とを有していることが求められる。ユーザモードのプログラムである適当なアプリケーションが、カーネルまたはOSと呼ばれるコンピュータを制御するための基本プログラムに、C-stateの制御方法を指定する。
【００８６】
コンピュータでC-stateが実行されることによって遅延時間が発生する場合、性能が遅延時間の影響を受けるアプリケーションがコンピュータで動作していると、性能の低下が生じる。
【００８７】
本実施形態のコンピュータは、アプリケーションの性能に影響が及ばない範囲でC-stateを設定できるように構成されている。すなわち、本実施形態のコンピュータが使用されると、性能への影響が最小限に抑えられるC-state制御が実現される。
【００８８】
本実施形態のコンピュータは、省電力機能の実行による性能低下の影響を図２０に示すコンピュータよりも低減させることができる。
【００８９】
本実施形態のコンピュータが、複数のコンピュータを介して行われる計算処理が実行されるサーバ型コンピュータとして利用されると、特に効果的である。
【００９０】
その理由は、個人が使用するコンピュータであるデスクトップ型コンピュータやノートブック型コンピュータでは、C-stateが実行されることに伴って生じる正常状態への復帰に掛かる遅延時間よりも人間が認知できる時間単位の方が十分に大きい。すなわち、C-stateが実行されてもコンピュータで行われる作業に支障が生じることは少ない。
【００９１】
しかし、サーバ型コンピュータは多数のコンピュータと同調しながら動作するため、個人が使用するコンピュータに比べて、C-stateが実行されることに伴って生じる正常状態への復帰に掛かる遅延時間が計算処理に大きな影響を与える可能性があるためである。
【００９２】
実施形態３．
［構成の説明］
次に、本発明の第３の実施形態を、図面を参照して説明する。図１１は、本発明によるコンピュータの第３の実施形態の構成例を示すブロック図である。図１１に示す例は、アプリケーションがC-stateを操作する、およびC-stateを制御する例である。
【００９３】
図１１に示すコンピュータ1003は、ユーザモードで動作するアプリケーション1100を備える。また、アプリケーション1100は、C-state決定部1130を含む。
【００９４】
また、図１１に示すコンピュータ1003は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、C-state操作部1220と、C-state条件出力部1250とを備える。また、コンピュータ1003は、プロセッサ1230を備える。
【００９５】
図１１に示すように、OSにC-state条件出力部1250が追加されている。C-state条件出力部1250は、図１９に示すような制約条件をアプリケーション1100に入力する。
【００９６】
アプリケーションの中には、動作を停止してもよい時間やタイミングが予め判明しているアプリケーションがある。本実施形態のアプリケーション1100のC-state決定部1130は、判明している動作を停止してもよい時間と入力された制約条件とを用いて、次の遷移対象のC-stateの段階を決定する。
【００９７】
決定した後、C-state決定部1130は、C-state操作部1220に決定された遷移対象のC-stateの段階を示す情報である遷移情報を入力する。OS/C-state制御部1200は、C-state操作部1220に遷移情報が入力されると、直ちに入力された遷移情報が示す段階のC-stateを実行する。
【００９８】
［動作の説明］
以下、本実施形態のコンピュータ1003の動作を図１２〜図１３を参照して説明する。
【００９９】
最初に、本実施形態のアプリケーション1100のC-stateの段階を決定する動作を図１２を参照して説明する。図１２は、第３の実施形態のアプリケーション1100によるC-state決定処理の動作を示すフローチャートである。
【０１００】
最初に、アプリケーション1100のC-state決定部1130は、C-state条件出力部1250からC-stateの制約条件を取得する（ステップS201）。
【０１０１】
次いで、C-state決定部1130は、アプリケーション1100が停止できる時間を算出する。C-state決定部1130は、算出された時間をstに設定する（ステップS202）。
【０１０２】
次いで、C-state決定部1130は、遷移時間と復帰時間の合計がstよりも小さいC-stateの段階であるCiのうち、iが最大であるCiを算出する。C-state決定部1130は、算出されたCiをCnextに設定する（ステップS203）。
【０１０３】
次いで、OS/C-state制御部1200は、C-state操作部1220にCnextを入力する（ステップS204）。入力した後、アプリケーション1100は、再度ステップS201の処理を行う。
【０１０４】
以上のように、アプリケーション1100は、アプリケーション1100自身にとって最適なC-stateを算出する。なお、最適なC-stateは、C1、C3、C6等のC-stateの段階の他にC-stateの実行頻度も含めた上で最適なC-stateである。アプリケーション1100は、C-stateを実行したいタイミングで、OSのC-state操作部1220にC-stateの段階を示す値を設定する。
【０１０５】
次に、本実施形態のOS/C-state制御部1200のC-stateを制御する動作を図１３を参照して説明する。図１３は、第３の実施形態のOS/C-state制御部1200によるC-state制御処理の動作を示すフローチャートである。
【０１０６】
最初に、OS/C-state制御部1200は、C-state操作部1220にCnextが入力されたか否かを確認する（ステップS211）。Cnextが入力されていない場合（ステップS211におけるNo）、OS/C-state制御部1200は、Cnextが入力されるまで待機する。
【０１０７】
Cnextが入力された場合（ステップS211におけるYes）、OS/C-state制御部1200は、CnextのC-stateを実行する（ステップS212）。実行した後、OS/C-state制御部1200は、再度ステップS211の処理を実行する。
【０１０８】
以上のように、コンピュータ1003のOS/C-state制御部1200は、アプリケーション1100からC-state操作部1220にC-stateの段階を示す値が設定されることを監視する。C-state操作部1220に値が設定されると、OS/C-state制御部1200は、直ちに設定された値が示す段階のC-stateを実行する。
【０１０９】
［効果の説明］
本実施形態のコンピュータが使用されると、性能が遅延の影響を受けるアプリケーションが実行されるシステムにおいても、C-state決定部1130が適切な省電力制御を実行することによって、アプリケーションの性能に支障が生じない省電力が実現される。
【０１１０】
実施形態４．
［構成の説明］
次に、本発明の第４の実施形態を、図面を参照して説明する。図１４は、本発明によるコンピュータの第４の実施形態の構成例を示すブロック図である。図１４に示す構成は、L-state制御を実行するコンピュータの構成である。
【０１１１】
第２の実施形態の技術、または第３の実施形態の技術は、プロセッサの省電力を実現する機能であるC-state以外に、コンピュータの別の構成要素の省電力を実現する機能にも適用される。
【０１１２】
本実施形態では、第２の実施形態の技術、または第３の実施形態の技術の、汎用インタフェースであるPCI Expressの省電力を実現する機能であるL-stateへの適用を考える。L-stateは、C-stateと同様に、コンピュータのPCI Expressインタフェースの動作や、接続先のPCI Expressデバイスの動作を停止させることによって省電力を実現する機能である。
【０１１３】
本実施形態では、図１４に示すようなコンピュータへの適用を考える。図１４に示すコンピュータ2000は、プロセッサ2100と、チップセット2200と、PCI Expressデバイス2300と、PCI Expressデバイス2400とを備える。なお、コンピュータ2000内のPCI Expressデバイス2300とPCI Expressデバイス2400との接続方法は、特に規定されない。
【０１１４】
PCI Expressデバイス2300とPCI Expressデバイス2400がL-stateにより停止された場合に生じる遅延時間は、未知の値である。よって、図１５に示すような測定環境で、L-stateによる遅延時間を測定することを考える。
【０１１５】
図１５は、L-stateによる遅延時間の測定環境の構成例を示すブロック図である。図１５に示すように、測定環境は、コンピュータ2000と、コンピュータ2001とで構成される。コンピュータ2000は、L-stateを操作する。また、コンピュータ2001は、コンピュータ2000の処理のL-stateによる遅延時間を測定する。
【０１１６】
また、コンピュータ2000は、PCI Expressデバイス2300を備える。また、コンピュータ2001は、PCI Expressデバイス2301を備える。図１５に示す測定環境では、PCI Expressデバイス2300、およびPCI Expressデバイス2301がネットワークデバイスとそれぞれ仮定される。
【０１１７】
図１５に示すように、PCI Expressデバイス2300は、ネットワークケーブル3000でPCI Expressデバイス2301と通信可能に接続されている。すなわち、PCI Expressデバイス2300は、PCI Expressデバイス2301と通信できる。
【０１１８】
コンピュータ2000は、コンピュータに備えられているL-stateを、L0、L1、L2等のように段階的に変化させる。コンピュータ2001は、各段階のL-stateによる遅延時間を計測する。次いで、コンピュータ2001は、計測された情報を基に図１９に示す制約条件に相当するL-stateの制約条件を生成する。
【０１１９】
次いで、コンピュータ2001は、コンピュータ2000に生成されたL-stateの制約条件を送信する。以上の処理により、コンピュータ2000は、L-stateの制約条件を確定できる。確定された制約条件を基に、コンピュータ2000は、OSやアプリケーションを用いてC-stateの省電力機能の制御と同様に、L-stateの省電力機能を制御できる。
【０１２０】
各実施形態のコンピュータは、排熱量や消費電力に制約が課されているサーバ型コンピュータ、パーソナルコンピュータ、携帯型コンピュータ、またはルータやハブ等のネットワーク機器として好適に利用されることが期待される。すなわち、各実施形態のコンピュータは、サーバ型コンピュータとしてだけではなく、個人が使用するコンピュータであるデスクトップ型コンピュータやノートブック型コンピュータとして利用されてもよい。
【０１２１】
なお、各ブロック図に記載されている単方向の矢印は、データが流れる方向を示している。しかし、各矢印が記載されている箇所において双方向にデータが流れる可能性は排除されていない。
【０１２２】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【０１２３】
（付記１）プロセッサを備え、アプリケーションが稼働する消費電力削減装置において実行される消費電力削減方法であって、ユーザモードのプロセッサがアプリケーションの性能に支障が生じないようにプロセッサの構成要素のうち動作させる構成要素を決定し、カーネルモードのプロセッサが決定された構成要素のみを動作させることを特徴とする消費電力削減方法。
【０１２４】
（付記２）プロセッサを備え、アプリケーションが稼働するコンピュータにおいて実行される消費電力削減プログラムであって、プロセッサに、ユーザモードでアプリケーションの性能に支障が生じないようにプロセッサの構成要素のうち動作させる構成要素を決定する決定処理、およびカーネルモードで決定された構成要素のみを動作させる動作処理を実行させるための消費電力削減プログラム。
【符号の説明】
【０１２５】
10、101、201、1230、2100  プロセッサ
11  L1キャッシュ
12  Floating-Point Unit(FPU)
13  L2キャッシュ
14  Arithmetic and Logic Unit(ALU)
15  レジスタ
100、200  消費電力削減装置
102  出力部
103、202  決定部
203  指示部
1000〜1003、2000、2001、9000  コンピュータ
1100  アプリケーション
1101  第１アプリケーション
1102  第２アプリケーション
1103  第３アプリケーション
1110  C-state制御用情報出力部
1120  遅延許容値出力部
1130  C-state決定部
1121  第２遅延許容値出力部
1122  第３遅延許容値出力部
1200  OS/C-state制御部
1210  Basic Input/Output System(BIOS)
1220  C-state操作部
1240  遅延許容値操作部
1241  第１遅延許容値操作部
1242  第２遅延許容値操作部
1243  第３遅延許容値操作部
1250  C-state条件出力部
2200  チップセット
2300、2301、2400  PCI Expressデバイス
3000  ネットワークケーブル
【図１】
2018169882.tif 000003
【図２】
2018169882.tif 000004
【図３】
2018169882.tif 000005
【図４】
2018169882.tif 000006
【図５】
2018169882.tif 000007
【図６】
2018169882.tif 000008
【図７】
2018169882.tif 000009
【図８】
2018169882.tif 000010
【図９】
2018169882.tif 000011
【図１０】
2018169882.tif 000012
【図１１】
2018169882.tif 000013
【図１２】
2018169882.tif 000014
【図１３】
2018169882.tif 000015
【図１４】
2018169882.tif 000016
【図１５】
2018169882.tif 000017
【図１６】
2018169882.tif 000018
【図１７】
2018169882.tif 000019
【図１８】
2018169882.tif 000020
【図１９】
2018169882.tif 000021
【図２０】
2018169882.tif 000022