(57)【要約】【課題】  消費電力を抑えつつ、処理性能が低下することを抑止する。【解決手段】  演算処理装置は、演算処理を実行する演算処理部と、演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持する累積値保持部と、情報処理装置のシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部と、電力上限値保持部が保持する電力上限値を、累積値保持部が保持する累積値が超えないように、演算処理装置の電圧と周波数の少なくともいずれか一方を制御する制御部とを有する。【選択図】    図１
2017102790.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算処理装置を有する情報処理装置において、
前記演算処理装置は、
演算処理を実行する演算処理部と、
前記演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、
前記演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、前記複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持する累積値保持部と、
前記情報処理装置の電力上限値であるシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部と、
前記電力上限値保持部が保持する電力上限値を、前記累積値保持部が保持する累積値が超えないように、前記演算処理装置の電圧と周波数の少なくともいずれか一方を制御する制御部とを有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置はさらに、複数の演算処理装置を制御する制御装置を有し、
前記制御装置は、前記システム電力上限値から各演算処理装置の電力上限値を生成する上限値生成部を有し、
前記各演算処理装置の前記電力上限値保持部は、前記上限値生成部が生成した電力上限値を保持することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記制御装置の前記上限値生成部は、前記システム電力上限値から前記複数の演算処理装置が消費する静的電力値の総和であるシステム静的電力値を減じて得られるシステム動的電力上限値を前記演算処理装置の数で除することで、前記各演算処理装置の動作により消費される動的電力の上限値である動的電力上限値を生成し、
前記各演算処理装置の前記電力上限値保持部は、前記上限値生成部が生成した動的電力上限値を電力上限値として保持することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記演算処理装置はさらに、
前記制御装置に出力する自演算処理装置の消費電力に関する偏差情報を保持する偏差情報保持部を有し、
前記制御装置はさらに、
前記各演算処理装置がそれぞれ出力する偏差情報をそれぞれ収集し、収集した偏差情報に応じた前記システム静的電力値を取得する収集部と、
前記上限値生成部は、前記システム電力上限値と、前記収集部が取得した前記システム静的電力値とに基づき、前記各演算処理装置の動的電力上限値を生成することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記制御装置はさらに、
前記各演算処理装置がそれぞれ出力する偏差情報をそれぞれ収集し、収集した偏差情報に応じた係数値を取得する係数値生成部を有することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記制御装置はさらに、
前記システム電力上限値の変更に基づいて変化する前記演算処理装置の温度変化に対応して前記システム静的電力値を補正するシステム静的電力値補正部を有し、
前記上限値生成部は、前記システム静的電力値補正部が補正したシステム静的電力値を用いて前記各演算処理装置の動的電力上限値を生成することを特徴とする請求項３ないし請求項５のいずれか１項記載の情報処理装置。
【請求項７】
前記上限値生成部は、前記複数の演算処理装置のうち演算処理を実行する演算処理装置の動作により消費される動的電力の上限値であるジョブ電力上限値を、演算処理を実行する演算処理装置の数で除した値を、前記システム静的電力値を前記複数の演算処理装置の数で除した値から減じることで、前記各演算処理装置の動的電力上限値を生成することを特徴とする請求項３記載の情報処理装置。
【請求項８】
前記複数の係数値保持部がそれぞれ保持する前記所定の係数値は、前記複数の演算処理装置に共通に設定されることを特徴とする請求項１ないし請求項７のいずれか１項記載の情報処理装置。
【請求項９】
前記複数の係数値保持部がそれぞれ保持する前記所定の係数値は、平均的な電気的特性を有する演算処理装置が消費する動的電力を前記累積値が示すように設定されることを特徴とする請求項１ないし請求項８のいずれか1項記載の情報処理装置。
【請求項１０】
前記制御装置は、演算処理を前記複数の演算処理装置に分散して実行させ、前記複数の演算処理装置が分散して実行する演算処理の完了を待つバリア同期を実行することを特徴とする請求項２ないし請求項９のいずれか１項記載の情報処理装置。
【請求項１１】
前記演算処理装置はさらに、
前記演算処理装置に接続される主記憶装置のアクセスを制御するメモリアクセス制御部と、
前記主記憶装置が記憶するデータを保持するキャッシュメモリ部とを有し、
前記係数値保持部は、前記演算処理部、メモリアクセス制御部およびキャッシュメモリ部が実行する処理に応じて発生する前記各イベントに対応する前記所定の係数値をそれぞれ保持し、
前記累積値保持部は、前記演算処理部、メモリアクセス制御部およびキャッシュメモリ部が実行した処理に応じて発生する前記対象イベントの数である対象イベント数と、前記複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持することを特徴とする請求項１ないし請求項１０のいずれか１項記載の情報処理装置。
【請求項１２】
前記制御部は、前記電力上限値保持部が保持する電力上限値を、前記累積値保持部が保持する累積値が超えないように、前記演算処理装置の電圧を制御することを特徴とする請求項１ないし請求項１１のいずれか１項記載の情報処理装置。
【請求項１３】
前記演算処理装置はさらに、前記累積値保持部が保持する前記累積値を前記演算処理装置の電圧に応じて補正する補正部を有することを特徴とする請求項１２記載の情報処理装置。
【請求項１４】
演算処理を実行する演算処理部と、
前記演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、
前記演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、前記複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持する累積値保持部と、
前記情報処理装置の電力上限値であるシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部と、
前記電力上限値保持部が保持する電力上限値を、前記累積値保持部が保持する累積値が超えないように、前記演算処理装置の電圧と周波数の少なくともいずれか一方を制御する制御部とを有することを特徴とする演算処理装置。
【請求項１５】
演算処理を実行する複数の演算処理装置を有し、複数の演算処理装置が、前記演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、前記情報処理装置の電力上限値であるシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部とを有する情報処理装置の制御方法において、
前記演算処理装置が有する累積値保持部が、前記演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、前記複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持し、
前記演算処理装置が有する制御部が、前記電力上限値保持部が保持する電力上限値を、前記累積値保持部が保持する累積値が超えないように、前記演算処理装置の電圧と周波数の少なくともいずれか一方を制御することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、演算処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
近年、演算処理装置の消費電力の増加とともに、ＨＰＣ（High Performance Computing）等に使用される並列計算機等の情報処理装置の消費電力も増加する傾向にある。これに伴い、演算処理装置の消費電力を管理し、演算処理装置を搭載する並列計算機の消費電力を抑える運用技術が重要になってきている。
【０００３】
例えば、演算処理装置内で実行される各種のイベントに対応するイベント信号を受信し、受信したイベント信号の値を重み付けして積算していき、積算した値を周期的に読み出すことで、演算処理装置が消費する電力の変化が推定される。そして、推定された電力の変化に基づいて、クロック周波数を調整することで、演算処理装置の消費電力が管理される（例えば、特許文献１参照）。また、演算処理装置に搭載される演算コア内で発生した各種のイベントを、バスを介して検出し、検出したイベントに基づいて電力シーケンスを実行することで、演算処理装置の消費電力が管理される（例えば、特許文献２参照）。
【０００４】
さらに、演算処理装置の消費電力は、演算処理装置で実行される消費電力に影響するイベントの発生回数をカウントし、カウントした値に重み付け係数を乗じた値を所定の周期毎に積算することで推定される（例えば、特許文献３参照）。推定された消費電力は、その後、演算処理装置の静的電力値、温度、または電圧等により補正され、演算処理装置が実際に消費する電力の見積り値として使用される（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１４０３８０号公報
【特許文献２】特開２００８−１６５７９７号公報
【特許文献３】米国特許第８６５０４１３号明細書
【非特許文献】
【０００６】
【非特許文献１】ＩＢＭ  ｊ．ＲＥＳ．＆ＤＥＶ．  ＶＯＬ．５５  ＮＯ．３  ＰＡＰＥＲ  ８  ＭＡＹ／ＪＵＮＥ  ２０１１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、演算処理装置を搭載する並列計算機の消費電力を抑えるために、演算処理装置が実際に消費する電力の見積り値を用いて、演算処理装置のクロック周波数等を調整する電力キャッピングが実行される。演算処理装置の消費電力は、演算処理装置の電気的特性のばらつきによりばらつくため、電力キャッピングの実行タイミング（クロック周波数の変更タイミング）は、演算処理装置毎に相違する。これにより、クロック周波数を下げた演算処理装置と、クロック周波数を下げていない演算処理装置とでは、並列処理される演算処理の処理時間が互いに異なる。このため、先に演算処理を完了した演算処理装置が、他の演算処理装置で実行中の演算処理が完了するまで次の演算処理の開始を待つ同期待ちが発生する。次の演算処理の開始タイミングは、演算処理の処理時間が最も遅い演算処理装置に合わせられる。このため、演算処理装置が実際に消費する電力の見積り値を用いて電力キャッピングを実行する場合、消費電力は抑えられるが、並列計算機による処理性能は低下してしまう。
【０００８】
１つの側面では、本件開示の情報処理装置、演算処理装置および情報処理装置の制御方法は、消費電力を抑えつつ、処理性能が低下することを抑止することを目的とする。
【課題を解決するための手段】
【０００９】
一つの観点によれば、複数の演算処理装置を有する情報処理装置において、演算処理装置は、演算処理を実行する演算処理部と、演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持する累積値保持部と、情報処理装置の電力上限値であるシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部と、電力上限値保持部が保持する電力上限値を、累積値保持部が保持する累積値が超えないように、演算処理装置の電圧と周波数の少なくともいずれか一方を制御する制御部とを有する。
【００１０】
別の観点によれば、演算処理装置は、演算処理を実行する演算処理部と、演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持する累積値保持部と、情報処理装置の電力上限値であるシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部と、電力上限値保持部が保持する電力上限値を、累積値保持部が保持する累積値が超えないように、演算処理装置の電圧と周波数の少なくともいずれか一方を制御する制御部とを有する。
【００１１】
さらなる別の観点によれば、演算処理を実行する複数の演算処理装置を有し、複数の演算処理装置が、演算処理部が実行した演算処理に応じて発生する各イベントに対応する所定の係数値をそれぞれ保持する複数の係数値保持部と、情報処理装置の電力上限値であるシステム電力上限値に対応する各演算処理装置の電力上限値を保持する電力上限値保持部とを有する情報処理装置の制御方法は、演算処理装置が有する累積値保持部が、演算処理部が実行した演算処理に応じて発生する対象イベントの数である対象イベント数と、複数の係数値保持部がそれぞれ保持する係数値との積算値とをそれぞれ加算して得られた累積値を保持し、演算処理装置が有する制御部が、電力上限値保持部が保持する電力上限値を、累積値保持部が保持する累積値が超えないように、演算処理装置の電圧と周波数の少なくともいずれか一方を制御する。
【発明の効果】
【００１２】
本件開示の情報処理装置、演算処理装置および情報処理装置の制御方法は、消費電力を抑えつつ、処理性能が低下することを抑止することができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置、演算処理装置および情報処理装置の制御方法の一実施形態を示す図である。
【図２】図１に示す演算処理装置の動作の一例を示す図である。
【図３】情報処理装置の別の例を示す図である。
【図４】図３に示す演算処理装置の動作の一例を示す図である。
【図５】図１に示す情報処理装置および図３に示す情報処理装置による同期処理の一例を示す図である。
【図６】情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態を示す図である。
【図７】図６に示す電力モニタ部の一例を示す図である。
【図８】図７に示す電力累積部の一例を示す図である。
【図９】図６に示す電力キャッピング制御部の動作の一例を示す図である。
【図１０】図６に示す電圧周波数制御部のＤＦＳ制御による電力キャッピング動作の一例を示す図である。
【図１１】図６に示す電圧周波数制御部のＤＶＦＳ制御による電力キャッピング動作の一例を示す図である。
【図１２】情報処理装置の別の例を示す図である。
【図１３】図６および図１２に示す情報処理装置の構成および電気的特性の一例を示す図である。
【図１４】図６および図１２に示す演算プロセッサの動作モデルの一例を示す図である。
【図１５】図６および図１２に示す演算プロセッサの処理時間の一例を示す図である。
【図１６】情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態におけるサービスプロセッサの一例を示す図である。
【図１７】情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態における演算プロセッサの一例を示す図である。
【図１８】図１７に示す演算プロセッサに接続されるサービスプロセッサの一例を示す図である。
【図１９】図１８に示すばらつき指標値変換テーブルの一例を示す図である。
【図２０】図１８に示す係数値生成部の動作の一例を示す図である。
【図２１】図２０に示すステップＳ３０８で実行する内分処理の一例を示す図である。
【図２２】図１８に示すシステム静的電力生成部の動作の一例を示す図である。
【図２３】図２２に示すステップＳ４０８で実行する内分処理の一例を示す図である。
【図２４】情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態におけるサービスプロセッサの一例を示す図である。
【図２５】図２４に示すシステム静的電力変換テーブルの一例を示す図である。
【図２６】図２４に示すシステム静的電力値補正部の動作の一例を示す図である。
【図２７】図２４に示すシステム静的電力変換テーブルに格納する情報の作成方法の一例を示す図である。
【図２８】情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態におけるサービスプロセッサの一例を示す図である。
【図２９】図２８に示す電力制御部の動作の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を用いて実施形態を説明する。
【００１５】
図１は、情報処理装置、演算処理装置および情報処理装置の制御方法の一実施形態を示す。図１に示す情報処理装置ＩＰＥ１は、複数の演算処理装置１００（１００（１）、１００（２）、１００（３））と、演算処理装置１００の動作を制御する制御装置２００とを有する。例えば、情報処理装置ＩＰＥ１は、ＨＰＣ（High Performance Computing）分野で使用され、ジョブＪＯＢ（データ）を複数に分割し、分割したジョブＪＯＢを複数の演算処理装置１００に出力する。複数の演算処理装置１００は、受信したジョブＪＯＢを並列に実行する。すなわち、情報処理装置ＩＰＥ１は、並列計算機として機能する。演算処理装置１００（１）、１００（２）、１００（３）は、互いに同一または同様の構成を有するため、以下では、演算処理装置１００（１）について説明される。
【００１６】
演算処理装置１００（１）は、演算処理部１、係数値保持部２、累積値保持部３、電力上限値保持部４および制御部５を有する。演算処理部１は、制御装置２００から投入されるジョブ（分割されたデータ）を処理するために演算処理を実行し、演算処理の実行を示すイベント信号ＥＶ（例えば、論理１）を出力する。
【００１７】
イベント信号ＥＶは、固定小数点演算器および浮動小数点演算器等の演算器によりそれぞれ実行される演算処理（加算処理または乗算処理等のイベント）の発生を示す。複数のイベントは、消費電力と関係が深いイベントである対象イベントと、消費電力と関係が浅いイベントである非対象イベントとを含み、対象イベントに対応するイベント信号ＥＶは、消費電力（見積もり値）を算出するために乗算器ＭＵＬにそれぞれ出力される。
【００１８】
例えば、対象イベントの実行により消費される電力は、非対象イベントの実行により消費される電力より大きく、演算処理装置全体の消費電力に影響する。このため、対象イベントは、演算処理装置の消費電力を計算するために重要である。一方、非対象イベントの実行により消費される電力は、演算処理装置全体の消費電力に与える影響が小さく、非対象イベントは、演算処理装置の消費電力の計算から除外することが可能である。
【００１９】
係数値保持部２は、演算処理部１で発生するイベントのうち対象イベントにそれぞれ対応する複数の係数値ＦＡＣＴを保持し、保持している係数値ＦＡＣＴを対応する乗算器ＭＵＬにそれぞれ出力する。なお、複数の係数値ＦＡＣＴは、複数の係数値保持部２で保持されてもよい。例えば、浮動小数点演算器は、固定小数点演算器に比べて消費電力が大きいため、浮動小数点演算に対応する係数値ＦＡＣＴは、固定小数点演算に対応する係数値ＦＡＣＴよりも大きい。すなわち、係数値ＦＡＣＴは、対応するイベント信号ＥＶの論理１（＝値”１”）を、イベント信号ＥＶの生成の契機となった演算処理（イベント）で消費する電力に換算するための重み付けを示す。例えば、各係数値ＦＡＣＴは、複数の演算処理装置１００に共通に設定される。各係数値ＦＡＣＴは、制御装置２００により係数値保持部２に格納される。
【００２０】
各乗算器ＭＵＬは、イベント信号ＥＶの値（”１”または”０”）を係数値ＦＡＣＴに乗じて得た積算値ＭＵＬＶを加算器ＡＤＤに出力する。各積算値ＭＵＬＶは、情報処理装置ＩＰＥ１に搭載される複数の演算処理装置１００のうち、平均的な電気的特性を有する演算処理装置１００（以下、標準演算処理装置と称する）が１回のイベントで消費する電力を示す。加算器ＡＤＤは、乗算器ＭＵＬから出力される積算値ＭＵＬＶを加算し、加算により得た加算値ＡＤＤＶを累積値保持部３に出力する。例えば、乗算器ＭＵＬによる乗算および加算器ＡＤＤによる加算は、クロックサイクル毎に実行され、加算値ＡＤＤＶは、標準演算処理装置がクロックサイクル毎に消費する電力（リーク電力等の静的電力を含まない動的電力）を示す。
【００２１】
累積値保持部３は、加算値ＡＤＤＶを所定の期間累積して保持し、所定の期間毎に、累積した値を動的電力のモニタ値ＰＭＯＮとして制御部５に出力する。モニタ値ＰＭＯＮは、イベント信号ＥＶの値と係数値ＦＡＣＴとの積算値をそれぞれ加算して得られる累積値の一例である。モニタ値ＰＭＯＮは、標準演算処理装置が所定の期間に消費する電力値（複数の演算処理装置１００で消費される動的電力の平均値）を示し、演算処理装置１００（１）が所定の期間に消費する実際の電力値とは異なる。換言すれば、計数値ＦＡＣＴは、標準演算処理装置が消費する動的電力をモニタ値ＰＭＯＮが示すように設定される。
【００２２】
なお、累積保持部３がクロックサイクル毎の加算値ＡＤＤＶを所定の期間累積する代わりに、演算処理部１が対象イベントに対応するイベント信号ＥＶの値を所定の期間、カウンタ等により累積してもよい。そして、累積したイベント信号ＥＶの値である対象イベント数と係数値ＦＡＣＴとを乗算器ＭＵＬにより乗じてもよい。この場合、累積値保持部３は、標準演算処理装置が所定の期間に消費する動的電力を示す加算値ＡＤＤＶを保持し、保持している加算値ＡＤＤＶをモニタ値ＰＭＯＮとして制御部５に出力する。但し、イベント信号ＥＶの値を累積する場合、イベント信号毎にカウンタ等が設けられるため、累積値保持部３で加算値ＡＤＤＶを累積する場合に比べて回路規模が大きくなる。
【００２３】
電力上限値保持部４は、各演算処理装置１００に均等に割り当てられる動的電力の最大値である電力上限値ＰＬＩＭＩＴ（複数の演算処理装置１００に共通）を保持する。電力上限値ＰＬＩＭＩＴは、制御装置２００により電力上限値保持部４に格納される。
【００２４】
例えば、電力上限値ＰＬＩＭＩＴは、情報処理装置ＩＰＥ１で消費可能な最大の電力値であるシステム電力上限値から情報処理装置ＩＰＥ１で消費されるシステム静的電力値（リーク電力値）を減じた値を、演算処理装置１００の数で除することで算出される。以下では、システム電力上限値からシステム静的電力値を減じた値は、システム動的電力上限値とも称される。ここで、演算処理装置１００に搭載されるトランジスタの数は、情報処理装置ＩＰＥ１内で支配的であるとする。この場合、情報処理装置ＩＰＥ１で消費されるシステム静的電力値は、情報処理装置ＩＰＥ１の各演算処理装置１００で消費される静的電力値の総和を用いることができる。例えば、情報処理装置ＩＰＥ１で消費されるシステム静的電力値は、標準演算処理装置で消費される静的電力値に、情報処理装置ＩＰＥ１に搭載される演算処理装置１００の数を乗じることにより求められる。
【００２５】
情報処理装置ＩＰＥ１で消費されるシステム静的電力値は、プロセッサ１００のチップ温度によって変動する。しかしながら、電力上限値ＰＬＩＭＩＴの算出に使用するシステム静的電力値は、電力上限値ＰＬＩＭＩＴ付近の動的電力を消費する場合のチップ温度での値があればよい。
【００２６】
制御部５は、所定の期間毎に生成されるモニタ値ＰＭＯＮが電力上限値ＰＬＩＭＩＴを超えないように、演算処理装置１００（１）の電源電圧と周波数との少なくとも一方を制御する。図１に示す例では、制御部５は、所定の期間毎に生成されるモニタ値ＰＭＯＮが電力上限値ＰＬＩＭＩＴを超えないように、演算処理装置１００（１）の周波数を制御する周波数制御信号ＦＲＣＮＴを生成することで、いわゆる電力キャッピングを実行する。周波数制御信号ＦＲＣＮＴは、ＰＬＬ（Phase Locked Loop）等のクロック生成回路に供給される。例えば、制御部５は、モニタ値ＰＭＯＮが電力上限値ＰＬＩＭＩＴを超えたとき、演算処理装置１００（１）を動作させるクロック周波数を下げるための周波数制御信号ＦＲＣＮＴを出力する。すなわち、制御部５は、演算処理装置１００（１）の動作状態に応じてクロック周波数を変更するＤＦＳ（Dynamic Frequency Scaling）を実行する。
【００２７】
なお、制御部５は、クロック周波数を下げる場合、演算処理装置１００に供給される電源電圧をクロック周波数とともに下げる制御（ＤＶＦＳ；Dynamic Voltage and Frequency Scaling）を実行してもよい。ここで、演算処理装置１００の動的電力は、電源電圧の変化量の二乗に比例して変化するため、ＤＶＦＳ制御を実行する場合、累積値保持部３は、電源電圧の変動分に応じてモニタ値ＰＭＯＮを補正することが望ましい。これにより、ＤＶＦＳ制御を実行する場合に、後述する図２における複数の演算処理装置１００間での処理時間Ｔ２の誤差を、モニタ値ＰＭＯＮを補正しない場合に比べて小さくすることができる。なお、演算処理装置１００（１）は、累積値保持部３と制御部５との間に、累積値保持部３から出力されるモニタ値ＰＭＯＮを補正し、補正したモニタ値ＰＭＯＮを制御部５に出力する補正部を有してもよい。
【００２８】
例えば、累積値保持部３または補正部は、ＤＶＦＳ制御により基準の電源電圧Ｖ０が電源電圧Ｖに変化する場合、モニタ値ＰＭＯＮに（Ｖ／Ｖ０）２を乗じることでモニタ値ＰＭＯＮを補正する。この際、図２に示す処理時間Ｔ２の誤差を小さくするために、ＤＶＦＳ制御により切り替えるクロック周波数と電源電圧との設定仕様を、複数の演算処理装置１００に共通に設定することが望ましい。なお、演算処理装置１００の電気的特性のばらつきに応じて基準の電源電圧Ｖ０を変更する場合、値Ｖ／Ｖ０が互いに等しくなるようにクロック周波数と電源電圧との設定仕様を作成することで、図２に示す処理時間Ｔ２に差が生じることを抑止することができる。
【００２９】
累積値保持部３が制御部５に出力するモニタ値ＰＭＯＮは、演算処理装置１００が消費する静的電力値（リーク電力値）を含まない。換言すれば、演算処理装置１００は、電気的特性のばらつき、電源電圧およびチップ温度等に応じて静的電力を算出する回路と、算出した静的電力をモニタ値ＰＭＯＮに加算する回路とを持たない。このため、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、プロセッサ１００の回路規模を小さくすることができる。
【００３０】
制御装置２００は、各演算処理装置１００に転送する係数値ＦＡＣＴを保持する係数値保持部７と、各演算処理装置１００に転送する演算処理装置１００の電力上限値ＰＬＩＭＩＴを保持する電力上限値保持部８を有する。係数値ＦＡＣＴおよび電力上限値ＰＬＩＭＩＴは、情報処理装置ＩＰＥ１が起動される前に、係数値保持部７および電力上限値保持部８にそれぞれ格納される。そして、係数値保持部７および電力上限値保持部８にそれぞれ格納された係数値ＦＡＣＴおよび電力上限値ＰＬＩＭＩＴは、情報処理装置ＩＰＥ１の起動時（パワーオン時およびリセット解除時）に制御装置２００から各演算処理装置１００に転送される。電力上限値ＰＬＩＭＩＴは、制御装置２００の外部で算出され、制御装置２００に転送されてもよく、情報処理装置ＩＰＥ１に許容される最大の電力値であるシステム電力上限値等に基づいて、制御装置２００が算出してもよい。
【００３１】
図２は、図１に示す演算処理装置１００（１）、１００（２）、１００（３）の動作の一例を示す。図２は、演算処理装置１００（１）、１００（２）、１００（３）が、制御装置２００から分散して投入されるジョブに基づき、データ処理を並列に実行する例を示す。図２に示す例では、演算処理装置１００（１）は、標準演算処理装置より静的電力が小さく、演算処理装置１００（２）は、標準演算処理装置と同等の静的電力を消費し、演算処理装置１００（３）は、標準演算処理装置より静的電力が大きいとする。例えば、静的電力は、演算処理装置１００に搭載されるトランジスタの閾値電圧（電気的特性）が低いほど大きくなる。以下では、トランジスタの閾値電圧等、演算処理装置１００を製造する製造工程に起因する電気的特性のばらつきは、プロセスばらつきとも称される。
【００３２】
図２（Ａ）は、電力キャッピングを実行しない場合の各演算処理装置１００（１）、１００（２）、１００（３）の消費電力の推移を示す。電力キャッピングを実行しない場合、演算処理装置１００（１）、１００（２）、１００（３）は、互いに同じクロック周波数を用いて、クロック周波数を変更せずに動作するため、ある演算処理を実行するために掛かる処理時間Ｔ１は、互いに同じである。
【００３３】
図２（Ｂ）は、電力キャッピングを実行する場合の各演算処理装置１００（１）、１００（２）、１００（３）の仮想の消費電力の推移を示す。ここで、仮想の消費電力は、図１に示す累積値保持部３が出力するモニタ値ＰＭＯＮにより示される動的電力と、標準演算処理装置が消費する静的電力との和により示される。演算処理装置１００（１）、１００（２）、１００（３）の各累積値保持部３が出力するモニタ値ＰＭＯＮは、標準演算処理装置が所定期間に消費する動的電力を示す。このため、モニタ値ＰＭＯＮは、演算処理装置１００（１）、１００（２）、１００（３）の実際の電気的特性に拘わらずほぼ同じになる。
【００３４】
電力キャッピングを実行する場合、演算処理装置１００（１）、１００（２）、１００（３）の制御部５は、モニタ値ＰＭＯＮ（動的電力値）が電力上限値ＰＬＩＭＩＴを超えた場合、クロック周波数を下げる。クロック周波数を下げた場合、クロックサイクルの周期は長くなるため、演算処理装置１００（１）、１００（２）、１００（３）が、ある演算処理を実行するために掛かる処理時間Ｔ２は、図２（Ａ）に示す処理時間Ｔ１より長くなる。しかしながら、演算処理装置１００（１）、１００（２）、１００（３）の制御部５は、プロセスばらつきに依存しない共通の係数値ＦＡＣＴに基づいて生成されるモニタ値ＰＭＯＮを利用して電力キャッピングを実行する。このため、処理時間Ｔ２は、電力キャッピングを実行しない場合の処理時間Ｔ１より長くなるが、演算処理装置１００（１）、１００（２）、１００（３）のプロセスばらつきに依存せずに互いにほぼ同じになる。
【００３５】
図２（Ｃ）は、電力キャッピングを実行する場合の演算処理装置１００（１）、１００（２）、１００（３）の実際の消費電力の推移を示す。演算処理装置１００（１）、１００（２）、１００（３）の実際の静的電力は、プロセスばらつきに依存して互いに異なる。
【００３６】
標準演算処理装置より静的電力が小さい演算処理装置１００（１）は、標準演算処理装置と同等の電気的特性を有する演算処理装置１００（２）において電力キャッピングされる電力値より小さい電力値で電力キャッピングが実行される。これに対して、標準演算処理装置より動的電力が大きい演算処理装置１００（３）は、演算処理装置１００（２）において電力キャッピングされる電力値より大きい電力値で電力キャッピングが実行される。
【００３７】
このように、図１に示す情報処理装置ＩＰＥ１は、イベントの発生に伴い消費される電力を示すモニタ値ＰＭＯＮを算出し、算出したモニタ値ＰＭＯＮに基づいて、電力キャッピングを実行する。イベントの発生に伴い消費される電力は、静的電力を含まない動的電力であり、動的電力は、静的電力に比べて、電源電圧の変化およびチップ温度の変化による変動が少ない。これにより、電力キャッピングに伴うクロック周波数の変更を演算処理装置１００（１）、１００（２）、１００（３）間で互いに同じにすることができる。したがって、ジョブ等の処理に掛かる処理時間を演算処理装置１００（１）、１００（２）、１００（３）間で互いに同等にすることができる。
【００３８】
したがって、演算処理装置１００（１）、１００（２）、１００（３）の実際のプロセスばらつきに基づく電力上限値により電力キャッピングを実行する場合に比べて、並列処理を互いに同期して実行するためのバリア同期の待ち時間の発生を低減することができる。この結果、電力キャッピングによりクロック周波数を制御する場合にも、情報処理装置ＩＰＥ１の処理性能の低下を抑止することができる。
【００３９】
さらに、累積値保持部３は、演算処理装置１００（１）、１００（２）、１００（３）のプロセスばらつきに依存しない共通の係数値ＦＡＣＴを用いて、動的電力を示すモニタ値ＰＭＯＮを算出する。これにより、電気的特性が互いに異なる演算処理装置１００（１）、１００（２）、１００（３）において、各累積値保持部３が出力するモニタ値ＰＭＯＮを互いに同じにすることができる。また、標準演算処理装置が消費する動的電力をモニタ値ＰＭＯＮが示すように係数値ＦＡＣＴを設定することで、演算処理装置１００（１）、１００（２）、１００（３）を標準演算処理装置と見なして電力キャッピングを実行することができる。これにより、演算処理装置１００（１）、１００（２）、１００（３）が実際に消費する動的電力の平均値を、標準演算処理装置が消費する動的電力値とほぼ同じにすることができる。この結果、演算処理装置１００（１）、１００（２）、１００（３）が消費する電力の総和が、情報処理装置ＩＰＥ１で許容された電力の上限値を超えることを抑止することができる。すなわち、実際に消費される電力を用いずに電力キャッピングを実行する場合にも、情報処理装置ＩＰＥ１で許容された電力の上限値を超えることを抑止することができる。
【００４０】
図３は、情報処理装置の別の例を示す。図１と同一または同様の要素については、詳細な説明は省略する。演算処理装置１０００（１）、１０００（２）、１０００（３）は、互いに同一または同様の構成を有するため、以下では、演算処理装置１０００（１）について説明される。
【００４１】
図３に示す情報処理装置ＩＰＥ０１は、複数の演算処理装置１０００（１０００（１）、１０００（２）、１０００（３））と、演算処理装置１０００の動作を制御する制御装置２０００とを有する。演算処理装置１０００（１）は、図１に示す演算処理装置１００と同様の演算処理部１、係数値保持部２、累積値保持部３、電力上限値保持部４および制御部５に加えて、補正部６を有する。
【００４２】
係数値保持部２は、制御装置２０００からではなく、演算処理装置１０００毎に設けられたＲＯＭ（Read Only Memory）から出力される係数値ＦＡＣＴを保持する。係数値保持部２が保持する係数値ＦＡＣＴは、演算処理装置１０００毎に相違し、各演算処理装置１０００のプロセスばらつきを応じて設定される。このため、加算器ＡＤＤが出力する加算値ＡＤＤＶは、各演算処理装置１０００がクロックサイクル毎に消費する実際の電力（リーク電力等の静的電力を含まない動的電力）の見積もり値を示す。
【００４３】
補正部６は、累積値保持部３から出力されるモニタ値ＰＭＯＮ（動的電力値）を、演算処理装置１０００（１）に供給される電源電圧値ＶＯＬＴに基づいて補正する。また、補正部６は、ＲＯＭから出力される静的電力値ＰＬＥＡＫを、電源電圧値ＶＯＬＴと演算処理装置１０００（１）の温度ＴＥＭＰとに基づいて補正する。静的電力値ＰＬＥＡＫは、演算処理装置１０００の電気的特性に基づいて、演算処理装置１０００毎に設定される。そして、補正したモニタ値ＰＭＯＮに、補正した静的電力値ＰＬＥＡＫを加算して得た電力値ＰＴＯＴＡＬを制御部５に出力する。制御部５は、所定の期間毎に生成される電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超えないように、演算処理装置１０００（１）の周波数を制御する周波数制御信号ＦＲＣＮＴを生成し、電力キャッピングを実行する。
【００４４】
制御装置２０００は、図１に示す係数値保持部７を持たず、電力上限値保持部８を有する。電力上限値保持部４に保持される電力上限値ＰＬＩＭＩＴＴは、情報処理装置ＩＰＥ０１が各演算処理装置１０００に均等に割り当て可能な消費電力（動的電力＋静的電力）の最大値であり、図１に示す動的電力の電力上限値ＰＬＩＭＩＴと異なる。
【００４５】
図４は、図３に示す演算処理装置１０００の動作の一例を示す。図１と同様の動作については、詳細な説明は省略する。演算処理装置１０００（１）、１０００（２）、１０００（３）のそれぞれ電気的特性は、図１に示す演算処理装置１００（１）、１００（２）、１０３（３）のそれぞれの電気的特性と同様である。すなわち、消費電力は、演算処理装置１０００（１）、１０００（２）、１０００（３）の順で大きくなる。
【００４６】
図４（Ａ）は、電力キャッピングを実行しない場合の各演算処理装置１０００（１）、１０００（２）、１０００（３）の消費電力の推移を示し、図２（Ａ）と同様の傾向を示す。電力キャッピングを実行しない場合、演算処理装置１０００（１）、１０００（２）、１０００（３）のクロック周波数は互いに同じである。このため、演算処理装置１０００（１）、１０００（２）、１０００（３）が、ある演算処理を実行するために掛かる処理時間Ｔ１ａは、互いに同じである。
【００４７】
図４（Ｂ）は、電力キャッピングを実行する場合の各演算処理装置１０００（１）、１０００（２）、１０００（３）の消費電力の推移を示す。図４（Ｂ）に示す消費電力の推移は、図３に示す補正部６が出力する電力値ＰＴＯＴＡＬにより示され、各演算処理装置１０００（１）、１０００（２）、１０００（３）が実際に消費する電力値にほぼ等しい。
【００４８】
電力キャッピングを実行する場合、演算処理装置１０００（１）、１０００（２）、１０００（３）の制御部５は、電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超えた場合、クロック周波数を下げる。図４に示す例では、演算処理装置１０００（３）は、時刻Ｔ１０で電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超え、演算処理装置１０００（２）は、時刻Ｔ１１で電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超える。演算処理装置１０００（１）の電力値ＰＴＯＴＡＬは、電力上限値ＰＬＩＭＩＴＴを超えない。
【００４９】
電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超える時刻が早いほど、クロック周波数を下げて演算処理を実行する時間が長くなる。この結果、演算処理装置１０００（３）が、ある演算処理を実行するために掛かる処理時間Ｔ２ａ（１０００（３））は、図４（Ａ）に示す処理時間Ｔ１ａに比べて最も長くなる。演算処理装置１０００（２）が、ある演算処理を実行するために掛かる処理時間Ｔ２ａ（１０００（２））は、処理時間Ｔ２ａ（１０００（３））よりも短いが、処理時間Ｔ１ａに比べて長くなる。電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超えない演算処理装置１０００（１）の処理時間Ｔ２ａ（１０００（１））は、処理時間Ｔ１ａと同じである。
【００５０】
したがって、演算処理装置１０００で実際に消費される電力に基づいて電力キャッピングを実行する場合、演算処理装置１０００のプロセスばらつきに応じて、処理時間Ｔ２ａがばらつく。この結果、図５（Ｂ）に示すように、同期処理において同期待ちが発生し、情報処理装置の処理性能が低下する。
【００５１】
図５は、図１に示す情報処理装置ＩＰＥ１および図３に示す情報処理装置ＩＰＥ０１による同期処理の一例を示す。図５（Ａ）は、図１に示す情報処理装置ＩＰＥ１による同期処理の例を示し、図５（Ｂ）は、図３に示す情報処理装置ＩＰＥ０１による同期処理の例を示す。情報処理装置ＩＰＥ１、ＩＰＥ０１は、ともに電力キャッピングを実行する。
【００５２】
図１に示す制御装置２００は、演算処理装置１００（１）、１００（２）、１００（３）に処理Ａ、処理Ｂおよび処理Ｃを順に並列に実行させる。制御装置２００は、処理Ａ、処理Ｂ、処理Ｃの各々において、全ての演算処理装置１００（１）、１００（２）、１００（３）の処理が完了するまで次の処理を開始せずに待つ同期処理を実行する。同様に、図３に示す制御装置２０００は、演算処理装置１０００（１）、１０００（２）、１０００（３）に処理Ａ、処理Ｂおよび処理Ｃを順に並列に実行させる。制御装置２０００は、処理Ａ、処理Ｂ、処理Ｃの各々において、全ての演算処理装置１０００（１）、１０００（２）、１０００（３）の処理が完了するまで次の処理を開始せずに待つ同期処理を実行する。
【００５３】
図５（Ａ）では、演算処理装置１００（１）、１００（３）が実行する処理（例えば、処理Ａ）に掛かる処理時間は、標準演算処理装置と同等のプロセスばらつきを有する演算処理装置１００（２）が実行する処理（例えば、処理Ａ）に掛かる処理時間と同等になる。このため、バリア同期の待ち時間を発生させることなく次の処理（例えば、処理Ｂ）を開始することができる。この結果、電力キャッピングによりクロック周波数を制御する場合にも、各処理Ａ、Ｂ、Ｃの処理時間を演算処理装置１００（１）、１００（２）、１００（３）で揃えることができ、バリア同期の待ち時間（同期待ち）の発生を抑止することができる。したがって、情報処理装置ＩＰＥ１の処理性能の低下を抑止することができる。
【００５４】
図５（Ｂ）では、各処理Ａ、Ｂ、Ｃに掛かる処理時間は、プロセスばらつきに依存して消費される電力に応じて、演算処理装置１０００（１）、１０００（２）、１０００（３）毎に相違する。閾値電圧が高く消費電力が相対的に小さい演算処理装置１０００（１）では、電力キャッピングによるクロック周波数の低下が発生しないため、処理が最も早く完了する。一方、閾値電圧が低く消費電力が相対的に大きい演算処理装置１０００（３）では、電力キャッピングによりクロック周波数が下げられるため、処理の完了が遅くなる。このため、同期待ちが発生し、情報処理装置ＩＰＥ０１の処理性能は低下する。
【００５５】
以上、図１から図５に示す実施形態では、互いに同じ処理を実行する複数の演算処理装置１００は、プロセスばらつきに拘わらず、互いに等しいモニタ値ＰＭＯＮを生成する。例えば、互いに等しいモニタ値ＰＭＯＮは、共通の係数値ＦＡＣＴを用いることで生成することができる。そして、各演算処理装置１００は、互いに等しいモニタ値ＰＭＯＮを動的電力の上限値である電力上限値ＰＬＩＭＩＴと比較することで電力キャッピングを実行する。これにより、演算処理装置１００による演算処理の処理時間を、プロセスばらつきに拘わらず同等にすることができ、並列処理を互いに同期して実行するためのバリア同期の待ち時間の発生を低減することができる。この結果、電力キャッピングによりクロック周波数を制御する場合にも、消費電力を抑えつつ、処理性能が低下することを抑止することができる。
【００５６】
また、各演算処理装置１００は、平均的な電気的特性を有する標準演算処理装置で消費する動的電力値と同等のモニタ値ＰＭＯＮを生成するため、各演算処理装置１００を標準演算処理装置と見なして電力キャッピングを実行することができる。これにより、複数の演算処理装置１００が実際に消費する動的電力の平均値をモニタ値ＰＭＯＮとして生成することができる。したがって、複数の演算処理装置１００で消費する電力の総和が、情報処理装置ＩＰＥ１で許容された電力の上限値を超えることを抑止することができる。すなわち、実際に消費される電力を用いずに電力キャッピングを実行する場合にも、情報処理装置ＩＰＥ１で許容された電力の上限値を超えることを抑止することができ、情報処理装置ＩＰＥ１の信頼性が低下することを抑止することができる。
【００５７】
さらに、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、演算処理装置１００の回路規模を小さくすることができる。
【００５８】
図６は、情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態を示す。図１に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。
【００５９】
図６に示す情報処理装置ＩＰＥ２は、複数の演算プロセッサ１００Ａ（１００Ａ（１）、１００Ａ（２）、１００Ａ（３））と、演算プロセッサ１００Ａの動作を制御するサービスプロセッサ２００Ａとを有する。演算プロセッサ１００Ａは、演算処理装置の一例であり、サービスプロセッサ２００Ａは、制御装置の一例である。以下では、演算プロセッサ１００Ａ（１００Ａ（１）、１００Ａ（２）、１００Ａ（３））は、単にプロセッサ１００Ａ（１００Ａ（１）、１００Ａ（２）、１００Ａ（３））とも称される。
【００６０】
例えば、情報処理装置ＩＰＥ２は、図1に示す情報処理装置ＩＰＥ１と同様に、ＨＰＣ分野で使用され、並列計算機として機能する。プロセッサ１００Ａ（１）、１００Ａ（２）、１００Ａ（３）は、互いに同一または同様の構成を有するため、以下では、プロセッサ１００Ａ（１）について説明される。
【００６１】
プロセッサ１００Ａ（１）は、機能ブロック部１０、電力モニタ部１２、電力キャッピング制御部１４、電圧周波数制御部１６、ＰＬＬ１８および通信Ｉ／Ｆ（Interface）２０、２２を有する。
【００６２】
機能ブロック部１０は、演算処理装置１００Ａ（１）の機能を実現する複数のプロセッサコアＣＯＲＥ（ＣＯＲＥ１、ＣＯＲＥ２、...）、キャッシュメモリＣＡＣＨＥおよびメモリアクセスコントローラＭＣＮＴ等の機能ブロックを有する。プロセッサコアＣＯＲＥは、サービスプロセッサ２００Ａから発行されるジョブＪＯＢに基づいて演算処理を実行する。キャッシュメモリＣＡＣＨＥは、演算処理装置１００Ａに接続される図示しない主記憶装置から読み出されるデータを保持するキャッシュ記憶部と、キャッシュ記憶部に保持するデータを制御するキャッシュ制御部とを有する。メモリアクセスコントローラＭＣＮＴは、プロセッサコアＣＯＲＥから出力されるメモリアクセス要求に基づいて主記憶装置のアクセスを制御する。キャッシュメモリＣＡＣＨＥは、キャッシュメモリ部の一例であり、メモリアクセスコントローラＭＣＮＴは、メモリアクセス制御部の一例である。
【００６３】
プロセッサコアＣＯＲＥ、キャッシュメモリＣＡＣＨＥおよびメモリアクセスコントローラＭＣＮＴ等の機能ブロックの各々は、内部で実行する処理および動作等のイベントの発生を示すイベント信号ＥＶを出力する。機能ブロック部１０は、イベント信号ＥＶのうち、電力の消費と関係が深いイベントである対象イベントの発生を示すイベント信号ＥＶを電力モニタ部１２に出力する。
【００６４】
電力モニタ部１２は、サービスプロセッサ２００Ａから転送される複数の係数値ＦＡＣＴを保持する複数のレジスタ１２２を有する。レジスタ１２２は、係数値保持部の一例である。複数の係数値ＦＡＣＴは、電力モニタ部１２が受けるイベント信号ＥＶ（対象イベント）に対応しており、対象イベントの実行により消費される電力を計算するために使用される。
【００６５】
電力モニタ部１２は、機能ブロック部１０から受けるイベント信号ＥＶとレジスタ１２２に保持された係数値ＦＡＣＴとに基づいて、プロセッサ１００Ａ（１）で消費される動的電力のモニタ値ＰＭＯＮを所定の期間毎に生成する。そして、電力モニタ部１２は、生成したモニタ値ＰＭＯＮをバリッド信号ＶＡＬＩＤとともに電力キャッピング制御部１４に出力する。電力モニタ部１２の例は、図７に示される。なお、モニタ値ＰＭＯＮは、プロセッサ１００Ａ（１）で実際に消費される動的電力値ではなく、平均的な電気的特性を有するプロセッサ１００Ａで消費される動的電力値（推定値）である。以下では、平均的な電気的特性を有するプロセッサ１００Ａは、標準プロセッサとも称される。なお、ＤＶＦＳ制御を実行する場合、図１での説明と同様に、電力モニタ部１２は、電源電圧の変動分に応じてモニタ値ＰＭＯＮに（Ｖ／Ｖ０）２を乗じることでモニタ値ＰＭＯＮを補正することが望ましい。また、プロセッサ１００Ａ（１）は、電力モニタ部１２と電力キャッピング制御部１４との間に、電力モニタ部１２から出力されるモニタ値ＰＭＯＮを補正し、補正したモニタ値ＰＭＯＮを電力キャッピング制御部１４に出力する補正部を有してもよい。
【００６６】
電力キャッピング制御部１４は、サービスプロセッサ２００Ａから転送される電力上限値ＰＬＩＭＩＴを保持するレジスタ１４２を有する。電力上限値ＰＬＩＭＩＴは、情報処理装置ＩＰＥ２で消費可能な最大の電力値であるシステム電力上限値から情報処理装置ＩＰＥ２で消費される静的電力値（リーク電力値）を差し引いた値を、演算処理装置１００Ａの数で除することで予め算出される。電力キャッピング制御部１４は、バリッド信号ＶＡＬＩＤに同期して電力モニタ部１２から出力されるモニタ値ＰＭＯＮが示す動的電力値を受ける。そして、電力キャッピング制御部１４は、モニタ値ＰＭＯＮがレジスタ１４２に保持された電力上限値ＰＬＩＭＩＴを超えた場合、クロック周波数を下げるためにダウン信号ＤＯＷＮを電圧周波数制御部１６に出力する。また、電力キャッピング制御部１４は、クロック周波数を上げる場合、アップ信号ＵＰを電圧周波数制御部１６に出力する。電力キャッピング制御部１４の動作の例は、図９に示される。
【００６７】
電圧周波数制御部１６は、例えば、プロセッサ１００Ａ（１）に供給される電源電圧とクロック周波数とを、プロセッサ１００Ａ（１）の動作状況に基づいて変更するＤＶＦＳ制御を実行する。ＤＶＦＳ制御では、電圧周波数制御部１６は、電源電圧を上げた後、クロック周波数を上げ、クロック周波数を下げた後、電源電圧を下げる。電圧周波数制御部１６は、電源電圧を変更する場合、通信Ｉ／Ｆ２０を介してサービスプロセッサ２００Ａに電源電圧を変更する指示を出力する。電圧周波数制御部１６は、アップ信号ＵＰを受けたときにクロック周波数を上げるための制御信号をＰＬＬに出力し、ダウン信号ＤＯＷＮを受けたときにクロック周波数を下げるための制御信号をＰＬＬに出力する。なお、プロセッサ１０１Ａは、電圧周波数制御部１６の代わりに周波数制御部を有し、ＤＦＳ制御を実行してもよい。
【００６８】
通信Ｉ／Ｆ２０は、通信線を介してサービスプロセッサ２００Ａの通信Ｉ／Ｆ３８に接続され、電源電圧の変更指示をサービスプロセッサ２００Ａに送信する。通信Ｉ／Ｆ２２は、Ｉ２Ｃバス等を介してサービスプロセッサ２００Ａの通信Ｉ／Ｆ４０および他のプロセッサ１００Ａ（２）、１００Ａ（３）に接続される。各プロセッサ１００Ａの通信Ｉ／Ｆ２２は、サービスプロセッサ２００Ａから受ける係数値ＦＡＣＴを、レジスタ１２２に格納するために電力モニタ部１２に出力する。また、各プロセッサ１００Ａの通信Ｉ／Ｆ２２は、サービスプロセッサ２００Ａから受ける電力上限値ＰＬＩＭＩＴを、レジスタ１４２に格納するために電力キャッピング制御部１４に出力する。
【００６９】
サービスプロセッサ２００Ａは、ジョブ発行制御部３０、電源制御部３２、電力制御部３４および通信Ｉ／Ｆ３６、３８、４０を有する。電力制御部３４は、係数値ＦＡＣＴを保持するレジスタ３４１と、電力上限値ＰＬＩＭＩＴを保持するレジスタ３４２とを有する。係数値ＦＡＣＴおよび電力上限値ＰＬＩＭＩＴは、情報処理装置ＩＰＥ２の起動時に、設定情報ＳＥＴＩＮＦとしてサービスプロセッサ２００Ａに供給され、レジスタ３４１、３４２にそれぞれ格納される。レジスタ３４１に格納された係数値ＦＡＣＴとレジスタ３４２に格納された上限値ＰＬＩＭＩＴとは、通信Ｉ／Ｆ４０を介して各プロセッサ１００Ａに転送され、複数のプロセッサ１００Ａに共通に使用される。
【００７０】
ジョブ発行制御部３０は、ジョブＪＯＢ（データ）を各プロセッサ１００Ａに分配し、各プロセッサ１００ＡにジョブＪＯＢを並列に実行させる。電源制御部３２は、通信Ｉ／Ｆ３８を介して各プロセッサ１００Ａから電源電圧を変更する指示を受け、通信Ｉ／Ｆ３６を介して、指示を受けたプロセッサ１００Ａに対応する電圧生成器ＶＧＥＮに電源電圧を変更する指示を出力する。例えば、通信Ｉ／Ｆ３８は、Ｉ２Ｃバスを介して電圧生成器ＶＧＥＮに接続される。各プロセッサ１００Ａに対応して設けられる電圧生成器ＶＧＥＮは、例えば、ＤＣ（Direct Current）／ＤＣコンバータであり、電源制御部３２から指示された電源電圧を生成し、生成した電源電圧を対応するプロセッサ１００Ａに供給する。
【００７１】
以下、係数値ＦＡＣＴの算出方法が説明される。
【００７２】
動的電力のモニタ値ＰＭＯＮは、式（１）に示すように、情報処理装置ＩＰＥ１に搭載される全てのプロセッサ１００の動的電力値の平均になることが望ましい。式（１）において、符号Ｐ［ｉ］は、情報処理装置ＩＰＥ１に搭載されるＮ個のプロセッサ１００のうちｉ番目のプロセッサ１００の実際の動的電力値を示し、符号Ｎは、情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の数を示す。プロセッサ１００の実際の動的電力値は、プロセッサの製造条件の変動によるプロセスばらつきにより変化する。
ＰＭＯＮ＝ΣｉＰ［ｉ］／Ｎ  ‥‥（１）
次に、モニタ値ＰＭＯＮを情報処理装置ＩＰＥ１に搭載される全てのプロセッサ１００の動的電力値の平均にするための係数値ＦＡＣＴの２つの算出方法が示される。
【００７３】
（係数値ＦＡＣＴの算出方法１：動的電力のばらつきの確率分布から算出）
情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の数が十分大きく、動的電力のばらつきを統計的に扱っても誤差が無視できる程度に小さい場合がある。この場合、回路シミュレータのデバイスモデルまたは大量のサンプルから取得する電力ばらつきの確率分布特性（確率密度関数）から動的電力の平均値を生成する係数値ＦＡＣＴを算出することができる。
【００７４】
まず、情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の動的電力の平均値Ｐ’は式（２）で示される。式（２）において、符号Ｖ０は電源電圧Ｖ０を示し、符号Ｐｒ（Ｄ）は、プロセッサ１００内に搭載される素子の遅延量Ｄのばらつきに対する確率密度関数（電源電圧Ｖ０で正規化した素子の遅延量Ｄのプロセッサの確率密度）を示す。符号Ｐ（Ｄ）は、電源電圧Ｖ０におけるプロセッサ１００の動的電力を示し、符号Ｖ（Ｄ）は、遅延量Ｄのばらつきに応じて電源電圧を調整する場合のプロセッサ１００に与える電源電圧を示す。符号Ｄ＿ｍｉｎは、動作試験にパスしたプロセッサ１００内の素子が取り得る遅延量Ｄの最小値を示す。符号Ｄ＿ｍａｘは、動作試験にパスしたプロセッサ１００内の素子が取り得る遅延量Ｄの最大値を示す。ここで、動的電力値の温度依存性は、無視できるほど小さく、動的電力値が電源電圧の２乗に比例するとする。
【００７５】
式（２）において、「（Ｖ（Ｄ）／Ｖ０）２」は、電源電圧が「Ｖ（Ｄ）」の場合の動的電力の補正項であり、式（２）の分母は、素子の遅延量Ｄを狭めることによる確率密度関数Ｐｒ（Ｄ）の補正項である。
【００７６】
【数１】
2017102790.tif 000003
【００７７】
プロセッサ１００の製造前（設計期間等）に係数値ＦＡＣＴを求める場合、動的電力の平均値Ｐ’に相当する電力ばらつきを有する消費電力ライブラリが生成される。そして、生成された消費電力ライブラリを用いて実行した電力解析結果を用いて係数値のチューニングが実施され、チューニングにより得られた係数値が共通の係数値ＦＡＣＴとして使用される。
【００７８】
プロセッサ１００の製造後（設計後）に係数値ＦＡＣＴを求める場合、動的電力の平均値Ｐ’に相当する電力ばらつきを有するプロセッサ１００の電気的特性を利用して係数値のチューニングが実施される。そして、チューニングにより得られた係数値が共通の係数値ＦＡＣＴとして使用される。
【００７９】
（係数値ＦＡＣＴの算出方法２：各プロセッサ１００の電力ばらつきを反映した係数値から算出）
算出方法２は、情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の電力ばらつきに関連する情報に基づいて係数値ＦＡＣＴを求める方法である。例えば、情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の数が所定数より少なく、統計処理では誤差が大きくなる場合、算出方法２を用いて係数ＦＡＣＴが求められる。
【００８０】
まず、情報処理装置ＩＰＥ１に搭載される全てのプロセッサ１００について、プロセッサ１００毎の動的電力に対する動的電力のモニタ値ＰＭＯＮを生成するための係数値ＦＡＣＴのチューニングが、予め実施される。動的電力のモニタ値ＰＭＯＮの性質から式（３）が成立する。式（３）において、符号Ｐ［ｉ］は、情報処理装置ＩＰＥ１に搭載されるＮ個のプロセッサ１００のうちｉ番目のプロセッサ１００の動的電力値を示す。符号Ｃ０［ｉ］は、ｉ番目のプロセッサ１００の定常的な動的電力（クロック電力等）を示す。符号Ｃ［ｉ］［ｊ］は、ｉ番目のプロセッサ１００におけるｊ番目のイベント信号ＥＶの係数値を示す。符号Ａ［ｉ］［ｊ］は、ｉ番目のプロセッサ１００におけるｊ番目のイベント信号ＥＶの発生回数を示す。
Ｐ［ｉ］＝Ｃ０［ｉ］＋Σｊ（Ｃ［ｉ］［ｊ］・Ａ［ｉ］［ｊ］）  ‥‥（３）
情報処理装置ＩＰＥ１に搭載される全てのプロセッサ１００の動的電力値の平均値であるモニタ値ＰＭＯＮは、式（３）を式（１）に代入した式（４）により示される。
ＰＭＯＮ＝ΣｉＰ［ｉ］／Ｎ
＝Σｉ｛Ｃ０［ｉ］＋Σｊ（Ｃ［ｉ］［ｊ］・Ａ［ｉ］［ｊ］）／Ｎ
＝Σｉ｛Ｃ０［ｉ］／Ｎ＋ΣｉΣｊ（Ｃ［ｉ］［ｊ］・Ａ［ｉ］［ｊ］）／Ｎ
＝Σｉ｛Ｃ０［ｉ］／Ｎ＋Σｊ（ΣｉＣ［ｉ］［ｊ］／Ｎ）・Ａ［ｉ］［ｊ］  ‥‥（４）
式（４）中の「Σｊ（ΣｉＣ［ｉ］［ｊ］／Ｎ」より、係数値ＦＡＣＴは、イベント信号ＥＶ毎にプロセッサ１００の係数値Ｃ［ｉ］［ｊ］を平均することで得られる。
【００８１】
次に、電力上限値ＰＬＩＭＩＴの算出方法が説明される。電力上限値ＰＬＩＭＩＴは、式（５）に示すように、システム電力上限値とシステム静的電力値とを用いて算出される。
電力上限値ＰＬＩＭＩＴ＝（システム電力上限値−システム静的電力値）／プロセッサ数−誤差マージン値  ‥‥（５）
以下に、システム静的電力値を算出する２つの方法が示される。
【００８２】
（システム静的電力値の算出方法１：静的電力のばらつきの確率分布から算出）
情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の数が十分大きく、静的電力のばらつきを統計的に扱っても誤差が無視できる程度に小さい場合がある。この場合、回路シミュレータのデバイスモデルまたは大量のサンプルから取得する電力ばらつきの確率分布特性（確率密度関数）から静的電力の平均値を算出することができる。
【００８３】
すなわち、式（２）と同様に、情報処理装置ＩＰＥ１に搭載されるプロセッサ１００の静的電力の平均値Ｐ’’は式（６）で示される。式（６）において、符号Ｖ０は電源電圧Ｖ０を示し、符号Ｐｒ（Ｄ）は、プロセッサ１００内に搭載される素子の遅延量Ｄのばらつきに対する確率密度関数（電源電圧Ｖ０で正規化した素子の遅延量Ｄのプロセッサの確率密度）を示す。符号Ｐ（Ｄ）は、電源電圧Ｖ０におけるプロセッサ１００の静的電力を示し、符号Ｖ（Ｄ）は、遅延量Ｄのばらつきに応じて電源電圧を調整する場合のプロセッサ１００に与える電源電圧を示す。符号Ｄ＿ｍｉｎは、動作試験にパスしたプロセッサ１００内の素子が取り得る遅延量Ｄの最小値を示す。符号Ｄ＿ｍａｘは、動作試験にパスしたプロセッサ１００内の素子が取り得る遅延量Ｄの最大値を示す。ここで、プロセッサ１００のチップ温度は、最大の消費電力付近での温度であるとする。式（６）において、「（Ｖ（Ｄ）／Ｖ０）」は、電源電圧が「Ｖ（Ｄ）」の場合の静的電力の補正項であり、式（６）の分母は、素子の遅延量Ｄを狭めることによる確率密度関数Ｐｒ（Ｄ）の補正項である。そして、式（６）で算出したプロセッサ１００の静的電力の平均値Ｐ’’にプロセッサ１００の数を乗じることで、システム静的電力値を算出することができる。
【００８４】
【数２】
2017102790.tif 000004
【００８５】
（システム静的電力値の算出方法２：各プロセッサ１００の電力ばらつきを反映した静的電力値から算出）
算出方法２は、情報処理装置ＩＰＥ１に搭載される全てのプロセッサ１００の静的電力を示す情報に基づいて、システム静的電力を算出する方法である。この方法では、各プロセッサ１００の試験時に所定の電源電圧と所定の温度下での静的電力値が取得され、取得された静的電力値を電源電圧と温度で補正した値を合計することで、システム静的電力値が算出される。
【００８６】
図７は、図６に示す電力モニタ部１２の一例を示す。電力モニタ部１２は、プロセッサコアＣＯＲＥ１、ＣＯＲＥ２、キャッシュメモリＣＡＣＨＥおよびメモリアクセスコントローラＭＣＮＴにそれぞれ対応して設けられる複数のサブモニタＳＵＢＭと、加算器ＡＤＤＴと、タイマＴＭＲとを有する。サブモニタＳＵＢＭは、互いに同様の構成であるため、以下では、プロセッサコアＣＯＲＥ１で消費する動的電力を算出するサブモニタＳＵＢＭについて説明される。
【００８７】
サブモニタＳＵＢＭは、係数値ＦＡＣＴを保持するレジスタ１２２、ポピュレーションカウンタ１２４、複数の乗算器ＭＵＬ、加算器ＡＤＤおよび電力累積部１２０を有し、各機能ブロックで消費する動的電力（推定値）を算出する。
【００８８】
ポピュレーションカウンタ１２４は、共通の係数値ＦＡＣＴに対応する複数のイベント信号ＥＶの受信回数をカウントし、カウントにより得られたカウンタ値を乗算器ＭＵＬの１つに出力する。例えば、ポピュレーションカウンタ１２４が受信するイベント信号ＥＶは、互いに同じ構成を有する複数の演算器（浮動小数点演算器等）による演算動作の実行時に生成される。ポピュレーションカウンタ１２４を用いることで、共通の係数値ＦＡＣＴに対応する複数のイベント信号ＥＶをまとめることができ、各イベント信号ＥＶを乗算器ＭＵＬに供給する場合に比べて、乗算器ＭＵＬの数を削減することができる。
【００８９】
各乗算器ＭＵＬは、イベント信号ＥＶの値（”１”または”０”）またはポピュレーションカウンタ１２４からのカウンタ値と係数値ＦＡＣＴとを乗算し、乗算により得られた乗算値を加算器ＡＤＤに出力する。加算器ＡＤＤは、乗算器ＭＵＬから出力される乗算値と定数値ＣＯＮＳＴとを加算し、加算により得た加算値ＳＵＭ０を電力累積部１２０に出力する。
【００９０】
例えば、ポピュレーションカウンタ１２４、乗算器ＭＵＬおよび加算器ＡＤＤは、クロックサイクル毎に動作する。加算器ＡＤＤが出力する加算値ＳＵＭ０は、標準プロセッサに搭載されるプロセッサコアＣＯＲＥ１がクロックサイクル毎に消費する電力（リーク電力等の静的電力を含まない動的電力）を示し、実際のプロセッサコアＣＯＲＥ１が消費する電力とは異なる。定数値ＣＯＮＳＴは、クロックの生成により発生するクロック電力など、機能ブロックが動作せずにスタンバイ状態にあるときにも定常的に消費するクロックサイクル毎の電力値を示す。
【００９１】
電力累積部１２０は、加算値ＳＵＭ０を所定の期間累積して保持し、所定の期間毎に、累積した値を累積値ＤＡＴＡとして加算器ＡＤＤＴに出力する。所定の期間は、タイマＴＭＲからトリガ信号ＴＲＧが出力される間隔である。電力累積部１２０は、トリガ信号ＴＲＧをクリア信号ＣＬＲとして受け、クリア信号ＣＬＲに同期して保持している累積値ＤＡＴＡを”０”にクリアする。累積値ＤＡＴＡは、標準演算処理装置が所定の期間に消費する電力値（複数の演算処理装置１００で消費される動的電力の平均値）を示し、演算処理装置１００（１）が所定の期間に消費する実際の電力値とは異なる。プロセッサコアＣＯＲＥ１、ＣＯＲＥ２、キャッシュメモリＣＡＣＨＥおよびメモリアクセスコントローラＭＣＮＴにそれぞれ対応して設けられる電力累積部１２０は、累積値保持部の一例である。電力累積部１２０の例は、図８に示される。
【００９２】
加算器ＡＤＤＴは、バリッド信号ＶＡＬＩＤに同期してサブモニタＳＵＢＭから出力される累積値ＤＡＴＡを加算し、動的電力のモニタ値ＰＭＯＮを算出する。タイマＴＭＲは、基準タイミング信号ＲＥＦＴに基づいて、クロックＣＬＫのパルス数のカウントを開始し、所定の期間（例えば、２マイクロ秒）に対応するパルス数をカウントする毎にトリガ信号ＴＲＧを出力する。クロックＣＬＫは、図６に示すＰＬＬ１８から出力される周波数が可変のクロックとは別のクロックであり、周波数が固定されている。トリガ信号ＴＲＧは、クリア信号ＣＬＲおよび所定の期間の経過を示すバリッド信号ＶＡＬＩＤとして出力される。バリッド信号ＶＡＬＩＤは、加算器ＡＤＤＴの同期信号および図６に示す電力キャッピング制御部１４の同期信号として使用される。
【００９３】
図８は、図７に示す電力累積部１２０の一例を示す。電力累積部１２０は、加算器１２６および累積レジスタ１２８を有する。加算器１２６は、図７に示す加算器ＡＤＤから出力される加算値ＳＵＭ０と累積レジスタ１２８から出力される累積値ＤＡＴＡとを加算し、加算結果を累積レジスタ１２８に格納する。累積レジスタ１２８は、クリア信号ＣＬＲによりクリアされるまで、加算器１２６の加算結果を繰り返し累積して保持し、保持している累積値ＤＡＴＡを出力する。バリッド信号ＶＡＬＩＤに同期して累積レジスタ１２８から出力される累積値ＤＡＴＡは、各機能ブロックが所定の期間（例えば、２マイクロ秒）に消費した平均的な動的電力値を示す。
【００９４】
図９は、図６に示す電力キャッピング制御部１４の動作の一例を示す。図９に示す動作は、ハードウェアにより実現されてもよく、プロセッサコアＣＯＲＥのいずれかが実行するソフトウェア（電力キャッピング制御プログラム）により実現されてもよい。
【００９５】
まず、ステップＳ１００において、電力キャッピング制御部１４は、バリッド信号ＶＡＬＩＤに同期して電力モニタ部１２から出力されるモニタ値ＰＭＯＮを取得する。次に、ステップＳ１０２において、電力キャッピング制御部１４は、モニタ値ＰＭＯＮを、電力上限値ＰＬＩＭＩＴから誤差マージン値ΔＰを引いた値と比較する。モニタ値ＰＭＯＮが電力上限値ＰＬＩＭＩＴから誤差マージン値ΔＰを引いた値より大きい場合、処理はステップＳ１０４に移行される。モニタ値ＰＭＯＮが電力上限値ＰＬＩＭＩＴから誤差マージン値ΔＰを引いた値以下の場合、処理はステップＳ１０８に移行される。
【００９６】
ステップＳ１０４において、電力キャッピング制御部１４は、クロック周波数Ｆが最低周波数Ｆｍｉｎの場合、処理をステップＳ１１４に移行する。一方、電力キャッピング制御部１４は、クロック周波数Ｆが最低周波数Ｆｍｉｎでない場合（Ｆｍｉｎより高い場合）、クロック周波数Ｆを下げるため、処理をステップＳ１０６に移行する。ステップＳ１０６において、電力キャッピング制御部１４は、ダウン信号ＤＯＷＮを電圧周波数制御部１６に出力し、クロック周波数を１段階下げ、処理をステップＳ１１２に移行する。
【００９７】
ステップＳ１０８において、電力キャッピング制御部１４は、クロック周波数Ｆが最高周波数Ｆｍａｘの場合、処理をステップＳ１１２に移行する。一方、電力キャッピング制御部１４は、クロック周波数Ｆが最高周波数Ｆｍａｘでない場合（Ｆｍａｘより低い場合）、クロック周波数Ｆを上げるため、処理をステップＳ１１０に移行する。ステップＳ１１０において、電力キャッピング制御部１４は、アップ信号ＵＰを電圧周波数制御部１６に出力し、クロック周波数を１段階上げ、処理をステップＳ１１２に移行する。
【００９８】
ステップＳ１１２において、電力キャッピング制御部１４は、次のバリッド信号ＶＡＬＩＤを受信するまで待ち、次のバリッド信号ＶＡＬＩＤを受信した場合、処理をステップＳ１００に移行する。ステップＳ１１４において、電力キャッピング制御部１４は、クロック周波数Ｆをこれ以上下げられない旨を示すエラー通知を、サービスプロセッサ２００Ａに出力し、処理を終了する。エラー通知は、通信Ｉ／Ｆ２２、４０を介してサービスプロセッサ２００Ａに出力される。エラー通知を受けたサービスプロセッサ２００Ａは、プロセッサ１００Ａが実行中の処理を強制的に終了するなどのエラー処理を実行する。
【００９９】
図９に示す電力キャッピング制御部１４の動作により、プロセッサ１００Ａは、図２（Ｂ）と同様に動作し、情報処理装置ＩＰＥ２による同期処理は、図５（Ａ）と同様に実行される。
【０１００】
図１０は、図６に示す電圧周波数制御部１６のＤＦＳ制御による電力キャッピング動作の一例を示す。なお、電圧周波数制御部１６は、図１１に示すＤＶＦＳ制御による電力キャッピング動作を実行してもよい。
【０１０１】
電圧周波数制御部１６は、ダウン信号ＤＯＷＮの受信に基づいて、ＰＬＬ１８にクロック周波数を下げる指示を出力する。ＰＬＬ１８は、電圧周波数制御部１６からの指示に基づいてクロック周波数を１段階下げる。また、電圧周波数制御部１６は、アップ信号ＵＰの受信に基づいて、ＰＬＬ１８にクロック周波数を上げる指示を出力する。ＰＬＬ１８は、電圧周波数制御部１６からの指示に基づいてクロック周波数を１段階上げる。なお、ＤＦＳ制御による電力キャッピング動作では、電源電圧は変更されないため、電圧周波数制御部１６は、アップ信号ＵＰおよびダウン信号ＤＯＷＮを受信した場合にも、電源制御部３２への電源電圧を変更する指示をしない。
【０１０２】
図１１は、図６に示す電圧周波数制御部１６のＤＶＦＳ制御による電力キャッピング動作の一例を示す。
【０１０３】
電圧周波数制御部１６は、ダウン信号ＤＯＷＮの受信に基づいて、ＰＬＬ１８にクロック周波数を下げる指示を出力する。ＰＬＬ１８は、電圧周波数制御部１６からの指示に基づいてクロック周波数を１段階下げる。クロック周波数が変更された後、電圧周波数制御部１６は、サービスプロセッサ２００Ａの電源制御部３２に電源電圧を下げる指示を出力する。なお、クロック周波数の変更の完了は、予め設定されたクロックサイクル数の経過またはＰＬＬ１８が生成するＰＬＬロックを示す信号等により判断される。電源制御部３２は、電圧周波数制御部１６からの指示に基づいて、電圧生成器ＶＧＥＮに電源電圧を下げる指示を出力する。電圧生成器ＶＧＥＮは、電源制御部３２からの指示に基づいて、電源電圧を１段階下げる。
【０１０４】
また、電圧周波数制御部１６は、アップ信号ＵＰの受信に基づいて、サービスプロセッサ２００Ａの電源制御部３２に電源電圧を上げる指示を出力する。電源制御部３２は、電圧周波数制御部１６からの指示に基づいて、電圧生成器ＶＧＥＮに電源電圧を上げる指示を出力する。電圧生成器ＶＧＥＮは、電源制御部３２からの指示に基づいて、電源電圧を１段階上げる。電源電圧が変更された後、電圧周波数制御部１６は、ＰＬＬ１８にクロック周波数を上げる指示を出力する。なお、電源電圧の変更の完了は、予め設定された時間の経過または電源制御部３２がプロセッサ１００Ａに出力する電源電圧の変更の完了通知等により判断される。ＰＬＬ１８は、電圧周波数制御部１６からの指示に基づいてクロック周波数を１段階上げる。
【０１０５】
図１１に示すように、ＤＶＦＳ制御では、電圧周波数制御部１６は、クロック周波数を下げてから電源電圧を下げ、電源電圧を上げてからクロック周波数を上げる。これにより、電源電圧が所定値より低い状態で、クロック周波数が１段階高くなることを抑止することができ、プロセッサ１００Ａの動作マージンが低下することを抑止することができる。
【０１０６】
図１２は、情報処理装置の別の例を示す。図６に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。図１２に示す情報処理装置ＩＰＥ０２は、図６に示すサービスプロセッサ２００Ａの代わりにサービスプロセッサ２０００Ａを有する。また、情報処理装置ＩＰＥ０２は、図６に示す複数の演算プロセッサ１００Ａ（１００Ａ（１）、１００Ａ（２）、１００Ａ（３））の代わりに複数の演算プロセッサ１０００Ａ（１０００Ａ（１）、１０００Ａ（２）、１０００Ａ（３））を有する。以下では、演算プロセッサ１０００Ａ（１０００Ａ（１）、１０００Ａ（２）、１０００Ａ（３））は、単にプロセッサ１０００Ａ（１０００Ａ（１）、１０００Ａ（２）、１０００Ａ（３））とも称される。各プロセッサ１０００Ａ（１）、１０００Ａ（２）、１０００Ａ（３）は、ＲＯＭに接続される。情報処理装置ＩＰＥ０２のその他の構成は、図６に示す情報処理装置ＩＰＥ２と同様である。
【０１０７】
サービスプロセッサ２０００Ａは、図６に示すサービスプロセッサ２００Ａの電力制御部３４の代わりに、電力制御部３５を有する。電力制御部３５は、情報処理装置ＩＰＥ０２の起動時に、設定情報ＳＥＴＩＮＦとしてサービスプロセッサ２０００Ａに供給される電力上限値ＰＬＩＭＩＴＴを保持するレジスタ３５４を有する。電力上限値ＰＬＩＭＩＴＴは、情報処理装置ＩＰＥ０２に搭載される各プロセッサ１０００Ａに均等に割り当て可能な消費電力（動的電力＋静的電力）の最大値である。サービスプロセッサ２０００Ａのその他の構成は、図６に示すサービスプロセッサ２００Ａと同様である。プロセッサ１０００Ａ（１）、１０００Ａ（２）、１０００Ａ（３）は、互いに同一または同様の構成を有するため、以下では、プロセッサ１０００Ａ（１）について説明される。
【０１０８】
各プロセッサ１０００Ａ（１）は、図６に示すプロセッサ１００Ａの構成に、ばらつき補正部４２および温度センサ４４を追加している。また、電力キャッピング制御部１４のレジスタ１４２は、サービスプロセッサ２０００Ａから出力される電力上限値ＰＬＩＭＩＴＴを保持する。電力モニタ部１２のレジスタ１２２には、プロセッサ１０００Ａ（１）に接続されたＲＯＭから出力される係数値ＦＡＣＴが格納される。係数値ＦＡＣＴは、プロセッサ１０００Ａの電気的特性に応じてプロセッサ１０００Ａ毎に設定される。各プロセッサ１０００Ａのその他の構成は、図６に示すプロセッサ１００Ａ（１）と同様である。
【０１０９】
ばらつき補正部４２は、ＲＯＭから出力される静的電力値ＰＬＥＡＫを保持するレジスタ４２２を有する。ばらつき補正部４２は、図３に示す補正部６と同様に、電力モニタ部１２から出力されるモニタ値ＰＭＯＮ（動的電力値）を、演算処理装置１０００Ａ（１）に供給される電源電圧値に基づいて補正する。また、ばらつき補正部４２は、ＲＯＭから出力される静的電力値ＰＬＥＡＫを、電源電圧値と温度センサ４４が検出する温度ＴＥＭＰとに基づいて補正する。そして、ばらつき補正部４２は、補正したモニタ値ＰＭＯＮに、補正した静的電力値ＰＬＥＡＫを加算して得た電力値ＰＴＯＴＡＬを電力キャッピング制御部１４に出力する。ここで、電力値ＰＴＯＴＡＬは、プロセッサ１０００Ａ（１）が消費する電力（動的電力＋静的電力）を示す。
【０１１０】
電力キャッピング制御部１４は、所定の期間毎に生成される電力値ＰＴＯＴＡＬが電力上限値ＰＬＩＭＩＴＴを超えないように、ダウン信号ＤＯＷＮまたはアップＵＰを出力し、電力キャッピングを実行する。
【０１１１】
図１３は、図６および図１２に示す情報処理装置ＩＰＥ２、ＩＰＥ０２の構成および電気的特性の一例を示す。各情報処理装置ＩＰＥ２、ＩＰＥ０２は、１２８個の演算プロセッサを有し、システム電力上限値は１６キロワット、システム静的電力値は５．１２キロワット（見積もり値）であるとする。情報処理装置ＩＰＥ２において、静的電力誤差マージンは５ワット、動的電力のモニタ値ＰＭＯＮの計算誤差マージンは５ワットであるとする。情報処理装置ＩＰＥ０２において、測定誤差マージンは５ワットであるとする。
【０１１２】
また、各情報処理装置ＩＰＥ２、ＩＰＥ０２の電気的特性モデルは、以下であるとする。動的電力の特性は、全ての演算プロセッサで同じである。静的電力値は演算プロセッサ毎のばらつきにより２０ワットから６０ワットの範囲でばらつく。静的電力値の平均は、システム静的電力値（５．１２キロワット）を演算プロセッサの数（１２８個）で除した４０ワットである。静的電力値は、最大の消費電力時のチップ温度付近での値である。
【０１１３】
情報処理装置ＩＰＥ２の各演算プロセッサ１００Ａの電力上限値ＰＬＩＭＩＴ（動的電力）は、式（５）より７５ワットである。情報処理装置ＩＰＥ０２の各演算プロセッサ１０００Ａの電力上限値ＰＬＩＭＩＴＴ（動的電力＋静的電力）は、式（７）より１２０Ｗである。
ＰＬＩＭＩＴＴ＝システム電力上限値／プロセッサ数−誤差マージン値  ‥‥（７）
演算プロセッサ１００Ａ、１０００Ａの各々は、アプリケーション（ジョブＪＯＢ）を実行することで、図１３に示すように動的電力が変動するものとする。図１３に示す例では、区間Ａの動的電力は８０Ｗであり、区間Ｂの動的電力は１２０Ｗであり、区間Ｃの動的電力は１００Ｗである。区間Ａ、Ｂ、Ｃの長さは、それぞれ１０ミリ秒である。
【０１１４】
図１４は、図６および図１２に示す演算プロセッサ１００Ａ、１０００Ａの動作モデルの一例を示す。図１４において、「プロセスｆａｓｔ」、「プロセスｔｙｐｉｃａｌ」、「プロセスｓｌｏｗ」は、プロセッサ１００Ａ、１０００Ａの製造工程で発生するプロセスばらつきを示す。
【０１１５】
「プロセスｆａｓｔ」では、プロセッサ１００Ａ、１０００Ａに搭載されるトランジスタの閾値電圧が低く、静的電力（リーク電力）が他と比べて大きい（６０Ｗ）。「プロセスｔｙｐｉｃａｌ」では、プロセッサ１００Ａ、１０００Ａに搭載されるトランジスタの閾値電圧が標準であり、静的電力は平均値である（４０Ｗ）。「プロセスｓｌｏｗ」では、プロセッサ１００Ａ、１０００Ａに搭載されるトランジスタの閾値電圧が高く、静的電力が他と比べて小さい（２０Ｗ）。
【０１１６】
各プロセッサ１００Ａ、１０００Ａの動的電力は、プロセスばらつきに依存せず、区間Ａで８０Ｗ、区間Ｂで１２０Ｗ、区間Ｃで１００Ｗである。一方、各プロセッサ１００Ａ、１０００Ａの静的電力は、プロセスばらつきに依存するため、消費電力は、プロセスばらつきに応じた静的電力に依存して変動する。
【０１１７】
図１５は、図６および図１２に示す演算プロセッサ１００Ａ、１０００Ａの処理時間の一例を示す。
【０１１８】
図６に示すプロセッサ１００Ａでは、動的電力値が電力上限値ＰＬＩＭＩＴ（＝７５Ｗ）を超えたときに、電力キャッピングが実行され、クロック周波数が下げられる。図１４に示す動作モデルにおいて、動的電力値のうち電力上限値ＰＬＩＭＩＴを超えた電力量に比例してクロック周波数が低下し、クロック周波数が低下した分だけ処理時間が延びると仮定する。この場合、各プロセッサ１００Ａにおいて、区間Ａ、Ｂ、Ｃでの処理時間の合計はともに４０ミリ秒になる。なお、全てのプロセッサ１００Ａの消費電力の合計は、最大で１６キロワットであり、システム電力上限値を満足する。
【０１１９】
一方、図１２に示すプロセッサ１０００Ａでは、消費電力が電力上限値ＰＬＩＭＩＴＴ（＝１２０Ｗ）を超えたときに、電力キャッピングが実行され、クロック周波数が下げられる。図１４に示す動作モデルにおいて、消費電力値のうち電力上限値ＰＬＩＭＩＴＴを超えた電力量に比例してクロック周波数が低下し、クロック周波数が低下した分だけ処理時間が延びると仮定する。この場合、区間Ａ、Ｂ、Ｃでの処理時間の合計は、プロセスｆａｓｔのプロセッサ１０００Ａで５０ミリ秒になり、プロセスｔｙｐｉｃａｌのプロセッサ１０００Ａで３７．５ミリ秒になり、プロセスｓｌｏｗのプロセッサ１０００Ａで３２ミリ秒になる。プロセッサ１０００Ａ間の処理時間が異なる場合、図５（Ｂ）に示すように同期待ちが発生する。このため、全てのプロセッサ１０００Ａの処理時間は、プロセスｆａｓｔのプロセッサ１０００Ａの処理時間に依存して５０ミリ秒になる。なお、全てのプロセッサ１０００Ａの消費電力の合計は、最大で１６キロワットであり、システム電力上限値を満足する。
【０１２０】
以上より、共通の係数値ＦＡＣＴを用いて算出される動的電力値により電力キャッピングを実行する場合、プロセッサ１０００Ａ毎の係数値ＦＡＣＴを用いて算出される消費電力値により電力キャッピングを実行する場合に比べて、処理時間を短縮することができる。図１５に示す例では、複数のプロセッサ１００Ａで並列に処理されるジョブＪＯＢの処理時間を２０％（＝（５０ミリ秒−４０ミリ秒）／５０ミリ秒）改善することができる。
【０１２１】
以上、図６から図１５に示す実施形態においても、図１から図５に示す実施形態と同様の効果を得ることができる。すなわち、演算処理装置１００Ａによる演算処理の処理時間を、プロセスばらつきに拘わらず同等にすることができ、並列処理を互いに同期して実行するためのバリア同期の待ち時間の発生を低減することができる。この結果、電力キャッピングによりクロック周波数を制御する場合にも、消費電力を抑えつつ、処理性能が低下することを抑止することができる。各演算処理装置１００Ａを標準演算処理装置と見なして電力キャッピングを実行することで、複数の演算処理装置１００Ａが実際に消費する動的電力の平均値を、標準演算処理装置が消費する動的電力値とほぼ同じにすることができる。したがって、演算処理装置１００Ａが消費する電力の総和が、情報処理装置ＩＰＥ２で許容された電力の上限値を超えることを抑止することができ、情報処理装置ＩＰＥ２の信頼性が低下することを抑止することができる。さらに、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、プロセッサ１００Ａの回路規模を小さくすることができる。
【０１２２】
図１６は、情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態におけるサービスプロセッサの一例を示す。図１および図６に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。図６に示すサービスプロセッサ２００Ｂは、図６に示すプロセッサ１００Ａとともに情報処理装置ＩＰＥ３に搭載される。サービスプロセッサ２００Ｂは、制御装置の一例である。
【０１２３】
サービスプロセッサ２００Ｂは、図６に示すサービスプロセッサ２００Ａの電力制御部３４の代わりに電力制御部３４Ｂを有する。サービスプロセッサ２００Ｂのその他の構成は、図６に示すサービスプロセッサ２００Ａと同様である。電力制御部３４Ｂは、図６に示す電力制御部３４の構成に、レジスタ３４５、３４６、３４７および上限値生成部３４８を追加している。
【０１２４】
レジスタ３４５は、システム電力上限値を保持し、レジスタ３４６は、システム静的電力値を保持し、レジスタ３４７は、誤差マージン値を保持する。係数値ＦＡＣＴ、システム電力上限値、システム静的電力値および誤差マージン値は、情報処理装置ＩＰＥ３の起動時に、設定情報ＳＥＴＩＮＦとしてサービスプロセッサ２００Ｂに供給され、レジスタ３４１、３４５、３４６、３４７にそれぞれ格納される。係数値ＦＡＣＴおよびシステム静的電力値は、図６での説明と同様に算出される。
【０１２５】
上限値生成部３４８は、式（５）に基づいて、レジスタ３４５、３４６、３４７に保持されたシステム電力上限値、システム静的電力値および誤差マージン値から電力上限値ＰＬＩＭＩＴを算出する。上限値生成部３４８は、算出した電力上限値ＰＬＩＭＩＴをレジスタ３４２に格納する。なお、式（５）におけるプロセッサ数は、サービスプロセッサ２００Ｂが予め保持してもよく、電力制御部３４Ｂが、プロセッサ数を保持するレジスタを有してもよい。電力上限値ＰＬＩＭＩＴは、上限値生成部３４８により生成されるため、設定情報ＳＥＴＩＮＦは、図６と異なり電力上限値ＰＬＩＭＩＴを含まない。
【０１２６】
図１６に示す情報処理装置ＩＰＥ３に搭載されるプロセッサ１００Ａの動作は、図２（Ｂ）、図５（Ａ）、図９、図１０、図１１と同様である。すなわち、各プロセッサ１００Ａは、イベント信号ＥＶと係数値ＦＡＣＴとに基づいて算出された動的電力のモニタ値ＰＭＯＮが電力上限値ＰＬＩＭＩＴ（動的電力）を超えないようにクロック周波数を調整し、電力キャッピング制御を実行する。
【０１２７】
以上、図１６に示す実施形態においても、図１から図１５に示す実施形態と同様の効果を得ることができる。すなわち、演算処理装置１００Ａによる並列処理時にバリア同期の待ち時間の発生を低減することができ、電力キャッピングによりクロック周波数を制御する場合にも、消費電力を抑えつつ、処理性能が低下することを抑止することができる。演算処理装置１００Ａが消費する電力の総和が、情報処理装置ＩＰＥ３で許容された電力の上限値を超えることを抑止することができ、情報処理装置ＩＰＥ３の信頼性が低下することを抑止することができる。さらに、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、プロセッサ１００Ａの回路規模を小さくすることができる。
【０１２８】
図１７は、情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態における演算プロセッサの一例を示す。図６および図１６に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。図１７に示す演算プロセッサ１００Ｃは、図１８に示すサービスプロセッサ２００Ｃとともに情報処理装置ＩＰＥ４に搭載される。演算プロセッサ１００Ｃは、演算処理装置の一例である。情報処理装置ＩＰＥ４は、図６に示す情報処理装置ＩＰＥ２と同様に、ジョブを並列に実行可能な複数の演算プロセッサ１００Ｃを有する。以下では、演算プロセッサ１００Ｃは、単にプロセッサ１００Ｃとも称される。
【０１２９】
プロセッサ１００Ｃは、図６に示すプロセッサ１００Ａの構成に、ばらつき指標値を保持するばらつき保持部２４を追加している。ばらつき指標値は、プロセッサ１００Ｃの製造工程で発生するプロセスばらつきに応じた消費電力の標準値に対するばらつきの度合いを示す。ばらつき指標値は、自プロセッサ１００Ｃの消費電力に関する偏差情報の一例であり、ばらつき保持部２４は、偏差情報を保持する偏差情報保持部の一例である。
【０１３０】
例えば、消費電力の標準値に対するばらつきの度合いは、プロセッサ１００Ｃを製造後の動作試験で取得される素子の遅延量、トランジスタのソース・ドレイン間電流または閾値電圧等の標準値に対するばらつきの度合い（標準偏差）により示すことができる。そして、動作試験で取得されたばらつき指標値（すなわち、消費電力の標準値に対するばらつきの度合い）は、プロセッサ１００Ｃに接続されたＲＯＭに格納される。
【０１３１】
通信Ｉ／Ｆ２２は、サービスプロセッサ２００Ｃから係数値ＦＡＣＴおよび電力上限値ＰＬＩＭＩＴを受信する機能に加えて、ばらつき保持部２４から出力されるばらつき指標値をサービスプロセッサ２００Ｃに送信する機能を有する。演算プロセッサ１００Ｃは、起動時およびリセット解除時に、ＲＯＭに格納されたばらつき指標値をばらつき保持部２４に格納する機能を有する。なお、ばらつき指標値は、プロセッサ１００Ｃに内蔵されるＲＯＭに格納されてもよい。演算プロセッサ１００Ｃのその他の構成および機能は、図６に示す演算プロセッサ１００Ａと同様である。
【０１３２】
図１８は、図１７に示す演算プロセッサ１００Ｃに接続されるサービスプロセッサ２００Ｃの一例を示す。図６に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。サービスプロセッサ２００Ｃは、制御装置の一例である。
【０１３３】
サービスプロセッサ２００Ｃは、図１６に示すサービスプロセッサ２００Ｂの電力制御部３４Ｂの代わりに電力制御部３４Ｃを有する。サービスプロセッサ２００Ｃのその他の構成は、図１６に示すサービスプロセッサ２００Ｂと同様である。電力制御部３４Ｃは、図１６に示す電力制御部３４Ｂの構成に、係数値生成部３４３およびシステム静的電力値生成部３４４を追加している。
【０１３４】
係数値生成部３４３は、通信Ｉ／Ｆ４０を介して各プロセッサ１００Ｃからばらつき指標値を受信し、受信した各ばらつき指標値に対応する係数値情報をばらつき指標値変換テーブルＴＢＬ１から読み出す。そして、係数値生成部３４３は、ばらつき指標値変換テーブルＴＢＬ１から読み出した係数値情報に基づいて、プロセッサ１００Ｃ毎にプロセスばらつきに応じた係数値ＦＡＣＴを算出する。ばらつき指標値変換テーブルＴＢＬ１の例は、図１９に示される。
【０１３５】
さらに、係数値生成部３４３は、算出した係数値ＦＡＣＴを平均化し、平均化した係数値ＦＡＣＴをレジスタ３４１に格納する。すなわち、サービスプロセッサ２００Ｃは、情報処理装置ＩＰＥ４に搭載されるプロセッサ１００Ｃの実際のプロセスばらつきに基づいて、係数値ＦＡＣＴの平均値を算出する。そして、各プロセッサ１００Ｃは、係数値ＦＡＣＴの平均値を用いて、動的電力のモニタ値ＰＭＯＮを算出する。係数値生成部３４３の動作の例は、図２０および図２１に示される。
【０１３６】
システム静的電力値生成部３４４は、通信Ｉ／Ｆ４０を介して各プロセッサ１００Ｃからばらつき指標値を受信し、受信した各ばらつき指標値に対応する静的電力情報をばらつき指標値変換テーブルＴＢＬ１から読み出す。そして、システム静的電力値生成部３４４は、ばらつき指標値変換テーブルＴＢＬ１から読み出した静的電力情報に基づいて、プロセッサ１００Ｃ毎にプロセスばらつきに応じた静的電力値を算出する。
【０１３７】
さらに、システム静的電力値生成部３４４は、算出した静的電力値を積算することで、情報処理装置ＩＰＥ４に搭載される複数のプロセッサ１００Ｃで消費されるシステム静的電力値を算出し、算出したシステム静的電力値ＩＳＴＡＴＩＣをレジスタ３４６に格納する。システム静的電力値生成部３４４は、情報処理装置ＩＰＥ４に搭載されるプロセッサ１００Ａがそれぞれ出力する偏差情報をそれぞれ収集し、収集した偏差情報に応じたシステム静的電力値を取得する収集部の一例である。システム静的電力値生成部３４４の動作の例は、図２２および図２３に示される。
【０１３８】
レジスタ３４５、３４７は、図１６と同様に、サービスプロセッサ２００Ｂの外部から設定情報ＳＥＴＩＮＦとして受信するシステム電力上限値および誤差マージン値をそれぞれ保持する。そして、上限値生成部３４８は、式（５）に基づいて、レジスタ３４５、３４６、３４７に保持されたシステム電力上限値、システム静的電力値および誤差マージン値から電力上限値ＰＬＩＭＩＴを算出する。上限値生成部３４８は、算出した電力上限値ＰＬＩＭＩＴをレジスタ３４２に格納する。なお、式（５）におけるプロセッサ数は、サービスプロセッサ２００Ｃが予め保持してもよく、電力制御部３４Ｃが、プロセッサ数を保持するレジスタを有してもよい。電力上限値ＰＬＩＭＩＴは、上限値生成部３４８により生成され、システム静的電力値は、システム静的電力値生成部２４４により生成されるため、設定情報ＳＥＴＩＮＦは、電力上限値ＰＬＩＭＩＴおよびシステム静的電力値を含まない。
【０１３９】
図１９は、図１８に示すばらつき指標値変換テーブルＴＢＬ１の一例を示す。ばらつき指標値変換テーブルＴＢＬ１は、複数のばらつき指標値毎に、静的電力値ＩＬＥＡＫ、Ｍ個の係数値ＦＡＣＴを含む係数値群Ｃおよび電圧設定値Ｖを保持するエントリを有する。図１９に示す例では、ばらつき指標値は、遅延ばらつき（素子の遅延量のばらつき）の標準偏差σで示される。係数値群Ｃは、プロセッサ１００Ｃで動的電力の算出に使用する全ての係数値ＦＡＣＴを含む。電圧設定値Ｖは、各プロセッサ１００Ａのプロセスばらつきに応じて各プロセッサ１００Ａに供給される電源電圧値を示す。
【０１４０】
値ｐは、エントリ番号を示す。図１９に示す例では、ばらつき指標値は、素子の遅延量が大きいほど値ｐが小さいエントリに保持される。換言すれば、ばらつき指標値は、素子の遅延量が大きい順に、ばらつき指標値変換テーブルＴＢＬ１の上から下に向けて保持される。
【０１４１】
図２０は、図１８に示す係数値生成部３４３の動作の一例を示す。例えば、図２０に示す動作は、サービスプロセッサ２００Ｃが起動時およびリセット解除時に実行する起動処理プログラムにより実現される。
【０１４２】
まず、ステップＳ３００において、係数値生成部３４３は、演算プロセッサ数Ｎ、イベント信号数Ｍおよび基準電圧Ｖ０をサービスプロセッサ２００Ｃに搭載されたＲＯＭ等から読み込む。演算プロセッサ数Ｎは、情報処理装置ＩＰＥ４に搭載される演算プロセッサ１００Ｃの数である。イベント信号数Ｍは、各演算プロセッサ１００Ｃにおいて動的電力の算出に使用するイベント信号ＥＶの数であり、図１９に示す係数値群Ｃに含まれる係数値ＦＡＣＴの数である。基準電圧Ｖ０は、係数値ＦＡＣＴを設定するための電源電圧の基準値である。
【０１４３】
次に、ステップＳ３０２において、係数値生成部３４３は、Ｍ個の変数Ｓを割り当て、割り当てた変数Ｓを”０”に初期化する。次に、ステップＳ３０４において、係数値生成部３４３は、カウンタ値iを”１”に設定する。次に、ステップＳ３０６において、係数値生成部３４３は、ｉ番目の演算プロセッサ１００Ｃからばらつき指標値を取得する。
【０１４４】
次に、ステップＳ３０８において、係数値生成部３４３は、ばらつき指標値変換テーブルＴＢＬ１にアクセスし、演算プロセッサ１００Ｃから取得したばらつき指標値に対応する係数値群Ｃ［ｉ］と電圧設定値Ｖ［ｉ］を取得する。なお、演算プロセッサ１００Ｃから取得したばらつき指標値が、ばらつき指標値変換テーブルＴＢＬ１のばらつき指標値と一致しない場合がある。この場合、係数値生成部３４３は、ばらつき指標値変換テーブルＴＢＬ１において互いに隣接する２つのエントリに格納された係数値群Ｃおよび電圧設定値Ｖをそれぞれ内分する内分処理を実行する。内分処理の例は、図２１に示される。
【０１４５】
次に、ステップＳ３１０において、係数値生成部３４３は、カウンタ値ｊを”１”に設定する。次に、ステップＳ３１２において、係数値生成部３４３は、ステップＳ３０８で取得した係数値群Ｃ［ｉ］の各要素Ｃ［ｉ］［ｊ］（すなわち、各係数値ＦＡＣＴ）をプロセッサ１００Ｃに供給される電源電圧に合わせて補正する。そして、係数値生成部３４３は、補正した要素Ｃ［ｉ］［ｊ］を変数Ｓ［ｊ］に足し込む。
【０１４６】
次に、ステップＳ３１４において、係数値生成部３４３は、カウンタ値ｊを”１”増加させる。次に、ステップＳ３１６において、係数値生成部３４３は、カウンタ値ｊがイベント信号数Ｍ以下の場合、要素Ｃ［ｉ］［ｊ］を変数Ｓ［ｊ］に足し込む処理を継続するため、処理をステップＳ３１２に戻す。一方、係数値生成部３４３は、カウンタ値ｊがイベント信号数Ｍを超えた場合、要素Ｃ［ｉ］［ｊ］を変数Ｓ［ｊ］に足し込む処理が完了したため、処理をステップＳ３１８に移行する。
【０１４７】
ステップＳ３１８において、係数値生成部３４３は、カウンタ値ｉを”１”増加させる。次に、ステップＳ３２０において、係数値生成部３４３は、カウンタ値ｉが演算プロセッサ数Ｎ以下の場合、次の演算プロセッサ１００Ｃの係数値を算出するため、処理をステップＳ３０６に戻す。一方、係数値生成部３４３は、カウンタ値ｉが演算プロセッサ数Ｎを超えた場合、全ての演算プロセッサ１００Ｃの係数値を算出したため、処理をステップＳ３２２に移行する。
【０１４８】
ステップＳ３２２において、係数値生成部３４３は、Ｍ個の変数Ｓを演算プロセッサ数Ｎでそれぞれ除して、情報処理装置ＩＰＥ４に搭載される複数のプロセッサ１００Ｃのプロセスばらつきに応じたＭ個の係数値ＦＡＣＴの平均を算出する。そして、係数値生成部３４３は、算出したＭ個の係数値ＦＡＣＴを図１８に示すレジスタ３４１に格納し、処理を終了する。
【０１４９】
図２１は、図２０に示すステップＳ３０８で実行する内分処理の一例を示す。まず、ステップＳ３３０において、係数値生成部３４３は、カウンタ値ｐを”１”に設定する。カウンタ値ｐは、図１９に示すばらつき指標値変換テーブルＴＢＬ１のエントリ番号を示す。
【０１５０】
次に、ステップＳ３３２において、係数値生成部３４３は、プロセッサ１００Ｃから受信したばらつき指標値で示される遅延ばらつきＤＬＹｐが、エントリｐに保持された遅延ばらつきＤＬＹｔ（ｐ）以上の場合、処理をステップＳ３３６に移行する。係数値生成部３４３は、プロセッサ１００Ｃから受信したばらつき指標値で示される遅延ばらつきが、エントリｐに保持された遅延ばらつきより小さい場合、処理をステップＳ３３４に移行する。
【０１５１】
ステップＳ３３４において、係数値生成部３４３は、カウンタ値ｐを”１”増加させ、処理をステップＳ３３２に戻す。ステップＳ３３２、Ｓ３３４により、プロセッサ１００Ｃから受信した遅延ばらつきＤＬＹｐより小さく、かつ遅延ばらつきＤＬＹｐに最も近い遅延ばらつきＤＬＹｔを保持するエントリが選択される。例えば、図１９に示すばらつき指標値変換テーブルＴＢＬ１において、遅延ばらつきＤＬＹｐが”＋２．１”の場合、２番目のエントリ（ｐ＝２）が選択される。
【０１５２】
ステップＳ３３６において、係数値生成部３４３は、選択したエントリｐが保持する遅延ばらつきＤＬＹｔ［ｐ］とエントリｐ−１が保持する遅延ばらつきＤＬＹｔ［ｐ−１］とを、遅延ばらつきＤＬＹｐで内分する比を算出する。例えば、プロセッサ１００Ｃから受信した遅延ばらつきが”＋２．４”の場合、内分する比は”２：１”になり、プロセッサ１００Ｃから受信した遅延ばらつきが”＋２．３５”の場合、内分する比は”１：１”になる。
【０１５３】
次に、ステップＳ３３８において、係数値生成部３４３は、ステップＳ３３６で算出した比に応じてエントリｐとエントリｐ−１とが保持する係数値ＦＡＣＴを内分し、プロセッサ１００Ｃのプロセスばらつきに応じた係数値ＦＡＣＴを取得する。
【０１５４】
次に、ステップＳ３４０において、係数値生成部３４３は、エントリｐとエントリｐ−１とに保持された電圧設定値Ｖのうち大きい方を選択し、処理を終了する。電圧設定値Ｖは、ばらつき指標値変換テーブルＴＢＬ１に格納された離散的な値を取るため、内分することなく、大きい方が選択される。
【０１５５】
図２２は、図１８に示すシステム静的電力値生成部３４４の動作の一例を示す。例えば、図２２に示す動作は、サービスプロセッサ２００Ｃが起動時およびリセット解除時に実行する起動処理プログラムにより実現される。
【０１５６】
まず、ステップＳ４００において、システム静的電力値生成部３４４は、演算プロセッサ数Ｎ、ターゲットチップ温度Ｔ、温度変換係数α、基準電圧Ｖ０および基準チップ温度Ｔ０をサービスプロセッサ２００Ｃに搭載されたＲＯＭ等から読み込む。
【０１５７】
次に、ステップＳ４０２において、システム静的電力値生成部３４４は、システム静的電力値を格納する変数ＩＳＴＡＴＩＣを”０”に初期化する。次に、ステップＳ４０４において、システム静的電力値生成部３４４は、カウンタ値iを”１”に設定する。
【０１５８】
次に、ステップＳ４０６において、システム静的電力値生成部３４４は、ｉ番目の演算プロセッサ１００Ｃからばらつき指標値を取得する。次に、ステップＳ４０８において、システム静的電力値生成部３４４は、ばらつき指標値変換テーブルＴＢＬ１にアクセスし、演算プロセッサ１００Ｃから取得したばらつき指標値に対応する静的電力値ＩＬＥＡＫと電圧設定値Ｖを取得する。なお、演算プロセッサ１００Ｃから取得したばらつき指標値が、ばらつき指標値変換テーブルＴＢＬ１のばらつき指標値と一致しない場合がある。この場合、システム静的電力値生成部３４４は、ばらつき指標値変換テーブルＴＢＬ１において互いに隣接する２つのエントリに格納された静的電力値ＩＬＥＡＫと電圧設定値Ｖとをそれぞれ内分する内分処理を実行する。内分処理の例は、図２３に示される。
【０１５９】
次に、ステップＳ４１０において、システム静的電力値生成部３４４は、ステップＳ４０８で取得した静的電力値ＩＬＥＡＫをプロセッサ１００Ｃに供給される電源電圧に合わせて補正する。そして、システム静的電力値生成部３４４は、補正した静的電力値ＩＬＥＡＫを変数ＩＳＴＡＴＩＣ（システム静的電力値）に足し込む。
【０１６０】
次に、ステップＳ４１２において、システム静的電力値生成部３４４は、カウンタ値ｉを”１”増加させる。次に、ステップＳ４１４において、システム静的電力値生成部３４４は、カウンタ値ｉが演算プロセッサ数Ｎ以下の場合、次の演算プロセッサ１００Ｃの静的電力値ＩＬＥＡＫを取得するため、処理をステップＳ４０６に戻す。一方、システム静的電力値生成部３４４は、カウンタ値ｉが演算プロセッサ数Ｎを超えた場合、全ての演算プロセッサ１００Ｃの静的電力値ＩＬＥＡＫを取得し、システム静的電力値を算出したため、処理をステップＳ４１６に移行する。
【０１６１】
ステップＳ４１６において、システム静的電力値生成部３４４は、変数ＩＳＴＡＴＩＣで示されるシステム静的電力値をプロセッサ１００Ｃのターゲットチップ温度Ｔで補正する。そして、システム静的電力値生成部３４４は、補正したシステム静的電力値を図１８に示すレジスタ３４６に格納し、処理を終了する。
【０１６２】
図２３は、図２２に示すステップＳ４０８で実行する内分処理の一例を示す。まず、ステップＳ４３０において、システム静的電力値生成部３４４は、図１９に示すばらつき指標値変換テーブルＴＢＬ１のエントリ番号を示すカウンタ値ｐを”１”に設定する。
【０１６３】
次に、ステップＳ４３２において、システム静的電力値生成部３４４は、プロセッサ１００Ｃから受信したばらつき指標値で示される遅延ばらつきＤＬＹｐが、エントリｐに保持された遅延ばらつきＤＬＹｔ（ｐ）以上の場合、処理をステップＳ４３６に移行する。システム静的電力値生成部３４４は、プロセッサ１００Ｃから受信したばらつき指標値で示される遅延ばらつきが、エントリｐに保持された遅延ばらつきより小さい場合、処理をステップＳ４３４に移行する。
【０１６４】
ステップＳ４３４において、システム静的電力値生成部３４４は、カウンタ値ｐを”１”増加させ、処理をステップＳ４３２に戻す。ステップＳ４３２、Ｓ４３４により、プロセッサ１００Ｃから受信した遅延ばらつきＤＬＹｐより小さく、かつ遅延ばらつきＤＬＹｐに最も近い遅延ばらつきＤＬＹｔを保持するエントリが選択される。
【０１６５】
ステップＳ４３６において、システム静的電力値生成部３４４は、選択したエントリｐが保持する遅延ばらつきＤＬＹｔ［ｐ］とエントリｐ−１が保持する遅延ばらつきＤＬＹｔ［ｐ−１］とを、遅延ばらつきＤＬＹｐで内分する比を算出する。次に、ステップＳ４３８において、システム静的電力値生成部３４４は、算出した比に応じてエントリｐとエントリｐ−１とが保持する静的電力値ＩＬＥＡＫを内分し、プロセッサ１００Ｃのプロセスばらつきに応じた静的電力値ＩＬＥＡＫを取得する。そして、図２３に示す処理は終了される。
【０１６６】
なお、プロセッサ１００Ｃ毎のプロセスばらつきに応じた静的電力値ＩＬＥＡＫ、係数値群Ｃおよび電圧設定値Ｖは、各プロセッサ１００Ｃに接続されるＲＯＭに予め格納されてもよい。そして、静的電力値ＩＬＥＡＫ、係数値群Ｃおよび電圧設定値Ｖは、各プロセッサ１００Ｃからサービスプロセッサ２００に転送される。
【０１６７】
この場合、係数値生成部３４３は、図２０に示すステップＳ３０６、Ｓ３０８の処理を省略し、各プロセッサ１００Ｃから受信する係数値群Ｃと電圧設定値Ｖとを用いて係数値ＦＡＣＴの平均値を算出する。また、システム静的電力値補正部３４４は、図２２に示すステップＳ４０６、Ｓ４０８の処理を省略し、各プロセッサ１００Ｃから受信する静的電力値ＩＬＥＡＫと電圧設定値Ｖとを用いてシステム静的電力値ＩＳＴＡＴＩＣを算出する。
【０１６８】
これにより、情報処理装置ＩＰＥ４にばらつき指標値変換テーブルＴＢＬ１を設けることなく、サービスプロセッサ２００Ｃは、係数値ＦＡＣＴおよびシステム静的電力値ＩＳＴＡＴＩＣを算出することができる。また、係数値生成部３４３が係数値ＦＡＣＴを算出する時間を図２０に示す処理に比べて短縮することができ、システム静的電力値補正部３４４がシステム静的電力値ＩＳＴＡＴＩＣを算出する時間を図２２に示す処理に比べて短縮することができる。
【０１６９】
以上、図１７から図２３に示す実施形態においても、図１から図１５に示す実施形態と同様の効果を得ることができる。すなわち、演算処理装置１００Ｃによる並列処理時にバリア同期の待ち時間の発生を低減することができ、電力キャッピングによりクロック周波数を制御する場合にも、消費電力を抑えつつ、処理性能が低下することを抑止することができる。演算処理装置１００Ｃが消費する電力の総和が、情報処理装置ＩＰＥ４で許容された電力の上限値を超えることを抑止することができ、情報処理装置ＩＰＥ４の信頼性が低下することを抑止することができる。また、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、プロセッサ１００Ｃの回路規模を小さくすることができる。
【０１７０】
さらに、図１７から図２３に示す実施形態では、サービスプロセッサ２００Ｃは、情報処理装置ＩＰＥ４に実際に搭載されるプロセッサ１００Ｃの実際のプロセスばらつきに基づいて、係数値ＦＡＣＴを算出する。そして、プロセッサ１００Ｃは、サービスプロセッサ２００Ｃが算出した係数値ＦＡＣＴを用いて動的電力であるモニタ値ＰＭＯＮを算出する。これにより、電力モニタ部１２で算出されるモニタ値ＰＭＯＮを、情報処理装置ＩＰＥ４に実際に搭載されるプロセッサ１００Ｃの動的電力の平均値に近づけることができ、電力キャッピングの精度を、図１から図１５に示す実施形態に比べて向上することができる。
【０１７１】
また、サービスプロセッサ２００Ｃは、情報処理装置ＩＰＥ４に実際に搭載されるプロセッサ１００Ｃの実際のプロセスばらつきに基づいて、システム静的電力値ＩＳＴＡＴＩＣを算出する。そして、サービスプロセッサ２００Ｃは、算出したシステム静的電力値ＩＳＴＡＴＣを用いて電力上限値ＰＬＩＭＩＴを算出する。これにより、電力キャッピングで使用する電力上限値ＰＬＩＭＩＴの精度を図１から図１５に示す実施形態に比べて向上することができ、正確な電力キャッピングを実行することができる。
【０１７２】
図２４は、情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態におけるサービスプロセッサの一例を示す。図６および図１６に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。図２４に示すサービスプロセッサ２００Ｄは、図６に示すジョブを並列に実行可能な複数のプロセッサ１００Ａとともに情報処理装置ＩＰＥ５に搭載される。なお、図２４に示す実施形態は、情報処理装置ＩＰＥ５に搭載されるプロセッサ１００Ａの数が十分大きく、電力のばらつきを統計的に扱っても誤差が無視できる程度に小さい場合に適用されることが望ましい。
【０１７３】
サービスプロセッサ２００Ｄは、図１６に示すサービスプロセッサ２００Ｂの電力制御部３４Ｂの代わりに電力制御部３４Ｄを有する。サービスプロセッサ２００Ｄは、制御装置の一例である。サービスプロセッサ２００Ｄのその他の構成は、図１６に示すサービスプロセッサ２００Ｂと同様である。電力制御部３４Ｄは、図１６に示す電力制御部３４Ｂの構成に、システム静的電力値補正部３４９を追加している。なお、レジスタ３４１、３４６にそれぞれ格納される係数値ＦＡＣＴおよびシステム静的電力値は、図６での説明と同様に算出される。
【０１７４】
各プロセッサ１００Ａに許容される電力上限値ＰＬＩＭＩＴ（動的電力）は、システム電力上限値ＳＰＬＩＭＩＴが変更されると変化する。システム電力上限値ＳＰＬＩＭＩＴは、情報処理装置ＩＰＥ５に電力を供給する電源ユニットの能力に応じて変更され、あるいは、電源ユニットに接続される情報処理装置ＩＰＥ５の数に応じて変更される。システム電力上限値ＳＰＬＩＭＩＴの増加により電力上限値ＰＬＩＭＩＴが増加され、各プロセッサ１００Ａがクロック周波数を上げた場合、チップ温度は高くなる。一方、システム電力上限値ＳＰＬＩＭＩＴの減少により電力上限値ＰＬＩＭＩＴが減少され、各プロセッサ１００Ａがクロック周波数を下げた場合、チップ温度は低くなる。システム静的電力値（リーク電力値）は、チップ温度に依存して変化するため、システム電力上限値ＳＰＬＩＭＩＴが変更される場合、システム電力上限値ＳＰＬＩＭＩＴの変化に応じて補正されることが望ましい。
【０１７５】
システム静的電力値補正部３４９は、レジスタ３４５に格納されたシステム電力上限値ＳＰＬＩＭＩＴに基づいてシステム静的電力変換テーブルＴＢＬ２を参照し、静的電力変換用係数ＳＦＡＣＴを取得する。システム静的電力値補正部３４９は、取得した静的電力変換用係数ＳＦＡＣＴを用いて、レジスタ３４６に格納されたシステム静的電力値を補正し、補正したシステム静的電力値を上限値生成部３４８に出力する。これにより、システム電力上限値ＳＰＬＩＭＩＴの変更に応じてプロセッサ１００Ａのチップ温度が変化し、プロセッサ１００Ａのリーク電力値が変化する場合にも、変化するリーク電力値に合わせてシステム静的電力値を補正することができる。
【０１７６】
上限値生成部３４８は、システム静的電力値補正部３４９により補正されたシステム静的電力値に基づいて、式（５）を用いて電力上限値ＰＬＩＭＩＴ（動的電力）を算出する。これにより、チップ温度の変化に伴い変化するリーク電力値に応じて、誤差の少ない正確な電力上限値ＰＬＩＭＩＴ（動的電力）を算出することができる。システム静的電力変換テーブルＴＢＬ２の例は、図２５に示され、システム静的電力値補正部３４９の動作の例は、図２６に示される。
【０１７７】
なお、サービスプロセッサ２００Ｄは、図１８に示すサービスプロセッサ２００Ｃと同様に、係数値生成部３４３およびシステム静的電力値生成部３４４を有してもよい。この場合、情報処理装置ＩＰＥ５は、図６に示すプロセッサ１００Ａの代わりに、図１７に示すプロセッサ１００Ｃを有し、図１８と同様のばらつき指標値変換テーブルＴＢＬ１を有する。そして、レジスタ３４１には、係数値生成部３４３で生成された係数値ＦＡＣＴが格納され、レジスタ３４６には、システム静的電力値生成部３４４で生成されたシステム静的電力値が格納される。
【０１７８】
図２５は、図２４に示すシステム静的電力変換テーブルＴＢＬ２の一例を示す。システム静的電力変換テーブルＴＢＬ２は、様々なシステム電力上限値ＳＰＬＩＭＩＴを示す複数のシステム電力制約値ＳＰ毎に、静的電力変換用係数ＳＦＡＣＴを保持するエントリを有する。値ｐは、エントリ番号を示す。図２５に示す例では、システム電力制約値ＳＰが大きいほど、値ｐが大きいエントリに保持される。
【０１７９】
例えば、図２４に示すシステム静的電力値補正部３４９は、システム電力上限値ＳＰＬＩＭＩＴが１６０キロワットの場合、１６０キロワットのシステム電力制約値ＳＰと同じエントリに格納された静的電力変換用係数ＳＦＡＣＴ（＝０．５６）を選択する。システム静的電力値補正部３４９は、選択した静的電力変換用係数ＳＦＡＣＴをシステム静的電力値に乗じて、システム静的電力値を補正する。なお、システム電力上限値ＳＰＬＩＭＩＴが、互いに隣接する２つのエントリのシステム電力制約値ＳＰの間にある場合、システム静的電力値補正部３４９は、２つのシステム電力制約値ＳＰをシステム電力上限値ＳＰＬＩＭＩＴで内分する。そして、システム静的電力値補正部３４９は、内分により得たシステム電力制約値ＳＰに対応する静的電力変換用係数ＳＦＡＣＴを算出する（補間処理）。補間処理については、図２６で説明される。
【０１８０】
図２６は、図２４に示すシステム静的電力値補正部３４９の動作の一例を示す。例えば、図２６に示す動作は、サービスプロセッサ２００Ｄが起動時およびリセット解除時に実行する起動処理プログラムにより実現される。なお、図２６に示す動作は、システム電力上限値が変更されたことに基づいて実行されてもよい。
【０１８１】
まず、ステップＳ５００において、システム静的電力値補正部３４９は、システム静的電力変換テーブルＴＢＬ２のエントリ番号を示すカウンタ値ｐを”１”に設定する。次に、ステップＳ５０２において、システム静的電力値補正部３４９は、レジスタ３４５に格納されたシステム電力上限値ＳＰＬＩＭＩＴが、エントリｐに保持されたシステム電力制約値ＳＰ以下の場合、処理をステップＳ５０６に移行する。システム静的電力値補正部３４９は、システム電力上限値ＳＰＬＩＭＩＴが、エントリｐに保持されたシステム電力制約値ＳＰより大きい場合、処理をステップＳ５０４に移行する。
【０１８２】
ステップＳ５０４において、システム静的電力値補正部３４９は、カウンタ値ｐを”１”増加させ、処理をステップＳ５０２に戻す。ステップＳ５０２、Ｓ５０４により、システム電力上限値ＳＰＬＩＭＩＴ以上で、システム電力上限値ＳＰＬＩＭＩＴに最も近いシステム電力制約値ＳＰを保持するエントリが選択される。例えば、図２５に示すシステム静的電力変換テーブルＴＢＬ２において、システム電力上限値ＳＰＬＩＭＩＴが１６２ワットの場合、３番目のエントリ（ｐ＝３）が選択される。
【０１８３】
ステップＳ５０６において、システム静的電力値補正部３４９は、選択したエントリｐが保持するシステム電力制約値ＳＰ［ｐ］とエントリｐ−１が保持するシステム電力制約値ＳＰ［ｐ−１］とを、システム電力上限値ＳＰＬＩＭＩＴで内分する比を算出する。例えば、システム電力上限値ＳＰＬＩＭＩＴが１６２ワットの場合、内分する比は”３：２”になり、システム電力上限値ＳＰＬＩＭＩＴが１６４ワットの場合、内分する比は”１：４”になる。
【０１８４】
次に、ステップＳ５０８において、システム静的電力値補正部３４９は、算出した比に応じて、エントリｐ、ｐ−１が保持する静的電力変換用係数ＳＦＡＣＴを内分し、システム電力上限値ＳＰＬＩＭＩＴに対応する静的電力変換用係数ＳＦＡＣＴを取得する。
【０１８５】
次に、ステップＳ５１０において、システム静的電力値補正部３４９は、システム電力上限値ＳＰＬＩＭＩＴに静的電力変換用係数ＳＦＡＣＴを乗じて、補正後のシステム電力上限値ＳＰＬＩＭＩＴを取得する。システム静的電力値補正部３４９は、取得したシステム電力上限値ＳＰＬＩＭＩＴを上限値生成部３４８に出力する。
【０１８６】
図２７は、図２４に示すシステム静的電力変換テーブルＴＢＬ２に格納する情報の作成方法の一例を示す。例えば、システム静的電力変換テーブルＴＢＬ２に格納する情報は、プロセッサ１００Ａの設計時または情報処理装置ＩＰＥ５の設計時に、以下に示すように作成される。
【０１８７】
（１）システム静的電力変換テーブルＴＢＬ２の各エントリのシステム電力制約値ＳＰを、情報処理装置ＩＰＥ５に搭載されるプロセッサ１００Ａの数で除することで、エントリ毎にプロセッサ１００Ａの電力上限値ＰＬＩＭＩＴが算出される。
【０１８８】
（２）例えば、プロセッサ１００Ａを搭載するパッケージのモールド材料等を含むプロセッサ１００Ａの熱抵抗θｊａに電力上限値ＰＬＩＭＩＴを乗じた値に、外気温度Ｔａを加算することで、エントリ毎にプロセッサ１００Ａの温度（チップ温度）が算出される。
【０１８９】
（３）プロセッサ１００Ａの静的電力値の温度特性（プロセスばらつき毎）に基づいて、算出したチップ温度での静的電力値のプロセスばらつきによる変動を確率密度で重み付けした平均静的電力値ＰＳＴＡＴＩＣが、エントリ毎に算出される。ここで、プロセスばらつきは、プロセッサ１００Ａに搭載されるトランジスタの閾値電圧のばらつきおよび素子の遅延量のばらつきと相関がある。
【０１９０】
（４）システム電力制約値ＳＰの最大値ＳＰｍａｘ（図２５では２００キロワット）のエントリの静的電力変換用係数ＳＦＡＣＴが”１．０”に設定される。さらに、最大値ＳＰｍａｘでの平均静的電力値ＰＳＴＡＴＩＣと、他のエントリでの平均静的電力値ＰＳＴＡＴＩＣとの比に基づいて、他のエントリの静的電力変換用係数ＳＦＡＣＴが算出される。そして、算出した各エントリの静的電力変換用係数ＳＦＡＣＴがシステム静的電力変換テーブルＴＢＬ２に格納される。
【０１９１】
以上、図２４から図２７に示す実施形態においても、図１から図１５に示す実施形態と同様の効果を得ることができる。すなわち、演算処理装置１００Ａによる並列処理時にバリア同期の待ち時間の発生を低減することができ、電力キャッピングによりクロック周波数を制御する場合にも、消費電力を抑えつつ、処理性能が低下することを抑止することができる。演算処理装置１００Ａが消費する電力の総和が、情報処理装置ＩＰＥ５で許容された電力の上限値を超えることを抑止することができ、情報処理装置ＩＰＥ５の信頼性が低下することを抑止することができる。また、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、プロセッサ１００Ａの回路規模を小さくすることができる。
【０１９２】
さらに、図２４から図２７に示す実施形態では、システム電力上限値ＳＰＬＩＭＩＴの変更に応じてプロセッサ１００Ａのチップ温度が変化する場合にも、チップ温度に依存して変化するリーク電力値に合わせてシステム静的電力値を補正することができる。これにより、電力キャッピングで使用する電力上限値ＰＬＩＭＩＴの精度を図１から図１５に示す実施形態に比べて向上することができ、正確な電力キャッピングを実行することができる。
【０１９３】
図２８は、情報処理装置、演算処理装置および情報処理装置の制御方法の別の実施形態におけるサービスプロセッサの一例を示す。図６および図１６に示す要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。図２８に示すサービスプロセッサ２００Ｅは、図６に示すジョブを並列に実行可能な複数のプロセッサ１００Ａとともに情報処理装置ＩＰＥ６に搭載される。サービスプロセッサ２００Ｅは、制御装置の一例である。
【０１９４】
サービスプロセッサ２００Ｅは、図１６に示すサービスプロセッサ２００Ｂの電力制御部３４Ｂの代わりに電力制御部３４Ｅを有する。サービスプロセッサ２００Ｅのその他の構成は、図１６に示すサービスプロセッサ２００Ｂと同様である。電力制御部３４Ｅは、図１６に示す電力制御部３４Ｂのレジスタ３４５の代わりにレジスタ３４５１Ｅ、３４５２Ｅを有し、図１６に示す電力制御部３４Ｂの上限値生成部３４８の代わりに上限値生成部３４８Ｅを有する。なお、レジスタ３４１、３４６にそれぞれ格納される係数値ＦＡＣＴおよびシステム静的電力値は、図６での説明と同様に算出される。
【０１９５】
レジスタ３４５１Ｅは、ジョブＪＯＢを実行させるプロセッサ１００Ａを示すプロセッサＩＤリストを保持し、レジスタ３４５２Ｅは、ジョブＪＯＢを実行させるプロセッサ１００Ａに許容される動的電力の上限値であるジョブ電力上限値を保持する。
【０１９６】
上限値生成部３４８Ｅは、レジスタ３４５１Ｅ、３４５２Ｅ、３４６、３４７にそれぞれ保持されたプロセッサＩＤリスト、ジョブ電力上限値、システム静的電力値および誤差マージン値に基づいて、動的電力の電力上限値ＰＬＩＭＩＴを算出する。すなわち、上限値生成部３４８Ｅは、情報処理装置ＩＰＥ６に搭載されるプロセッサ１００Ａのうち、ジョブＪＯＢを並列に実行する所定数のプロセッサ１００Ａの電力上限値ＰＬＩＭＩＴを算出する。ジョブＪＯＢを並列に実行するプロセッサ１００Ａの数は、プロセッサＩＤリストから算出される。例えば、ジョブＪＯＢを並列に実行するプロセッサ１００Ａの数が増えると、電力上限値ＰＬＩＭＩＴは減少し、ジョブＪＯＢを並列に実行するプロセッサ１００Ａの数が減ると、電力上限値ＰＬＩＭＩＴは増加する。上限値生成部３４８Ｅの動作の例（すなわち、電力上限値ＰＬＩＭＩＴの求め方）は、図２９に示される。
【０１９７】
図２９は、図２８に示す電力制御部３４Ｅの動作の一例を示す。例えば、図２９に示す動作は、サービスプロセッサ２００Ｅが起動時およびリセット解除時に実行する起動処理プログラムにより実現される。
【０１９８】
まず、ステップＳ６００において、電力制御部３４Ｅの上限値生成部３４８Ｅは、レジスタ３４５１Ｅ、３４５２Ｅ、３４６、３４７にそれぞれ保持されたプロセッサＩＤリスト、ジョブ電力上限値、システム静的電力値および誤差マージン値を読み込む。
【０１９９】
次に、ステップＳ６０２において、上限値生成部３４８Ｅは、式（８）を用いて、電力上限値ＰＬＩＭＩＴを算出する。式（８）において、実行プロセッサ数ｋは、レジスタ３４５１Ｅに保持されたプロセッサＩＤリストに含まれるプロセッサ１００Ａの数であり、搭載プロセッサ数は、情報処理装置ＩＰＥ６に搭載されるプロセッサ１００Ａの数である。上限値生成部３４８Ｅは、算出した電力上限値ＰＬＩＭＩＴをレジスタ３４２に格納する。
ＰＬＩＭＩＴ＝ジョブ電力上限値／実行プロセッサ数ｋ−システム静的電力値／搭載プロセッサ数ｎ−誤差マージン値  ‥‥（８）
次に、ステップＳ６０４において、電力制御部３４Ｅは、プロセッサＩＤリストで指定されるプロセッサ１００Ａにおける電力キャッピング制御部１４のレジスタ１４２（図６）に、レジスタ３４２に格納された電力上限値ＰＬＩＭＩＴを格納し、動作を終了する。
【０２００】
以上、図２８から図２９に示す実施形態においても、図１から図１５に示す実施形態と同様の効果を得ることができる。すなわち、演算処理装置１００Ａによる並列処理時にバリア同期の待ち時間の発生を低減することができ、電力キャッピングによりクロック周波数を制御する場合にも、消費電力を抑えつつ、処理性能が低下することを抑止することができる。演算処理装置１００Ａが消費する電力の総和が、情報処理装置ＩＰＥ６で許容された電力の上限値を超えることを抑止することができ、情報処理装置ＩＰＥ６の信頼性が低下することを抑止することができる。また、静的電力値を含めた電力値を用いて電力キャッピングを実行する場合に比べて、プロセッサ１００Ａの回路規模を小さくすることができる。
【０２０１】
さらに、図２８から図２９に示す実施形態では、ジョブＪＯＢを並列に実行するプロセッサ１００Ａの数が変化する場合にも、プロセッサ１００Ａの数の変化に応じて、電力上限値ＰＬＩＭＩＴを算出することができる。これにより、ジョブＪＯＢを並列に実行するプロセッサ１００Ａの数に応じた電力上限値ＰＬＩＭＩＴを用いて、電力キャッピングを実行することができる。この結果、ジョブＪＯＢを並列に実行するプロセッサ１００Ａの数が変化しても電力上限値ＰＬＩＭＩＴが変更されない場合に比べて、電力キャッピングの精度を向上することができる。
【０２０２】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２０３】
１…演算処理部；２…係数値保持部；３…累積値保持部；４…電力上限値保持部；５…制御部；１０…機能ブロック部；１２…電力モニタ部；１４…電力キャッピング制御部；１６…電圧周波数制御部；１８…ＰＬＬ；２０、２２…通信Ｉ／Ｆ；２４…ばらつき保持部；３０…ジョブ発行制御部；３２…電源制御部；３４、３４Ｂ、３４Ｃ、３４Ｄ、３４Ｅ…電力制御部；３６、３８、４０…通信Ｉ／Ｆ；１００（１００（１）、１００（２）、１００（３））…演算処理装置；１００Ａ（１００Ａ（１）、１００Ａ（２）、１００Ａ（３））、１００Ｃ…演算プロセッサ；１２０…電力累積部；１２２…レジスタ；１２４…ポピュレーションカウンタ；１２６…加算器；１２８…累積レジスタ；１４２…レジスタ；２００…制御装置；２００Ａ、２００Ｂ、２００Ｃ、２００Ｄ、２００Ｅ…サービスプロセッサ；３４１、３４２…レジスタ；３４３…係数値生成部；３４４…システム静的電力値生成部；３４５、３４６、３４７…レジスタ；３４８、３４８Ｅ…上限値生成部；３４９…システム静的電力値補正部；３４５１Ｅ、３４５２Ｅ…レジスタ；ＣＡＣＨＥ…キャッシュメモリ；ＣＯＲＥ（ＣＯＲＥ１、ＣＯＲＥ２）…プロセッサコア；ＥＶ…イベント信号；ＦＡＣＴ…係数値；ＩＰＥ１、ＩＰＥ２、ＩＰＥ３、ＩＰＥ４、ＩＰＥ５、ＩＰＥ６…情報処理装置；ＭＣＮＴ…メモリアクセスコントローラ；ＰＬＩＭＩＴ…電力上限値；ＰＭＯＮ…モニタ値；ＳＥＴＩＮＦ…設定情報；ＳＰＬＩＭＩＴ…システム電力上限値；ＳＵＢＭ…サブモニタ；ＴＢＬ１…ばらつき指標値変換テーブル；ＴＢＬ２…システム静的電力変換テーブル；ＴＭＲ…タイマ；ＶＡＬＩＤ…バリッド信号；ＶＧＥＮ…電圧生成器
【図１】
2017102790.tif 000005
【図２】
2017102790.tif 000006
【図３】
2017102790.tif 000007
【図４】
2017102790.tif 000008
【図５】
2017102790.tif 000009
【図６】
2017102790.tif 000010
【図７】
2017102790.tif 000011
【図８】
2017102790.tif 000012
【図９】
2017102790.tif 000013
【図１０】
2017102790.tif 000014
【図１１】
2017102790.tif 000015
【図１２】
2017102790.tif 000016
【図１３】
2017102790.tif 000017
【図１４】
2017102790.tif 000018
【図１５】
2017102790.tif 000019
【図１６】
2017102790.tif 000020
【図１７】
2017102790.tif 000021
【図１８】
2017102790.tif 000022
【図１９】
2017102790.tif 000023
【図２０】
2017102790.tif 000024
【図２１】
2017102790.tif 000025
【図２２】
2017102790.tif 000026
【図２３】
2017102790.tif 000027
【図２４】
2017102790.tif 000028
【図２５】
2017102790.tif 000029
【図２６】
2017102790.tif 000030
【図２７】
2017102790.tif 000031
【図２８】
2017102790.tif 000032
【図２９】
2017102790.tif 000033