(57)【特許請求の範囲】
【請求項１】
複数のプロセッサを備えた情報処理装置に搭載された電源回路から供給される電流の情報を取得する電流変動試験のための前記複数のプロセッサの動作条件を設定する試験条件設定方法であって、
前記複数のプロセッサのうちの第１のプロセッサが、プロセッサ毎に、該プロセッサの１回の起動により動作状態を維持させる動作間隔の長さと、該プロセッサの１回の停止により停止状態を維持させる停止間隔の長さとを、前記動作間隔及び前記停止間隔の和であるサイクル間隔の長さが前記複数のプロセッサの各サイクル間隔の長さの比率が互いに素数比となるように設定し、
前記第１のプロセッサが、前記プロセッサ毎に設定された前記動作間隔及び前記停止間隔を、前記電流変動試験のための前記プロセッサ毎の動作条件として設定する、
ことを特徴とする前記情報処理装置が実行する試験条件設定方法。
【請求項２】
前記動作間隔、及び前記停止間隔のうちの一方は前記複数のプロセッサで同じ長さとする、
ことを特徴とする請求項１記載の試験条件設定方法。
【請求項３】
複数のプロセッサを備えた情報処理装置に搭載された電源回路から供給される電流の情報を取得する電流変動試験を行うための方法であって、
前記複数のプロセッサのうちの第１のプロセッサが、前記電流変動試験のための前記複数のプロセッサの動作条件として、プロセッサ毎に、前記プロセッサの１回の起動により動作状態を維持させる動作間隔の長さと、前記プロセッサの１回の停止により停止状態を維持させる停止間隔の長さとを、前記動作間隔及び前記停止間隔の和であるサイクル間隔の長さが前記複数のプロセッサの各サイクル間隔の長さの比率が互いに素数比となるように設定し、
前記電流変動試験の開始指示が入力された場合に、前記複数のプロセッサのそれぞれが設定された前記動作間隔及び前記停止間隔の長さに従って、起動、及び停止を繰り返す、
ことを特徴とする前記情報処理装置が実行する電流変動試験方法。
【請求項４】
前記動作間隔、及び前記停止間隔のうちの一方は前記複数のプロセッサで同じ長さである、
ことを特徴とする請求項３記載の電流変動試験方法。
【請求項５】
複数のプロセッサを備えた情報処理装置において、
前記プロセッサの１回の起動により動作状態を維持させる動作間隔の長さと、該プロセッサの１回の停止により停止状態を維持させる停止間隔の長さとが、前記動作間隔及び前記停止間隔の和であるサイクル間隔の長さが前記複数のプロセッサの各サイクル間隔の長さの比率が互いに素数比となるように、設定されている条件データを、電流変動試験のための前記複数のプロセッサの動作条件として格納した格納手段と、
前記プロセッサ毎に、該プロセッサの起動、及び停止を行わせる起動／停止手段と、
前記電流変動試験の開始指示が入力された場合に、前記格納手段に格納された前記条件データに基づいて、前記起動／停止手段に各プロセッサの起動、及び停止を行わせる動作制御手段と、
を具備することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置が使用する電流の変動を発生させる電流変動試験のための技術に関する。
【背景技術】
【０００２】
コンピュータに代表される情報処理装置は、複数の電源回路を搭載しているのが普通である。それにより、大元の電源からの電流は、１つ以上の電源を介して、情報処理装置に搭載された各負荷に供給されるようになっている。そのように１つ以上の電源を介して電流を供給することにより、各負荷に個別に必要な電圧を印加させることができる。以降、便宜的に、大元の電源は「電源ユニット」、その電源ユニット以外の電源は「電源回路」と呼び区別する。
【０００３】
情報処理装置に搭載される負荷、例えばＣＰＵ（ＣＰＵ：Central Processing Unit）等のプロセッサ、メモリ（メモリモジュール）、及びＩ／Ｏ（Input/Output）コントローラ等によって使用される電流は、常に一定ではない。それにより、電源ユニットから電源回路を介して実際に情報処理装置に供給される電流は、状況に応じて変動する。このため、電源ユニットには、使用する電流、つまり消費電力によって、電圧が異常なレベルにならないことが求められる。特にサーバ等に用いられる情報処理装置には、高い信頼性が要求されることから、電源ユニットは情報処理装置の安定した動作を保証するものでなくてはならない。このため、従来、情報処理装置の使用する電流の変動を発生させる電流変動試験が行われている。この電流変動試験を行うことにより、情報処理装置の消費電力の変動に係わらず、電源ユニットが適切な電圧を維持させるか否かを確認することができる。
【０００４】
情報処理装置に搭載されるＣＰＵは、消費電力を低減できるように、停止（パワーオフ）、及び起動（パワーオン）を任意のタイミングで行えるようになっているのが普通である。そのＣＰＵは、情報処理装置に搭載される負荷のなかでも消費電力は大きい。このことから、従来の一つの電流変動試験方法では、ＣＰＵの起動、及び停止を設定された周期で繰り返し行い、情報処理装置の使用する電流を大きく変動させている。
【０００５】
上記のような従来の一つの電流変動試験方法では、各ＣＰＵの起動、及び停止を行う各タイミングは全て同じとしていた。このため、ＣＰＵを複数、搭載した情報処理装置を対象にした試験では、最大電流変動を発生させるためには各ＣＰＵの起動、及び停止を含む動作周期を一致、つまり同期させなければならない。
【０００６】
ＣＰＵの起動、及び停止を行う各タイミングは、ＣＰＵによって、つまりソフトウェア制御によって設定される。複数のＣＰＵが搭載された情報処理装置では、各ＣＰＵがソフトウェア制御によって、自ＣＰＵの起動、及び停止を行う各タイミングを設定する。電流変動試験では、各ＣＰＵは、ソフトウェア制御によって、起動、及び停止を行う各タイミングを設定するためのデータを取得しなければならない。このようなことから、各ＣＰＵの動作周期を同期させることは非常に困難である。このことから、情報処理装置の使用する電流の最大変動をより容易に発生できるようにすることが好ましい。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２２１８５６号公報
【特許文献２】特開２００５−３５４３５４号公報
【特許文献３】特開２０１０−８５１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明を適用した１システムは、プロセッサを複数搭載した情報処理装置に供給される電流の最大変動を発生させる電流変動試験をより容易に行えるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明を適用した１システムでは、複数のプロセッサを備えた情報処理装置に搭載された電源回路から供給される電流を変動させる電流変動試験の条件を設定する場合、プロセッサ毎に、該プロセッサの１回の起動により動作状態を維持させる動作間隔、及び該プロセッサの１回の停止により停止状態を維持させる停止間隔を含むサイクル間隔の長さを、電流変動試験に用いる複数のプロセッサの各サイクル間隔の長さの比率が互いに素数比となる長さに設定し、プロセッサ毎に設定されたサイクル間隔の長さを、複数のプロセッサの電流変動試験の条件として設定する。それにより、電流変動試験は、設定されたサイクル間隔の長さに従って、複数のプロセッサをそれぞれ起動、及び停止させることで行われる。
【発明の効果】
【００１０】
本発明を適用した場合には、プロセッサを複数、搭載した情報処理装置の使用する電流の最大変動を発生させる電流変動試験をより容易に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態による情報処理装置の構成を説明する図である。
【図２】ＣＰＵの回路構成を説明する図である。
【図３】本実施形態による電流変動試験方法の実施方法を説明する図である。
【図４】ＣＰＵ制御リストの内容例を説明する図である。
【図５】ＣＰＵの起動／停止制御を説明する図である。
【図６】各ＣＰＵの状態の時間変化の例を表すタイミングチャートである（その１）。
【図７】各ＣＰＵの状態の時間変化の例を表すタイミングチャートである（その２）。
【図８】本実施形態による試験制御プログラムによって各ＣＰＵが実行する処理の流れを表すフローチャートである。
【図９】条件設定処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による情報処理装置の構成を説明する図である。この情報処理装置１は、例えば１台のコンピュータ（サーバ）として用いられるものである。この情報処理装置１は、サーバを構成するサーバブレード、或いはシステムボード等のモジュール装置のような１台のコンピュータとして機能する情報処理装置であっても良い。本実施形態による電流変動試験方法、及び試験条件設定方法は、この情報処理装置１に適用される。
【００１３】
図１に表す情報処理装置１は、４つのプロセッサであるＣＰＵ１０１（１０１−０〜１０１−３）を搭載し、各ＣＰＵ１０１にはそれぞれメモリ（メモリモジュール）１０２（１０２−０〜１０２−３）が接続されている。各ＣＰＵ１０１は、システムバス１０８を介して、ＲＯＭ（Read Only Memory）１０３、共有メモリ１０４、Ｉ／Ｏインターフェース１０５、入力インターフェース１０６、出力インターフェース１０７がそれぞれ接続されている。不図示のファン（モータ）を駆動するファン駆動回路１０９は、メンテナンスバス１１０に接続されている。
【００１４】
上記の構成において、ＲＯＭ１０３は、例えば各ＣＰＵ１０１が実行するＢＩＯＳ（Basic Input/Output System）コードを格納している。共有メモリ１０４は、例えば各ＣＰＵ１０１の共有すべきデータの格納に用いられるメモリである。Ｉ／Ｏインターフェース１０５は、外部装置との間でデータの入出力を行う。図１では、外部装置として、外部記憶装置１１、ネットワーク１２を表している。
【００１５】
入力インターフェース１０６は、入力装置１３を介した指示を入力可能なインターフェースである。入力装置１３としては、キーボード、ポインティングデバイス等のユーザが操作を行うための操作装置、或いはコンソール等が相当する。出力インターフェース１０７は、表示装置等の出力装置１４にデータを出力するためのインターフェースである。
【００１６】
メンテナンスバス１１０は、外部からファン駆動回路１０９の動作管理、及び情報処理装置１の電源管理に用いられる。このメンテナンスバス１１０には、ファン駆動回路１０９の他に、外部のシステム制御装置１５が接続されている。このシステム制御装置１５は、例えば情報処理装置１全体を管理するための別の情報処理装置である。
【００１７】
図２は、ＣＰＵの回路構成を説明する図である。各ＣＰＵ１０１は、図２に表すように、ＣＰＵコア２０１、バスインターフェース２０２、タイマ割り込みコントローラ２０３、ＣＰＵ停止コントローラ２０４、ＭＣ（Memory Controller）２０５、二次キャッシュ（Ｌ２（Level 2）キャッシュ）２０６が内部バス２０７に接続された構成となっている。
【００１８】
ＣＰＵコア２０１は、各種コマンドを実行するための演算処理を行う。バスインターフェース２０２は、システムバス１０８を介したデータの送受信を行う。
タイマ割り込みコントローラ２０３は、指定されたタイミングに応じて、指定された種類の割り込み信号をＣＰＵコア２０１に対して出力する。この割り込み信号には、ＣＰＵ１０１を停止状態から動作状態（実行状態）に復帰（移行）させるためのものが含まれる。その停止状態とは、例えばサスペンド状態である。以降、ＣＰＵ１０１を停止状態から動作状態に復帰させる割り込み信号は「復帰割り込み信号」と呼ぶことにする。特に断らない限り、割り込み信号は復帰割り込み信号を指す意味で用いる。
【００１９】
タイマ割り込みコントローラ２０３は、レジスタ２０３ａ、及びカウンタ２０３ｂを備えている。これらレジスタ２０３ａ、及びカウンタ２０３ｂは、復帰割り込み信号の出力用である。レジスタ２０３ａは、例えばカウンタ２０３ｂのカウント値と比較される値の保持に用いられ、カウンタ２０３ｂは、例えば０を初期値として、その値を随時、インクリメントするカウンタである。割り込み信号（復帰割り込み信号）は、例えばレジスタ２０３ａの値がカウンタ２０３ｂのカウント値と一致した場合に出力される。カウンタ２０３ｂの値は、割り込み信号を出力した後、初期値にリセットされる。それにより、カウンタ２０３ｂのカウントを開始させてから復帰割り込み信号が出力されるまでの間隔は、レジスタ２０３ａに保持させる値（データ）によって指定することができる。
【００２０】
ＣＰＵ停止コントローラ２０４は、ＣＰＵ１０１を動作状態から停止状態に移行させる制御信号（割り込み信号）をＣＰＵコア２０１に出力可能なコントローラであり、レジスタ２０４ａ、及びカウンタ２０４ｂを備えている。これらレジスタ２０４ａ、及びカウンタ２０４ｂは、制御信号の出力用である。レジスタ２０４ａは、例えばカウンタ２０４ｂのカウント値と比較される値の保持に用いられ、カウンタ２０４ｂは、例えば０を初期値として、その値を随時、インクリメントするカウンタである。制御信号は、例えばレジスタ２０４ａの値がカウンタ２０４ｂのカウント値と一致した場合に出力される。カウンタ２０４ｂの値は、制御信号を出力した後、初期値にリセットされる。それにより、カウンタ２０４ｂのカウントを開始させてから制御信号が出力されるまでの間隔は、レジスタ２０４ａに保持させる値（データ）によって指定することができる。
【００２１】
タイマ割り込みコントローラ２０３及びタイマ割り込みコントローラ２０３の各カウンタ２０３ｂ及び２０４ｂのカウント開始は、ＣＰＵコア２０１の制御によって行われる。各カウンタ２０３ｂ及び２０４ｂは、例えば固定の周期のクロック（例えばシステムクロックを所定数で分周したもの。以降「タイマクロック」と呼ぶ）により動作する。このため、復帰割り込み信号、及び制御信号の各出力タイミングは、タイマクロックの周期を単位として調整することができる。
【００２２】
ＭＣ２０５は、ＣＰＵコア２０１による指示、或いは内部バス２０７及びバスインターフェース２０２を介した他のＣＰＵ１０１の指示に従って、メモリ１０２へのアクセスを行う。二次キャッシュ２０６は、使用頻度の高いデータの保存に用いられる。
【００２３】
本実施形態による電流変動試験方法、及び試験条件設定方法は、上記のようなＣＰＵ１０１を複数、搭載した情報処理装置１に適用されることを想定している。以降は、情報処理装置１に適用されるそれらの方法について詳細に説明する。
【００２４】
図３は、本実施形態による電流変動試験方法の実施方法を説明する図である。
４つのＣＰＵ１０１が搭載された情報処理装置１には、電源ユニット１３０から電流が供給される。４つのＣＰＵ１０１には、それぞれ電源回路（図３中「最終段電源」（ＰＯＬ：Point Of  Load））１３２（１３２−０〜１３２−３）が用意され、各電源回路１３２には、ＤＣ−ＤＣコンバータ１３１を介して電源ユニット１３０からの電流が供給される。
【００２５】
システム制御装置１５は、例えば信号線を介して、各電源回路１３２、及び電源ユニット１３０のオン／オフを制御する。また、システム制御装置１５は、電源ユニット１３０から、電圧値、電流値等の状況データを随時、取得することができる。それにより、システム制御装置１５は、電流変動試験を実施する場合、電源ユニット１３０の状態を監視し、電圧値、及び電流値等の試験データを取得する装置として機能する。電流変動試験は、電源ユニット１３０及び各電源回路１３２は全てオンとさせた状態で実施される。
【００２６】
電流変動試験を実施する場合、各ＣＰＵ１０１は、電流変動試験を実施するための試験制御プログラム１４０、或いは１５０と、ＣＰＵ活性プログラム１４５を実行する。ＣＰＵ活性プログラム１４５は、ＣＰＵ１３１の消費電力がより大きくなるように、ＣＰＵ１３１のリソースを効率的に使用するプログラムである。試験制御プログラム１４０及び１５０は、ＣＰＵ活性プログラム１４５を用いた電流変動試験を実現させる。
【００２７】
その電流変動試験では、４つのＣＰＵ１０１のうちの１つはマスタとして機能し、残りの３つはスレーブとして機能する。試験制御プログラム１４０は、マスタとして機能させるＣＰＵ１０１に実行させるものであり、試験制御プログラム１５０は、スレーブとして機能させるＣＰＵ１０１に実行させるものである。図３では、ＣＰＵ１０１−０が試験制御プログラム１４０を実行し、ＣＰＵ１０１−１〜１０１−３が試験制御プログラム１５０を実行することを表している。以降、試験制御プログラム１４０を実行するＣＰＵ１０１−０は他のＣＰＵ１０１と区別する場合「マスタＣＰＵ１０１」と表記する。試験制御プログラム１５０を実行するＣＰＵ１０１−１〜１０１−３はマスタＣＰＵ１０１と区別する場合「スレーブＣＰＵ１０１」と表記する。
【００２８】
試験制御プログラム１４０は、機能として、構成決定部１４１、条件設定部１４２、試験実行制御部１４３を備える。
電流変動試験を実施する間、各ＣＰＵ１０１は停止状態と動作状態を交互に繰り返す。本実施形態では、停止状態を維持させる間隔（以降「停止間隔」）と、動作状態を維持させる間隔（以降「動作間隔」、或いは「実行間隔」）とを電流変動試験の実施のための試験条件とし、その試験条件を各ＣＰＵ１０１で異ならせるようにしている。構成決定部１４１は、ＣＰＵ１０１毎に試験条件を設定するために必要な情報処理装置１のＣＰＵ数を決定する。そのＣＰＵ数の決定は、ＲＯＭ１０３に格納されている、情報処理装置１のハードウェア構成情報１６０を参照して行われる。決定されたＣＰＵ数は、対象ＣＰＵ数１７１として、例えば共有メモリ１０４に確保された共通領域１７０に保存される。ハードウェア構成情報１６０には、ＣＰＵ数以外の情報も含まれる。共通領域１７０は、共有メモリ１０４以外の記憶装置、例えばマスタＣＰＵ１０１に接続されたメモリ１０２−０に確保しても良い。
【００２９】
条件設定部１４２は、対象ＣＰＵ数１７１を参照することにより、ＣＰＵ１０１毎に、停止間隔、及び実行間隔を設定する。ＣＰＵ１０１の停止状態への移行、停止状態から実行状態への移行は、上記ＣＰＵ停止コントローラ２０４、及びタイマ割り込みコントローラ２０３を用いて行われる。このことから、これら停止間隔、及び実行間隔は、タイマクロックの１周期を単位として表される数値（整数値）によって設定される。１回の停止間隔、１回の実行間隔により１つのサイクルが形成されることから、１回の停止間隔と１回の実行間隔から形成される間隔は「サイクル間隔」と呼ぶことにする。
【００３０】
条件設定部１４２がＣＰＵ１０１毎に設定した停止間隔、実行間隔、及びサイクル間隔（の各数値）は、ＣＰＵ制御リスト１７２として共通領域１７０に格納される。以降、ＣＰＵ毎に設定された停止間隔、実行間隔、及びサイクル間隔（の各数値）は「ＣＰＵ制御情報」と総称する。特定のＣＰＵ制御情報は、そのＣＰＵ制御情報がＣＰＵ１０１−０を対象にしている場合、「ＣＰＵ０制御情報」と呼ぶことにする。これは、他のＣＰＵ制御情報も同様である。
【００３１】
図４は、ＣＰＵ制御リストの内容例を説明する図である。図４に表すように、ＣＰＵ制御情報は、ＣＰＵ１０１毎に分けて格納される。ＣＰＵ番号は、ＣＰＵ１０１の識別情報であり、例えば「１０１−」の後に続く数値が相当する。つまり例えばＣＰＵ１０１−０のＣＰＵ番号は「０」である。
【００３２】
図４に表す例では、実行間隔はＣＰＵ１０１全てで「１」と共通になっており、停止間隔がＣＰＵ１０１毎に異なっている。停止間隔をＣＰＵ１０１毎に異ならせることで、任意の２つのＣＰＵ１０１間のサイクル間隔の比率は、つまり全ての２つのＣＰＵ１０１間のサイクル間隔の比率は、互いに素の２つの整数を用いて表せるものとなっている。本実施形態では、任意の２つのＣＰＵ間のサイクル間隔の比率が互いに素の２つの整数となるように、ＣＰＵ１０１毎に設定するサイクル間隔の値は互いに異なる素数としている。互いに素の２つの整数とは、＋１と−１以外に共通の約数が存在しない２つの整数のことである。このことから、２つの異なる素数は互いに素の関係となっている。
【００３３】
試験実行制御部１４３は、条件設定部１４２がＣＰＵ制御リスト１７２を共通領域１７０に保存した後、電流変動試験の実施を表すスタートフラグ１７３を共通領域１７０に格納し、ＣＰＵ活性プログラム１４５を起動させる。また、試験実行制御部１４３は、ＣＰＵ制御リスト１７２中のマスタＣＰＵ１０１のＣＰＵ０制御情報を抽出し、そのＣＰＵ０制御情報に従って、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各レジスタ２０３ａ、及び２０４ａに値を格納し、各カウンタ２０３ｂ及び２０４ｂのカウントを開始させる。その後は、電流変動試験の終了タイミングが到来するまで、ＣＰＵ活性プログラム１４５の実行状態を維持させる。電流変動試験の終了タイミングの到来とは、例えば予め定めた試験時間が経過するか、或いはオペレータによる終了指示が行われることである。試験実行制御部１４３は、終了タイミングの到来により、例えばスタートフラグ１７３を電流変動試験の終了を表すものに書き換える。以降、スタートフラグ１７３を電流変動試験の実施を表すものに書き換えることを「セット」と呼び、スタートフラグ１７３を電流変動試験の終了を表すものに書き換えることを「リセット」と呼ぶことにする。
【００３４】
一方、スレーブＣＰＵ１０１の試験実行制御部１５１は、共通領域１７０のスタートフラグ１７３をポーリング（監視）することで、電流変動試験の実施タイミング、或いは終了タイミングを認識する。電流変動試験の実施タイミング、つまりスタートフラグ１７３のセットを認識した場合、試験実行制御部１５１は、ＣＰＵ活性プログラム１４５を起動させる。また、試験実行制御部１５１は、ＣＰＵ制御リスト１７２を参照し、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各レジスタ２０３ａ、及び２０４ａに値を格納し、各カウンタ２０３ｂ及び２０４ｂのカウントを開始させる。その後は、電流変動試験の終了タイミングが到来するまで、つまりスタートフラグ１７３がリセットされるまで、ＣＰＵ活性プログラム１４５の実行状態を維持させる。
【００３５】
上記試験制御プログラム１４０、１５０、ＣＰＵ活性プログラム１４５のプログラム群は、例えば図１において、外部記憶装置１１、或いはネットワーク１２を介して接続された外部装置に格納されている。各ＣＰＵ１０１がＢＩＯＳコードを実行している状況時において、オペレータが入力装置１３を操作してプログラム群の保存場所を指定し、そのプログラム群に情報処理装置１をアクセスさせる。そのアクセスによって、各ＣＰＵ１０１は試験制御プログラム１４０或いは１５０と、ＣＰＵ活性プログラム１４５をメモリ１０２にロードする。それにより、各ＣＰＵ１０１は試験制御プログラム１４０或いは１５０を実行可能な状態になる。本実施形態による情報処理装置１は、各ＣＰＵ１０１が試験制御プログラム１４０或いは１５０を実行することで実現される。
【００３６】
試験制御プログラム１４０或いは１５０と、ＣＰＵ活性プログラム１４５の各ＣＰＵ１０１へのロードは、そのロードを行うためのプログラムを用意して、その用意したプログラムに行わせるようにしても良い。電流変動試験を実施可能な状態の実現方法は、特に限定されるものではない。
【００３７】
上記プログラム群の保存場所の指定等は、出力装置１４を見ながら行うことができる。それにより、図３の入出力制御部１２０は、図１の入力インターフェース１０６、及び出力インターフェース１０７をまとめたものに相当する。
【００３８】
図５は、ＣＰＵの起動／停止制御を説明する図である。図５において、「停止用割り込みサイクル」は、時間軸上でＣＰＵ停止コントローラ２０４が制御信号を出力するタイミングを表し、「ＣＰＵ実行、停止状態」は、時間軸上でＣＰＵ１０１の状態変化を表している。ＣＰＵ停止コントローラ２０４が制御信号を出力するタイミング、ＣＰＵ１０１の動作状態は共にＨ（High）レベルで表している。ａは停止間隔、ｂは実行間隔、ｃはサイクル間隔をそれぞれ表している。Ｔはタイマクロックの１周期を表している。
【００３９】
上記のように、各ＣＰＵ１０１の動作状態から停止状態への移行、及び停止状態から動作状態への移行は、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４がそれぞれＣＰＵコア２０１に出力する信号によって行われる。各ＣＰＵ１０１が停止状態に移行してから次に停止状態に移行するまでの間隔はサイクル間隔ｃに等しい。このため、各ＣＰＵ１０１のＣＰＵコア２０１は、ＣＰＵ停止コントローラ２０４のレジスタ２０４ａに、サイクル間隔ｃを表す値を格納する。
【００４０】
各ＣＰＵ１０１が動作状態に移行してから次に動作状態に移行するまでの間隔もサイクル間隔ｃに等しい。このため、各ＣＰＵ１０１のＣＰＵコア２０１は、タイマ割り込みコントローラ２０３のレジスタ２０３ａに、サイクル間隔ｃを表す値を格納する。停止間隔ａ及び実行間隔ｂの実現は、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各カウンタ２０３ｂ及び２０４ｂのカウント開始タイミングを制御することで実現する。そのカウント開始タイミングの制御により、ＣＰＵ停止コントローラ２０４が制御信号を出力してから停止間隔ａが経過した後にタイマ割り込みコントローラ２０３に割り込み信号を出力させる。それにより、各ＣＰＵ１０１は、設定されたＣＰＵ制御情報に従って、動作状態から停止状態への移行、及び停止状態から動作状態への移行を行うことができる。
【００４１】
本実施形態では、実行間隔ｂ及び停止間隔ａの一方をＣＰＵ１０１全てで共通とし、他方をＣＰＵ１０１毎に異ならせることにより、任意の２つのＣＰＵ１０１間のサイクル間隔ｃの比率は互いに素の２つの整数を用いて表せるものとしている。そのように実行間隔ｂおよび停止間隔ａを設定したサイクル間隔ｃでは、時間の経過に伴い、共通とした間隔のＣＰＵ１０１間の時間差が変化する。その時間差は、任意の２つのＣＰＵ１０１間のサイクル間隔ｃの比率を互いに素の２つの整数により表せるものとしているために、０から２つの整数のうちの小さい整数未満の間で様々に変化する。
【００４２】
電流変動試験は、マスタＣＰＵ１０１がスタートフラグ１７３をセットすることにより開始される。各スレーブＣＰＵ１０１は個別に、スタートフラグ１７３がセットされた後、セットされたスタートフラグ１７３を確認する。このため、電流変動試験を開始するタイミングは、マスタＣＰＵ１０１と各スレーブＣＰＵ１０１とで異なるだけでなく、スレーブＣＰＵ１０１間でも異なる。しかし、上記のようなサイクル間隔ｃを各ＣＰＵ１０１に設定することにより、そのようなタイミングの差によるＣＰＵ１０１間の実行間隔ｂ或いは停止間隔ａの時間差が０となる状況が発生する。電流が大きくなる方向の最大変動、或いは電流が小さくなる方向の最大変動は、そのような状況で発生する。このことから、電流の最大変動を発生させる電流変動試験を行うことができる。
【００４３】
この状況は、各ＣＰＵ１０１の動作を同期させるようなことを行わなくとも発生する。従来、そのような同期の実現には、１週間程度の時間が必要だった。このようなことから、同期を行うような電流変動試験と比較して、電流変動試験は極めて容易に行うことができる。
【００４４】
図６、及び図７は、各ＣＰＵの状態の時間変化の例を表すタイミングチャートである。図６及び図７において、「ＣＰＵ１」〜「ＣＰＵ４」はそれぞれＣＰＵ１０１−０〜１０１−３を表している。レベルがＬ（Low）とH(High）の２段階で変化する波形は、Lが停止状態、Hが動作状態を表している。図７に表すケースでは、ＣＰＵ１０１−１（ＣＰＵ２）とＣＰＵ１０１−３（ＣＰＵ４）の状態変化が、１タイムクロック分（１単位分）、図６に表すケースより遅れている。図６及び図７共に、実行間隔ｂをＣＰＵ１０１全てで共通としたケースである。
【００４５】
図６に表すケースでは、電流変動試験を開始した後、時刻ｔ１で各ＣＰＵ１０１の動作状態が同期、つまり各ＣＰＵ１０１で停止状態から動作状態への移行、及びその後の動作状態から停止状態への移行が同期している。図７に表すケースでは、時刻ｔ２で各ＣＰＵ１０１の動作状態が同期している。このことから明らかなように、上記のようなサイクル間隔ｃの各ＣＰＵ１０１への設定を行った場合、各ＣＰＵ１０１が任意のタイミングで電流変動試験を開始したとしても、状態の移行が同期するタイミングを発生させることができる。
【００４６】
各ＣＰＵ０１０１が同時に停止状態から動作状態に移行する場合、電流が増大する方向の最大電流変動が発生する。各ＣＰＵ０１０１が同時に動作状態から停止状態に移行する場合、電流が減少する方向の最大電流変動が発生する。実行間隔ｂ及び停止間隔ａの一方をＣＰＵ１０１全てで共通とした場合、その２種類の最大電流変動が短い間隔内で発生する。このため、電流変動試験を効率的に行うことができ、システム制御装置１５を介した電源ユニット１３０の状態監視もより容易となる。
【００４７】
実行間隔ｂをＣＰＵ１０１全てで共通とした場合、上記のように、電流が増大する方向の最大電流変動→電流が減少する方向の最大電流変動、の順に２種類の最大電流変動が発生する。停止間隔ａをＣＰＵ１０１全てで共通とした場合、逆に、電流が減少する方向の最大電流変動→電流が増大する方向の最大電流変動、の順に２種類の最大電流変動が発生する。
【００４８】
このようなことから、実行間隔ｂ及び停止間隔ａの一方をＣＰＵ１０１全てで共通とすることにより、２種類の最大電流の変動の発生タイミングは制御することができる。それにより、電流変動試験の実施中、その発生タイミングを考慮した電源ユニット１３０の監視を行うことができる。
【００４９】
図８は、本実施形態による試験制御プログラムによって各ＣＰＵが実行する処理の流れを表すフローチャートである。次に図８を参照して、試験制御プログラム１４０及び１５０によってマスタＣＰＵ１０１及びスレーブＣＰＵ１０１でそれぞれ実現される動作について詳細に説明する。
【００５０】
試験制御プログラム１４０は、例えばユーザインターフェースを提供し、オペレータは、入力装置１３を介して、電源変動試験の開始、或いは終了を指示する。図８には、電流変動試験の開始をオペレータが指示することを契機に実行される処理を抜粋して表している。
【００５１】
先ず、マスタＣＰＵ１０１（のＣＰＵコア２０１）は、システムバス１０８を介してＲＯＭ１０３にアクセスし、ＲＯＭ１０３に格納されているハードウェア構成情報１６０を取得する。取得したハードウェア構成情報１６０から対象ＣＰＵ数１７１を抽出し、抽出した対象ＣＰＵ数１７１を共有メモリ１０４の共有領域１７０に格納する（以上Ｓ１）。その格納後、マスタＣＰＵ１０１は、各ＣＰＵ１０１に対し、停止間隔ａ及び実行間隔ｂを含むサイクル間隔ｃを試験条件として設定する条件設定処理を実行する（Ｓ２）。この条件設定処理の実行により、共有領域１７０にＣＰＵ制御リスト１７２が格納される。
【００５２】
図９は、条件設定処理のフローチャートである。ここで上記Ｓ２として実行される条件設定処理について、図９を参照して詳細に説明する。この条件設定処理は、実行間隔ｂを各ＣＰＵ１０１で共通とすることを前提としたものである。
【００５３】
先ず、マスタＣＰＵ１０１は、共有領域１７０から対象ＣＰＵ数１７１を読み出すことで取得する（Ｓ２１）。次にマスタＣＰＵ１０１は、共有領域１７０にＣＰＵ制御リスト１７２の格納領域を確保し、ＣＰＵ制御リスト１７２に自ＣＰＵ１０１のＣＰＵ０制御情報を格納（登録）する。このとき、ＣＰＵ０制御情報として、停止間隔（図９中「ＣＰＵ停止間隔」と表記）ａに１、実行間隔（図９中「ＣＰＵ実行間隔」と表記）ｂに１、サイクル間隔（図９中「ＣＰＵサイクル間隔」と表記）ｃに２をそれぞれ設定する。これらの値は全てデフォルト値である。図９に表記の「停止間隔ａ」「実行間隔ｂ」及び「サイクル間隔ｃ」はそれぞれ変数に相当する。
【００５４】
その後、マスタＣＰＵ１０１は、対象ＣＰＵ数１７１分、停止間隔ａを決定したか否か判定する（Ｓ２３）。対象ＣＰＵ数１７１分のＣＰＵ制御情報を生成した場合、Ｓ２３の判定はＹｅｓとなり、ここで条件設定処理は終了する。一方、ＣＰＵ制御情報を生成すべきＣＰＵ１０１が残っている場合、Ｓ２３の判定はＮｏとなってＳ２４に移行する。
【００５５】
Ｓ２４に移行したマスタＣＰＵ１０１は、停止間隔ａの値をインクリメントする。次にマスタＣＰＵ１０１は、停止間隔ａの値のインクリメント後に対応するサイクル間隔ｃの値を算出する（Ｓ２５）。サイクル間隔ｃの新しい値は、停止間隔ａの値に実行間隔ｂの値を加算することで得られる（サイクル間隔ｃ＝停止間隔ａ＋実行間隔ｂ）。
【００５６】
次にマスタＣＰＵ１０１は、更新後のサイクル間隔ｃの値を、共有領域１７０のＣＰＵ制御リスト１７２に格納された全てのサイクル間隔ｃの値で除算する（Ｓ２６）。その後。マスタＣＰＵ１０１は、除算結果のなかに余りが０のものが存在するか否か判定する（Ｓ２７）。Ｓ２６で算出したサイクル間隔ｃの値が、それまでに決定した何れかのサイクル間隔ｃの値の倍数であった場合、余りが０の除算結果が存在することになる。このため、その場合、Ｓ２７の判定はＹｅｓとなって上記ステップＳ２４に戻り、停止間隔ａの値を更にインクリメントする。一方、Ｓ２６で算出したサイクル間隔ｃの値を含め、それまでに決定した任意の２つのサイクル間隔ｃの値の比率が互いに素の２つの整数により表される場合、余りが０の除算結果は存在しないことから、Ｓ２７の判定はＮｏとなってステップＳ２８に移行する。
【００５７】
Ｓ２８に移行したマスタＣＰＵ１０１は、Ｓ２２で得た実行間隔ｂ、直前のＳ２５及びＳ２６でそれぞれ得た停止間隔ａ及びサイクル間隔ｃを、現在、対象とするＣＰＵ１０１のＣＰＵ制御情報として共有領域１７０のＣＰＵ制御リスト１７２に登録する。その後は上記ステップＳ２３に戻る。
【００５８】
このようにして、条件設定処理では、ＣＰＵ番号が小さいほうのＣＰＵ１０１から順次、ＣＰＵ制御情報を生成し、生成したＣＰＵ制御情報をＣＰＵ制御リスト１７２に登録（格納）する。ＣＰＵ制御リスト１７２に登録されるＣＰＵ制御情報は、任意の２つのサイクル間隔ｃの値の比率が２つの異なる素数により表現されるものである。このため、図６及び図７に表すように、全てのＣＰＵ１０１の同じ状態移行を同期させることができる。
【００５９】
上記条件設定処理では、実行間隔ｂを各ＣＰＵ１０１で共通とすることを前提としている。停止間隔ａを各ＣＰＵ１０１で共通とすることを前提とする場合であっても、全体の処理の流れは図９と基本的に同じとなる。サイクル間隔ｃの値の初期値を２より大きい値にすることにより、任意の２つのサイクル間隔ｃの値の比率は、２つの異なる素数により表現されるものから、互いの素の２つの整数により表現されるものに変化する。
【００６０】
図８の説明に戻る。
上記条件設定処理の実行後はＳ３に移行する。Ｓ３に移行したマスタＣＰＵ１０１は、共有領域１７０のスタートフラグ１７３をセットする（Ｓ３）。次にマスタＣＰＵ１０１は、共有領域１７０のＣＰＵ制御リスト１７２に格納された自ＣＰＵ１０１のＣＰＵ０制御情報を読み出す（Ｓ５）。更にマスタＣＰＵ１０１は、ＣＰＵ活性プログラム１４５を実行（起動）する（Ｓ５）。その後、マスタＣＰＵ１０１は、Ｓ４で読み出したＣＰＵ０制御情報のサイクル間隔ｃの値を、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各レジスタ２０３ａ及び２０４ａにそれぞれ格納する。ＣＰＵ０制御情報の停止間隔ａ或いは実行間隔ｂに従って、マスタＣＰＵ１０１は、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各カウンタ２０３ｂ及び２０４ｂのカウント開始タイミングを制御する（以上Ｓ６）。そのようにして、マスタＣＰＵ１０１は、ＣＰＵ０制御情報に従って、自ＣＰＵ１０１が停止、及び動作を繰り返すように設定を行う。その後、電流変動試験の開始のための一連の処理が終了する。
【００６１】
上記の処理において、Ｓ１の処理は、試験制御プログラム１４０の構成決定部１４１によって実現される。Ｓ２の条件設定処理は、条件設定部１４２によって実現される。残りは、試験実行制御部１４３によって実現される。本実施形態による試験条件設定方法は、構成決定部１４１、及び条件設定部１４２によって実現される。本実施形態による電流変動試験方法は、構成決定部１４１、及び条件設定部１４による処理が行われた後に、試験実行制御部１４３による処理が行われることで実現される。
【００６２】
一方、スレーブＣＰＵ１０１であるＣＰＵ１０１−１は、共有領域１７０に格納されるスタートフラグ１７１のポーリングを随時、行う（Ｓ１１）。そのポーリングによって、スタートフラグ１７１のセットを認識すると、Ｓ１２に移行して、スレーブＣＰＵ１０１は、共有領域１７０に格納された自ＣＰＵ１０１のＣＰＵ１制御情報を読み出す。次にスレーブＣＰＵ１０１は、ＣＰＵ活性プログラム１４５を実行（起動）する（Ｓ１３）。
【００６３】
その後、スレーブＣＰＵ１０１は、Ｓ１２で読み出したＣＰＵ１制御情報のサイクル間隔ｃの値を、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各レジスタ２０３ａ及び２０４ａにそれぞれ格納する。ＣＰＵ０制御情報の停止間隔ａ或いは実行間隔ｂに従って、スレーブＣＰＵ１０１は、タイマ割り込みコントローラ２０３及びＣＰＵ停止コントローラ２０４の各カウンタ２０３ｂ及び２０４ｂのカウント開始タイミングを制御する（以上Ｓ１４）。そのようにして、スレーブＣＰＵ１０１は、マスタＣＰＵ１０１と同様に、ＣＰＵ１制御情報に従って、自ＣＰＵ１０１が停止、及び動作を繰り返すように設定を行う。その後、電流変動試験の開始のための一連の処理が終了する。
【００６４】
上記のような処理は、他のスレーブＣＰＵ１０１であるＣＰＵ１０１−２及び１０１−３でも同様に実行される。このことから、他のスレーブＣＰＵ１０１であるＣＰＵ１０１−２及び１０１−３で実行される処理の説明は省略する。
【００６５】
マスタＣＰＵ１０１は、上記のようにして電流変動試験の開始のための処理を実行した後、電流変動試験の終了タイミングの到来を監視する。この終了タイミングの到来とは、上記のように、例えば予め定めた試験時間が経過するか、或いはオペレータによる終了指示が行われることである。マスタＣＰＵ１０１は、終了タイミングの到来により、スタートフラグ１７３をリセットし、ＣＰＵ活性プログラムを終了させる。
【００６６】
スレーブＣＰＵ１０１は、上記のようにして電流変動試験の開始のための処理を実行した後、スタートフラグ１７３のリセットを認識するために、スタートフラグ１７３のポーリングを行う。それにより、スタートフラグ１７３がリセットされた場合、ＣＰＵ活性プログラム１４５を終了させる。
【００６７】
なお、本実施形態では、各ＣＰＵ１０１と各ＣＰＵ制御情報の対応関係は固定としているが、その対応関係は変更しても良い。つまり電流変動試験は、各ＣＰＵ１０１と各ＣＰＵ制御情報の対応関係を変更して、複数、行うようにしても良い。その対応関係は、予め定めた規則に従って変更しても良いが、ランダムに変更しても良い。
【００６８】
本実施形態では、電流変動試験は１台の情報処理装置１を対象にしているが、電流変動試験は複数台の情報処理装置１を対象に行うようにしても良い。つまり電流変動試験は、複数台の情報処理装置１に電流を供給する電源ユニットを想定したものであっても良い。情報処理装置１の構成は、図１に表すようなものに限定されない。
【００６９】
本実施形態では、ソフトウェア制御が行われる負荷としてＣＰＵ１０１を想定しているが、ソフトウェア制御が行われ、停止（パワーオフ）、及び起動（パワーオン）を任意のタイミングで行えるようになっている負荷であれば、ＣＰＵ以外のものを想定しても良い。また、電流変動試験は、ソフトウェア制御が行われない負荷を対象に含めて行っても良い。そのような負荷としては、図１に表す構成では、ファン駆動回路１０９が相当する。
【００７０】
本実施形態を適用した電流変動試験では、同じ種類の最大電流変動は特有の時間間隔で発生する。このことから、例えばシステム制御装置１５にその時間間隔を特定させ、発生した最大電流変動から特定させた時間間隔の経過に合わせてファン駆動回路１０９のオン／オフをさせれば良い。そのようにして、同じ電源ユニットから電流が供給される、ソフトウェア制御が行われない負荷を電流変動試験の対象にした場合には、より大きい電流変動を発生させることができる。従って、電源ユニットのより適切な確認が行ううえで有効である。
【符号の説明】
【００７１】
１    情報処理装置
１１    外部記憶装置
１３    入力装置
１４    出力装置
１５    システム制御装置
１０１、１０１−０〜１０１−３    ＣＰＵ
１０２、１０２−０〜１０２−３    メモリ
１０３    ＲＯＭ
１０４    共有メモリ
１０５    Ｉ／Ｏインターフェース
１０６    入力インターフェース
１０７    出力インターフェース
１０８    システムバス
１０９    ファン駆動回路
１１０    メンテナンスバス
１３０    電源ユニット
１３１    ＤＣ−ＤＣコンバータ
１３２、１３２−０〜１３２−３    電源回路
１４０、１５０    試験制御プログラム
１４１    構成決定部
１４２    条件設定部
１４３、１５１    試験実行制御部
１４５    ＣＰＵ活性プログラム
１７０    共有領域
１７１    対象ＣＰＵ数
１７２    ＣＰＵ制御リスト
１７３    スタートフラグ
２０１    ＣＰＵコア
２０３    タイマ割り込みコントローラ
２０３ａ、２０４ａ    レジスタ
２０３ｂ、２０４ｂ    カウンタ
２０４    ＣＰＵ停止コントローラ
【図１】
0005724772.tif 000002
【図２】
0005724772.tif 000003
【図３】
0005724772.tif 000004
【図４】
0005724772.tif 000005
【図５】
0005724772.tif 000006
【図８】
0005724772.tif 000007
【図９】
0005724772.tif 000008
【図６】
0005724772.tif 000009
【図７】
0005724772.tif 000010