(58)【調査した分野】(Int.Cl.,DB名)
出力部は、アプリケーションの性能に支障が生じない条件として前記アプリケーションによる処理が遅延した時に前記性能に支障が生じない前記処理の最大の遅延時間を出力する
請求項1または請求項2記載の消費電力削減装置。
【背景技術】
【0002】
コンピュータには、一般的にC-stateと呼ばれるコンピュータの構成要素ごとに機能を停止させることによって省電力を実現する機能が搭載されている。
【0003】
C-stateには、C1、C3、C6等の複数の段階が存在する。段階が大きいC-stateほど、実行されると停止される構成要素の範囲が広いため、より効果の大きい省電力が実現される。また、C-stateが実行されておらず、省電力が実現されていないコンピュータの状態をC0と呼ぶ。
【0004】
図16〜
図18にC-stateの実行例を示す。
図16は、プロセッサの構成例を示すブロック図である。
図16に示すように、プロセッサ10は、L1キャッシュメモリ(以下、L1キャッシュという。)11と、FPU(Floating-Point Unit)12と、L2キャッシュメモリ(以下、L2キャッシュという。)13と、ALU(Arithmetic and Logic Unit)14と、レジスタ15とを備える。すなわち、プロセッサ10は、様々な機能を有する要素で構成されている。
【0005】
なお、プロセッサ10には、
図16に示す各構成要素が必ずしも備えられていなくてもよい。また、プロセッサ10は、
図16に示す構成要素以外の種類の構成要素が備えられたプロセッサでもよい。
【0006】
図17は、C1のC-stateの実行例を示すブロック図である。
図16に示すプロセッサ10と比較すると、
図17に示すFPU12とALU14に斜線が付されている。
図17に示す斜線は、C-stateが実行されたことによって該当の構成要素が機能が停止されている状態であることを意味する。すなわち、
図17は、プロセッサ10がFPU12の機能とALU14の機能が停止されている状態であることを示す。
【0007】
図18は、C3のC-stateの実行例を示すブロック図である。
図17に示すプロセッサ10と比較すると、
図18に示すL1キャッシュ11とレジスタ15にさらに斜線が付されている。すなわち、
図18は、プロセッサ10がL1キャッシュ11の機能とレジスタ15の機能がさらに停止されている状態であることを示す。
【0008】
上記のように、C-stateは、プロセッサの構成要素が有する機能を段階的に停止させることによってプロセッサの省電力を実現する機能である。特許文献1には、C-stateを制御する装置の例が記載されている。特許文献1に記載されている装置は、C-stateの制御機能を有し、処理の遅延許容値を考慮してC-stateの段階を決定する。
【0009】
C-stateが実行されると、コンピュータの一部の機能が停止する。すなわち、C-stateが実行されると、所定時間コンピュータの一部の動作が停止する。また、機能が停止する構成要素の範囲が広がるほど、省電力状態への遷移時間、および省電力状態からの復帰時間が長くなる。また、省電力状態への遷移中、および省電力状態からの復帰中、コンピュータで稼働しているアプリケーションは、完全に動作を停止する。
【0010】
図19は、各段階のC-stateが実行された場合の遷移時間、復帰時間、および電力使用率の例を示す説明図である。
図19に示すように、段階が上のC-stateが実行されるほど、遷移時間、復帰時間は共に長くなる。また、C0比電力使用率は低くなる。
【0011】
C-stateの実行に伴って生じる遅延時間が原因で性能が低下することが明らかなソフトウェアやシステムをコンピュータで動作させる場合、ソフトウェアやシステムの性能の低下を防ぐ唯一の手段は、C-stateや他の省電力機能を停止させることである。
【0012】
例えば、性能が遅延時間の影響を受けるアプリケーションでは、アプリケーションにとって適切でない、より高度な段階のC-stateが実行されたときに生じる性能劣化が大きな問題になる。よって、ネットワークシステム等の遅延時間が重要な因子になる技術領域では、性能を消費電力より優先するために、C-state機能の無効化が多く行われている。
【発明を実施するための形態】
【0028】
実施形態1.
以下、本発明の実施形態を、図面を参照して説明する。
図1は、本発明による消費電力削減装置の第1の実施形態の構成例を示すブロック図である。本発明による消費電力削減装置100は、アプリケーションが稼働する消費電力削減装置であって、プロセッサ101(例えば、プロセッサ1230)と、ユーザモードのプロセッサ101により制御されアプリケーションの性能に支障が生じない条件を出力する出力部102(例えば、C-state制御用情報出力部1110)と、カーネルモードのプロセッサ101により制御され出力された条件が満たされるようにプロセッサ101の構成要素のうち動作させる構成要素を決定する決定部103(例えば、OS/C-state制御部1200)とを備える。
【0029】
以下、消費電力削減装置100による決定処理を説明する。
図2は、第1の実施形態の消費電力削減装置100による決定処理の動作を示すフローチャートである。
【0030】
最初に、ユーザモードのプロセッサ101により制御される出力部102は、アプリケーションの性能に支障が生じない条件を出力する(ステップS11)。
【0031】
次いで、カーネルモードのプロセッサ101により制御される決定部103は、出力された条件が満たされるようにプロセッサ101の構成要素のうち動作させる構成要素を決定する(ステップS12)。決定した後、消費電力削減装置100は、決定処理を終了する。
【0032】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【0033】
また、消費電力削減装置100は、カーネルモードのプロセッサ101により制御され決定された構成要素のみを動作させるようにプロセッサ101に指示する指示部(例えば、OS/C-state制御部1200)を備えてもよい。
【0034】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないようにプロセッサの消費電力を削減できる。
【0035】
また、出力部102は、アプリケーションの性能に支障が生じない条件としてアプリケーションによる処理が遅延した時に性能に支障が生じない処理の最大の遅延時間を出力してもよい。
【0036】
そのような構成により、消費電力削減装置は、アプリケーションの処理の遅延許容時間を考慮した上でC-stateの段階を決定できる。
【0037】
また、消費電力削減装置100において複数のアプリケーションが稼働し、出力部102は、複数のアプリケーションのそれぞれの性能に支障が生じない条件をアプリケーションごとに出力し、決定部103は、出力された複数の条件が満たされるようにプロセッサ101の構成要素のうち動作させる構成要素を決定してもよい。
【0038】
そのような構成により、消費電力削減装置は、複数のアプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【0039】
また、消費電力削減装置100は、PCI Express(登録商標)デバイス(例えば、PCI Expressデバイス2300)を備え、決定部103は、出力された条件が満たされるようにPCI Expressデバイスの構成要素のうち動作させる構成要素を決定してもよい。
【0040】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないようにPCI Expressデバイスの消費電力を削減できる。
【0041】
図3は、本発明による消費電力削減装置の第1の実施形態の他の構成例を示すブロック図である。本発明による消費電力削減装置200は、アプリケーションが稼働する消費電力削減装置であって、プロセッサ201(例えば、プロセッサ1230)と、ユーザモードのプロセッサ201により制御されアプリケーションの性能に支障が生じないようにプロセッサ201の構成要素のうち動作させる構成要素を決定する決定部202(例えば、C-state決定部1130)と、カーネルモードのプロセッサ201により制御され決定された構成要素のみを動作させるようにプロセッサ201に指示する指示部203(例えば、OS/C-state制御部1200)とを備える。
【0042】
以下、消費電力削減装置200による指示処理を説明する。
図4は、第1の実施形態の消費電力削減装置200による指示処理の動作を示すフローチャートである。
【0043】
最初に、ユーザモードのプロセッサ201により制御される決定部202は、アプリケーションの性能に支障が生じないようにプロセッサ201の構成要素のうち動作させる構成要素を決定する(ステップS21)。
【0044】
次いで、カーネルモードのプロセッサ201により制御される指示部203は、決定された構成要素のみを動作させるようにプロセッサ201に指示する(ステップS22)。指示した後、消費電力削減装置200は、指示処理を終了する。
【0045】
そのような構成により、消費電力削減装置は、アプリケーションの性能に支障が生じないC-stateの段階を決定できる。
【0046】
実施形態2.
[構成の説明]
次に、本発明の第2の実施形態を、図面を参照して説明する。
図5は、本発明によるコンピュータの第2の実施形態の構成例を示すブロック図である。
【0047】
図5に示すコンピュータ1000は、ユーザモードで動作するアプリケーション1100を備える。また、アプリケーション1100は、C-state制御用情報出力部1110を含む。
【0048】
また、
図5に示すコンピュータ1000は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、C-state操作部1220とを備える。また、コンピュータ1000は、プロセッサ1230を備える。
【0049】
図20に示すコンピュータ9000と異なり、本実施形態のコンピュータ1000は、C-state制御用情報出力部1110と、C-state操作部1220とを備えている。
図5に示すように、アプリケーション1100にC-state制御用情報出力部1110が設けられている。また、コンピュータ1000のOSにC-state制御用情報が入力されるC-state操作部1220が設けられている。
【0050】
図5に示す構成により、アプリケーション1100は、OSに対してC-state制御を行うための情報をOSに設定できる。OSは、設定された情報が利用されるC-state制御を行うことによって、アプリケーション1100にとって適切なC-stateを実行できる。
【0051】
アプリケーション1100のC-state制御用情報出力部1110は、C-state操作部1220にC-state制御用情報を入力する。次いで、C-state操作部1220は、入力されたC-state制御用情報をOS/C-state制御部1200に入力する。
【0052】
次いで、OS/C-state制御部1200が入力されたC-state制御用情報を利用することによって、適切なC-stateの段階を決定する。C-state操作部1220に入力される情報は、例えば
図19に示す情報に関する。
【0053】
図19に示す情報は、各段階のC-stateが適切に実行されるための制約条件でもある。
図19に示す制約条件は、プロセッサごとに固有の条件である。制約条件は、例えばACPI(Advanced Configuration and Power Interface)等のプロセッサ固有の命令が発行されることによって取得される。
【0054】
また、制約条件は、OSに予め組み込まれていてもよい。OSに予め組み込まれていれば、C-state操作部1220は、制約条件を取得および利用できる。本実施形態のOS/C-state制御部1200等は、C-stateの制約条件を用いてC-stateを制御する。
【0055】
図6は、第2の実施形態のコンピュータの具体例を示すブロック図である。
図6に示す具体例は、C-state制御のために1つのアプリケーションが遅延許容値をOSに設定する例である。
【0056】
図6に示すコンピュータ1001は、ユーザモードで動作するアプリケーション1100を備える。また、アプリケーション1100は、遅延許容値出力部1120を含む。
【0057】
また、
図6に示すコンピュータ1001は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、遅延許容値操作部1240とを備える。また、コンピュータ1001は、プロセッサ1230を備える。
【0058】
図6に示すアプリケーション1100は、C-stateの実行に伴って生じる遅延時間の許容値である遅延許容値を有している。本具体例の遅延許容値出力部1120は、遅延許容値操作部1240にアプリケーション1100の遅延許容値を入力する。次いで、遅延許容値操作部1240は、入力された遅延許容値をOS/C-state制御部1200に入力する。
【0059】
OS/C-state制御部1200は、遅延許容値操作部1240が入力した遅延許容値とC-stateの制約条件とを用いて、遅延許容値が実行に伴って生じる遅延時間以下であるC-stateのうち、生じる遅延時間が最も大きいC-stateの段階を選択する。
【0060】
なお、遅延のトリガになる割込みには、アプリケーションやOSを起因とする割込みだけでなく、ハードウェアを起因とする割込みが含まれてもよい。
【0061】
図7は、第2の実施形態のコンピュータの他の具体例を示すブロック図である。
図7に示す具体例は、C-state制御のために複数のアプリケーションが遅延許容値をOSに設定する例である。
【0062】
図7に示すコンピュータ1002は、ユーザモードで動作する第1アプリケーション1101と、第2アプリケーション1102と、第3アプリケーション1103とを備える。
【0063】
また、
図7に示すように、第2アプリケーション1102は、第2遅延許容値出力部1121を含む。また、第3アプリケーション1103は、第3遅延許容値出力部1122を含む。
【0064】
また、
図7に示すコンピュータ1002は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、第1遅延許容値操作部1241と、第2遅延許容値操作部1242と、第3遅延許容値操作部1243とを備える。また、コンピュータ1002は、プロセッサ1230を備える。なお、
図6に示す具体例は、
図7に示す具体例の一種である。
【0065】
図7に示すように、コンピュータ1002には、遅延許容値を有するアプリケーションが複数存在する。また、コンピュータ1002のOSには、遅延許容値が設定される遅延許容値操作部が複数存在する。
【0066】
図7に示す例では、第2アプリケーション1102の第2遅延許容値出力部1121が、第2遅延許容値操作部1242に第2アプリケーション1102の遅延許容値を入力する。また、第3アプリケーション1103の第3遅延許容値出力部1122が、第3遅延許容値操作部1243に第3アプリケーション1103の遅延許容値を入力する。
【0067】
[動作の説明]
以下、本実施形態のコンピュータ1002の動作を
図8〜
図10を参照して説明する。
【0068】
最初に、本実施形態のコンピュータ1002のC-stateを制御する全体動作を
図8を参照して説明する。
図8は、第2の実施形態のコンピュータ1002によるC-state制御処理の全体動作を示すフローチャートである。
【0069】
最初に、OS/C-state制御部1200は、遷移時間と復帰時間の合計が遅延許容値よりも小さいC-stateの段階を示すC
iのうち、iが最大であるC
maxを計算する(ステップS110)。
【0070】
次いで、OS/C-state制御部1200は、C-stateを制御する(ステップS120)。
【0071】
次いで、OS/C-state制御部1200は、遅延許容値が変更されたか否かを確認する(ステップS130)。遅延許容値が変更された場合(ステップS130におけるYes)、OS/C-state制御部1200は、再度ステップS110の処理を行う。
【0072】
遅延許容値が変更されていない場合(ステップS130におけるNo)、OS/C-state制御部1200は、所定時間待機する(ステップS140)。所定時間待機した後、OS/C-state制御部1200は、再度ステップS120の処理を行う。
【0073】
次に、ステップS110のコンピュータ1002のC
maxを計算する動作を
図9を参照して説明する。
図9は、第2の実施形態のコンピュータ1002による計算処理の動作を示すフローチャートである。
【0074】
OS/C-state制御部1200に、第1遅延許容値操作部1241〜第3遅延許容値操作部1243から遅延許容値がそれぞれ入力される。OS/C-state制御部1200は、入力された遅延許容値の最小値をlatに設定する(ステップS111)。
【0075】
次いで、OS/C-state制御部1200は、遷移時間と復帰時間の合計がlatよりも小さいC-stateの段階であるC
iのうち、iが最大であるC
iを算出する(ステップS112)。
【0076】
次いで、OS/C-state制御部1200は、ステップS112で算出されたC
iをC
maxに設定する(ステップS113)。設定した後、コンピュータ1002は、計算処理を終了する。
【0077】
次に、ステップS120のコンピュータ1002のC-stateを制御する動作を
図10を参照して説明する。
図10は、第2の実施形態のコンピュータ1002による制御処理の動作を示すフローチャートである。
【0078】
最初に、OS/C-state制御部1200は、最適なC-stateの段階を算出する。OS/C-state制御部1200は、算出されたC-stateの段階をC
curに設定する(ステップS121)。
【0079】
OS/C-state制御部1200は、ステップS121で設定されたC
curとステップS110で計算されたC
maxとを比較する(ステップS122)。C
curがC
max以下である場合(ステップS122におけるFalse)、OS/C-state制御部1200は、ステップS124の処理に進む。
【0080】
C
curの方がC
maxより大きい場合(ステップS122におけるTrue)、OS/C-state制御部1200は、C
maxをC
curに設定する(ステップS123)。設定した後、OS/C-state制御部1200は、ステップS124の処理に進む。
【0081】
次いで、OS/C-state制御部1200は、C
curのC-stateを実行する(ステップS124)。実行した後、コンピュータ1002は、制御処理を終了する。
【0082】
すなわち、
図8に示すC-state制御処理で各制約条件を満たすC-stateの段階を決定する際、OS/C-state制御部1200は、各アプリケーションから設定された遅延許容値をいずれも満たし、かつ段階が最大のC-stateを算出する。
【0083】
OS/C-state制御部1200は、例えば所定の時間間隔で算出処理を実行する。すなわち、OS/C-state制御部1200は、最適なC-stateの算出処理を繰り返し実行する。
【0084】
[効果の説明]
本実施形態のコンピュータにおけるユーザモードで動作するプログラムであるアプリケーションには、C-stateを制御するための情報を出力する出力部が設けられる。また、カーネルまたはOSと呼ばれるコンピュータを制御するための基本プログラムには、C-stateを制御できる操作部が設けられる。
【0085】
ユーザモードで動作するプログラムには、許容されるC-stateによる遅延時間である遅延許容値と、C-stateを制御するための情報を出力する構成要素とを有していることが求められる。ユーザモードのプログラムである適当なアプリケーションが、カーネルまたはOSと呼ばれるコンピュータを制御するための基本プログラムに、C-stateの制御方法を指定する。
【0086】
コンピュータでC-stateが実行されることによって遅延時間が発生する場合、性能が遅延時間の影響を受けるアプリケーションがコンピュータで動作していると、性能の低下が生じる。
【0087】
本実施形態のコンピュータは、アプリケーションの性能に影響が及ばない範囲でC-stateを設定できるように構成されている。すなわち、本実施形態のコンピュータが使用されると、性能への影響が最小限に抑えられるC-state制御が実現される。
【0088】
本実施形態のコンピュータは、省電力機能の実行による性能低下の影響を
図20に示すコンピュータよりも低減させることができる。
【0089】
本実施形態のコンピュータが、複数のコンピュータを介して行われる計算処理が実行されるサーバ型コンピュータとして利用されると、特に効果的である。
【0090】
その理由は、個人が使用するコンピュータであるデスクトップ型コンピュータやノートブック型コンピュータでは、C-stateが実行されることに伴って生じる正常状態への復帰に掛かる遅延時間よりも人間が認知できる時間単位の方が十分に大きい。すなわち、C-stateが実行されてもコンピュータで行われる作業に支障が生じることは少ない。
【0091】
しかし、サーバ型コンピュータは多数のコンピュータと同調しながら動作するため、個人が使用するコンピュータに比べて、C-stateが実行されることに伴って生じる正常状態への復帰に掛かる遅延時間が計算処理に大きな影響を与える可能性があるためである。
【0092】
実施形態3.
[構成の説明]
次に、本発明の第3の実施形態を、図面を参照して説明する。
図11は、本発明によるコンピュータの第3の実施形態の構成例を示すブロック図である。
図11に示す例は、アプリケーションがC-stateを操作する、およびC-stateを制御する例である。
【0093】
図11に示すコンピュータ1003は、ユーザモードで動作するアプリケーション1100を備える。また、アプリケーション1100は、C-state決定部1130を含む。
【0094】
また、
図11に示すコンピュータ1003は、カーネルモードで動作するOS/C-state制御部1200と、BIOS1210と、C-state操作部1220と、C-state条件出力部1250とを備える。また、コンピュータ1003は、プロセッサ1230を備える。
【0095】
図11に示すように、OSにC-state条件出力部1250が追加されている。C-state条件出力部1250は、
図19に示すような制約条件をアプリケーション1100に入力する。
【0096】
アプリケーションの中には、動作を停止してもよい時間やタイミングが予め判明しているアプリケーションがある。本実施形態のアプリケーション1100のC-state決定部1130は、判明している動作を停止してもよい時間と入力された制約条件とを用いて、次の遷移対象のC-stateの段階を決定する。
【0097】
決定した後、C-state決定部1130は、C-state操作部1220に決定された遷移対象のC-stateの段階を示す情報である遷移情報を入力する。OS/C-state制御部1200は、C-state操作部1220に遷移情報が入力されると、直ちに入力された遷移情報が示す段階のC-stateを実行する。
【0098】
[動作の説明]
以下、本実施形態のコンピュータ1003の動作を
図12〜
図13を参照して説明する。
【0099】
最初に、本実施形態のアプリケーション1100のC-stateの段階を決定する動作を
図12を参照して説明する。
図12は、第3の実施形態のアプリケーション1100によるC-state決定処理の動作を示すフローチャートである。
【0100】
最初に、アプリケーション1100のC-state決定部1130は、C-state条件出力部1250からC-stateの制約条件を取得する(ステップS201)。
【0101】
次いで、C-state決定部1130は、アプリケーション1100が停止できる時間を算出する。C-state決定部1130は、算出された時間をstに設定する(ステップS202)。
【0102】
次いで、C-state決定部1130は、遷移時間と復帰時間の合計がstよりも小さいC-stateの段階であるC
iのうち、iが最大であるC
iを算出する。C-state決定部1130は、算出されたC
iをC
nextに設定する(ステップS203)。
【0103】
次いで、OS/C-state制御部1200は、C-state操作部1220にC
nextを入力する(ステップS204)。入力した後、アプリケーション1100は、再度ステップS201の処理を行う。
【0104】
以上のように、アプリケーション1100は、アプリケーション1100自身にとって最適なC-stateを算出する。なお、最適なC-stateは、C1、C3、C6等のC-stateの段階の他にC-stateの実行頻度も含めた上で最適なC-stateである。アプリケーション1100は、C-stateを実行したいタイミングで、OSのC-state操作部1220にC-stateの段階を示す値を設定する。
【0105】
次に、本実施形態のOS/C-state制御部1200のC-stateを制御する動作を
図13を参照して説明する。
図13は、第3の実施形態のOS/C-state制御部1200によるC-state制御処理の動作を示すフローチャートである。
【0106】
最初に、OS/C-state制御部1200は、C-state操作部1220にC
nextが入力されたか否かを確認する(ステップS211)。C
nextが入力されていない場合(ステップS211におけるNo)、OS/C-state制御部1200は、C
nextが入力されるまで待機する。
【0107】
C
nextが入力された場合(ステップS211におけるYes)、OS/C-state制御部1200は、C
nextのC-stateを実行する(ステップS212)。実行した後、OS/C-state制御部1200は、再度ステップS211の処理を実行する。
【0108】
以上のように、コンピュータ1003のOS/C-state制御部1200は、アプリケーション1100からC-state操作部1220にC-stateの段階を示す値が設定されることを監視する。C-state操作部1220に値が設定されると、OS/C-state制御部1200は、直ちに設定された値が示す段階のC-stateを実行する。
【0109】
[効果の説明]
本実施形態のコンピュータが使用されると、性能が遅延の影響を受けるアプリケーションが実行されるシステムにおいても、C-state決定部1130が適切な省電力制御を実行することによって、アプリケーションの性能に支障が生じない省電力が実現される。
【0110】
実施形態4.
[構成の説明]
次に、本発明の第4の実施形態を、図面を参照して説明する。
図14は、本発明によるコンピュータの第4の実施形態の構成例を示すブロック図である。
図14に示す構成は、L-state制御を実行するコンピュータの構成である。
【0111】
第2の実施形態の技術、または第3の実施形態の技術は、プロセッサの省電力を実現する機能であるC-state以外に、コンピュータの別の構成要素の省電力を実現する機能にも適用される。
【0112】
本実施形態では、第2の実施形態の技術、または第3の実施形態の技術の、汎用インタフェースであるPCI Expressの省電力を実現する機能であるL-stateへの適用を考える。L-stateは、C-stateと同様に、コンピュータのPCI Expressインタフェースの動作や、接続先のPCI Expressデバイスの動作を停止させることによって省電力を実現する機能である。
【0113】
本実施形態では、
図14に示すようなコンピュータへの適用を考える。
図14に示すコンピュータ2000は、プロセッサ2100と、チップセット2200と、PCI Expressデバイス2300と、PCI Expressデバイス2400とを備える。なお、コンピュータ2000内のPCI Expressデバイス2300とPCI Expressデバイス2400との接続方法は、特に規定されない。
【0114】
PCI Expressデバイス2300とPCI Expressデバイス2400がL-stateにより停止された場合に生じる遅延時間は、未知の値である。よって、
図15に示すような測定環境で、L-stateによる遅延時間を測定することを考える。
【0115】
図15は、L-stateによる遅延時間の測定環境の構成例を示すブロック図である。
図15に示すように、測定環境は、コンピュータ2000と、コンピュータ2001とで構成される。コンピュータ2000は、L-stateを操作する。また、コンピュータ2001は、コンピュータ2000の処理のL-stateによる遅延時間を測定する。
【0116】
また、コンピュータ2000は、PCI Expressデバイス2300を備える。また、コンピュータ2001は、PCI Expressデバイス2301を備える。
図15に示す測定環境では、PCI Expressデバイス2300、およびPCI Expressデバイス2301がネットワークデバイスとそれぞれ仮定される。
【0117】
図15に示すように、PCI Expressデバイス2300は、ネットワークケーブル3000でPCI Expressデバイス2301と通信可能に接続されている。すなわち、PCI Expressデバイス2300は、PCI Expressデバイス2301と通信できる。
【0118】
コンピュータ2000は、コンピュータに備えられているL-stateを、L0、L1、L2等のように段階的に変化させる。コンピュータ2001は、各段階のL-stateによる遅延時間を計測する。次いで、コンピュータ2001は、計測された情報を基に
図19に示す制約条件に相当するL-stateの制約条件を生成する。
【0119】
次いで、コンピュータ2001は、コンピュータ2000に生成されたL-stateの制約条件を送信する。以上の処理により、コンピュータ2000は、L-stateの制約条件を確定できる。確定された制約条件を基に、コンピュータ2000は、OSやアプリケーションを用いてC-stateの省電力機能の制御と同様に、L-stateの省電力機能を制御できる。
【0120】
各実施形態のコンピュータは、排熱量や消費電力に制約が課されているサーバ型コンピュータ、パーソナルコンピュータ、携帯型コンピュータ、またはルータやハブ等のネットワーク機器として好適に利用されることが期待される。すなわち、各実施形態のコンピュータは、サーバ型コンピュータとしてだけではなく、個人が使用するコンピュータであるデスクトップ型コンピュータやノートブック型コンピュータとして利用されてもよい。
【0121】
なお、各ブロック図に記載されている単方向の矢印は、データが流れる方向を示している。しかし、各矢印が記載されている箇所において双方向にデータが流れる可能性は排除されていない。
【0122】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【0123】
(付記1)プロセッサを備え、アプリケーションが稼働する消費電力削減装置において実行される消費電力削減方法であって、ユーザモードのプロセッサがアプリケーションの性能に支障が生じないようにプロセッサの構成要素のうち動作させる構成要素を決定し、カーネルモードのプロセッサが決定された構成要素のみを動作させることを特徴とする消費電力削減方法。
【0124】
(付記2)プロセッサを備え、アプリケーションが稼働するコンピュータにおいて実行される消費電力削減プログラムであって、プロセッサに、ユーザモードでアプリケーションの性能に支障が生じないようにプロセッサの構成要素のうち動作させる構成要素を決定する決定処理、およびカーネルモードで決定された構成要素のみを動作させる動作処理を実行させるための消費電力削減プログラム。
【解決手段】消費電力削減装置100は、アプリケーションが稼働する消費電力削減装置であって、プロセッサ101と、ユーザモードのプロセッサ101により制御されアプリケーションの性能に支障が生じない条件を出力する出力部102と、カーネルモードのプロセッサ102により制御され出力された条件が満たされるようにプロセッサ102の構成要素のうち動作させる構成要素を決定する決定部103とを備える。