(57)【要約】【課題】  情報処理装置における２つのＣＰＵの動作パラメータを、正確に同時に、同じ値に変更する。【解決手段】  同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更する設定手段と、前記契機の指定と前記新しい動作パラメータを前記設定手段および前記他の装置に出力する制御手段と、を備えるパラメータ設定装置。【選択図】      図７
2014154016.tif 000002
【特許請求の範囲】
【請求項１】
同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、
指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更する設定手段と、
前記契機の指定と前記新しい動作パラメータを前記設定手段および前記他の装置に出力する制御手段と、を備えるパラメータ設定装置。
【請求項２】
前記動作パラメータがクロック周波数または動作電圧である請求項１に記載のパラメータ設定装置。
【請求項３】
前記契機は前記クロックの立ち上がりもしくは立ち下がり検出した時刻である請求項１または請求項２に記載されたパラメータ設定装置。
【請求項４】
前記契機は前記クロックより低い周波数の信号を発生させるクロックの立ち上がりもしくは立ち下がりを検出した時刻である請求項１または請求項２に記載されたパラメータ設定装置。
【請求項５】
同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、
指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更する設定処理と、
前記契機の指定と前記新しい動作パラメータを自機および前記他の装置に出力する制御処理と、をコンピュータに実行させるパラメータ設定プログラム。
【請求項６】
前記動作パラメータがクロック周波数または動作電圧である請求項５に記載のパラメータ設定プログラム。
【請求項７】
前記契機は前記クロックの立ち上がりもしくは立ち下がり検出した時点である請求項５または請求項６に記載されたパラメータ設定プログラム。
【請求項８】
前記契機は前記クロックより低い周波数の信号を発生させるクロックの立ち上がりもしくは立ち下がりを検出した時刻である請求項５または請求項６に記載されたパラメータ設定プログラム。
【請求項９】
同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、
指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更し、
前記契機の指定と前記新しい動作パラメータを自機および前記他の装置に出力するパラメータ設定方法。
【請求項１０】
前記動作パラメータがクロック周波数または動作電圧である請求項９に記載のパラメータ設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパラメータ設定装置、パラメータ設定プログラム及びパラメータ設定方法に関する。
【背景技術】
【０００２】
フォールト  トレラント  サーバ（以降ＦＴサーバ：Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ  サーバ）とは、２つのシステムを備え、これら２つのシステムが同期して動作することを可能とするシステムである。ＦＴサーバではシステムを構成する全てのハードウェア・モジュールが多重化されている。また、全てのハードウェア・モジュールが同期して動作している。すなわち、それぞれのクロックごとに、２つのシステムの内部の論理の状態は全く同じ状態になっている。このような状態はロックステップと呼ばれている。ＦＴサーバでは、たとえある部位で故障が発生しても、この部位に関係するハードウェア・モジュールが切り離され、この部位に等価な別の正常なハードウェア・モジュールで処理が続行される。この特徴により、ＦＴサーバは通常のサーバに比べて、耐故障性が優れている。
【０００３】
しかし、ＦＴサーバにおいて、クロック周波数をダイナミックに変える動作を実現することは難しい。クロックをダイナミックに変えた場合、それぞれのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）が、それぞれ異なるタイミングでクロックを変更することになるため、２つの系が互いに違う動きを始めてしまう。その結果、ＦＴサーバは、その特長であるロックステップの状態を、維持できなくなる。異なるタイミングとなってしまう理由は、２つのハードウェア・モジュールの置かれた環境には、温度等に違いがあるからである。
【０００４】
このようなロックステップの乱れを防ぐため、ＦＴサーバにおいては、プロセッサのターボモードを常に無効（Ｄｉｓａｂｌｅ）の状態に設定せざるを得なかった。ターボモードとは温度など監視して、その状況に応じてアナログ的に周波数を動的に変えるという機能であるが、ＦＴサーバにおいては、上記の理由からこの機能が有効に利用されていない。
また、同じ理由で電圧の制限機能も、利用されていない。
【０００５】
特許文献１は、２台のプロセッサ装置を結合または、結合した２台のプロセッサ装置を分離する、分離／結合指示手段と、結合／分離前後のクロック同期状態を記憶する状態記憶手段とを有するプロセッサ装置を開示している。
【０００６】
特許文献２は、それぞれＣＰＵとＦＴ制御部とサウスブリッジとを有する２つのシステムが、互いのＦＴ制御部で結合されたＦＴシステムを開示しており、サウスブリッジが故障した場合も、スタンバイのサウスブリッジと交換できる効果を主張している。
【０００７】
特許文献３は、バスに接続した複数のプロセッサのうち、マスタとなるプロセッサが、バスに、クロック周波数切り替えのバストランザンンクションを発行することによって、複数のプロセッサのクロック周波数を動的に変更することを開示している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−２９３６９７
【特許文献２】特開２００６−１７８６５９
【特許文献３】特開２００２−２３８８４
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１は結合前後の２台のプロセッサ装置のクロック同期状態を記憶することを開示しているが、同時に２台のプロセッサ装置のクロックを変えることについての開示はない。特許文献２は、２つのシステムとサウスブリッジが同期して動作することは開示しているが、同時に２台のプロセッサ装置のクロックを変えることについての開示はない。
特許文献３は、バストランザンクションが発行されるという契機によって、複数のプロセッサの周波数が動的に変更されることを開示しているが、変更されるタイミングは必ずしも同時にはならない。
【００１０】
本発明の目的は、情報処理装置における２つのＣＰＵの、クロック周波数、動作電圧等の動作パラメータを、同時に、同じ値に変更することである。
【課題を解決するための手段】
【００１１】
本発明によれば、同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更する設定手段と、前記契機の指定と前記新しい動作パラメータを前記設定手段および前記他の装置に出力する制御手段と、を備えるパラメータ設定装置が得られる。
【００１２】
本発明によれば、同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更する設定処理と、前記契機の指定と前記新しい動作パラメータを自機および前記他の装置に出力する制御処理と、をコンピュータに実行させるパラメータ設定プログラムパラメータ設定プログラムが得られる。
【００１３】
本発明によれば、同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、指示された契機で、自装置と接続している前記プロセッサの動作パラメータを指定された新しい動作パラメータに変更し、前記契機の指定と前記新しい動作パラメータを自機および前記他の装置に出力するパラメータ設定方法が得られる。
【発明の効果】
【００１４】
本発明においては、情報処理装置における２つのプロセッサの動作パラメータを、同時に同じ値に変更することが可能である。
【図面の簡単な説明】
【００１５】
【図１】図１は本発明の構成を表すブロック図である。
【図２】図２は本発明の制御用論理回路を構成するステートマシンの遷移を説明する図である。
【図３】図３は本発明の第１の実施形態のタイミングダイアグラムを表す。
【図４】図４は本発明の第１の実施形態の動作を表すフローチャートである。
【図５】図５は本発明の第２の実施形態のタイミングダイアグラムを表す。
【図６】図６は本発明の第２の実施形態の動作を表すフローチャートである。
【図７】図７は本発明の第３の実施形態の構成を表すブロック図である。
【発明を実施するための形態】
【００１６】
（第１の実施形態）
次に、本発明の第１の実施形態について図面を参照して詳細に説明する。  図1は実施形態の構成図を示す。
【００１７】
フォルトトレラントコンピュータシステム（以降ＦＴシステム１００）は、２つのサブシステム、サブシステム１０とサブシステム２０とを接続して構成されている。サブシステム１０とサブシステム２０の内部の論理の状態は、動作中はいつでも、それぞれのクロックごとに全く同じ状態となっている。すなわち、このフォルトトレランスコンピュータ１００は、ロックステップといわれる状態で動作をしている。
【００１８】
サブシステム１０は、ＣＰＵ１１、パラメータ設定装置４０、ベースクロックを生成する第１クロック生成器１４、第２クロック生成器１６を生成する分周器１５が１つのボードに搭載されている。パラメータ設定装置４０は、ＣＰＵ１１のクロックを変更する設定部１２、メモリと待ち合わせ論理回路とを備える制御用論理回路１３と、を備えている。第２クロック生成器１６が生成したクロック信号はスロークロック、グローバルアライメント信号とも呼ばれている。第２クロック生成器１６が生成したクロック信号の周波数は、第１クロック生成器１４が生成したクロック信号の周波数より低い。
【００１９】
サブシステム２０は、ＣＰＵ１１と同じ仕様のＣＰＵ２１、パラメータ設定装置４０と同じ仕様のパラメータ設定装置５０とが１つのボードに搭載されている。パラメータ設定装置５０は、設定部１２と同じ仕様の設定部２２、制御用論理回路１３と同じ仕様の制御用論理回路２３と、を備えている。制御用論理回路１３、制御用論理回路２３は、ステートマシン（ＳｔａｔｅＭａｃｈｉｎｅ）で構成されている。
【００２０】
サブシステム１０、サブシステム２０はバックプレーンを介して接続され全体として一つのコンピュータシステムとして構成されている。制御用論理回路１３、制御用論理回路２３は制御部３０と呼ばれることもある。サブシステム１０とサブシステム２０はロックステップで同期して動作する。したがって、ＦＴコンピュータ１００は、サブシステム１０、サブシステム２０のうちどちらかが故障しても、故障していないサブシステムに、故障したサブシステムの機能を引き継がせることにより、故障するまでと同じ動作を継続することができる。
【００２１】
ＣＰＵ１１と設定部１２の間、ＣＰＵ２１と設定部２２の間は、１本ないし数本の信号線で接続されている。設定部１２と制御用論理回路１３の間、設定部２２と制御用論理回路２３の間、制御用論理回路１３と制御用論理回路２３の間も、１本ないし数本の信号線で接続されている。これらの信号は一方のサブシステムの状態の遷移を他方に伝えたり、クロック変更の指示を伝えたりするのに使われる。
【００２２】
第１クロック生成器１４は、制御用論理回路１３及び制御用論理回路２３に接続されている。第２クロック生成器１６は２つのサブシステム間でクロック変更のタイミングを一致させるために用いられる。第２クロック生成器１６が生成したクロック信号の周波数は第１クロック生成器１４が生成したクロック周波数の数十分の１の周波数である。
【００２３】
第２クロック生成器１６のクロック信号は、分周器１５により、第１クロック生成器１４のクロック信号を数十倍に分周することによって得られる。第１クロック生成器１４、第２クロック生成器１６はどちらかのサブシステムに搭載され、これらで生成されたクロック信号は、他の一方のサブシステムにも供給される。この実施形態の場合、第１クロック生成器１４、第２クロック生成器１６はサブシステム１０に搭載され、その信号はサブシステム２０にも供給されている。第２クロック生成器１６の周波数をボード間の、ばらつきの影響を受けない程度の、低い周波数まで下げることにより、精度よく立ち上がりエッジや立ち下がりエッジを検出することができる。
【００２４】
第１クロック生成器１４は水晶発振子もしくはセラミック発信子等で構成されている。第１クロック生成器１４のクロック信号は、図示しない遅延回路により、サブシステム１０とサブシステム２０のそれぞれのボード上に、全く同じタイミングで供給されるよう位相が調整される。
【００２５】
制御用論理回路１３、制御用論理回路２３は、互いに同期して動作するように設計されている。すなわち、これら２つの論理回路は、それぞれに接続している設定部１２、設定部２２に、ＣＰＵのクロック周波数または電圧を変えさせる契機を与えるタイミングが、一致するように設計されている。なお、第１クロック生成器１４が生成した信号は第１クロック、第２クロック生成器１６が生成した信号は第２クロックと呼ばれる。制御用論理回路１３、制御用論理回路２３はステートマシン制御をおこなうように設計されている。制御用論理回路２３の論理の状態は、ロックステップ状態のため、制御用論理回路１３と全く同じ状態となる。したがって、制御用論理回路１３に設定された変更指示のタイミングは、制御用論理回路２３でも同一のタイミングに設定される。
【００２６】
左記の説明において、制御用論理回路１３と制御用論理回路２３とを入れ替えても、同様の結論となる。設定部１２、設定部２２、制御用論理回路１３、制御用論理回路２３は論理素子を組み合わせて構成するハードウェアで実現されてもよいし、コンピュータプログラムを実行するソフトウェアで実現されてもよい。
【００２７】
次に、本発明の第１の実施の形態の動作について図面を参照して説明する。図２は制御用論理回路１３、及び制御用論理回路２３の状態遷移を示すステートマシンの遷移図を表わす。制御用論理回路１３、及び制御用論理回路２３の内部は、自機のクロック変更要求を待機する「ＷＡＩＴ」、他機のクロック変更要求を待機する「他系待機」、変更指示タイミングを設定する「クロック変更トリガー」、「終了」の４つの状態を含んでいる。
【００２８】
図３はＦＴシステム１００のタイミングダイアグラムを表す。以下は、サブシステム１０を自機、サブシステム２０を他機（他系とも呼ぶ）とした説明である。初期化後、サブシスム１０は、自機のＣＰＵ１１からの自機クロック変更リクエストを待機する「ＷＡＩＴ」の状態にある（自機状態１）。自機クロック変更リクエストを受信した後、サブシステム１０は他機であるサブシステム２０のクロック変更リクエストを待機する「他系待機」の状態に遷移する。サブシステム１０はサブシステム２０からのクロック変更リクエストを受信した後、変更指示タイミングを設定する「クロック変更トリガー」の状態に遷移する。
【００２９】
一方、サブシステム２０は、ＣＰＵ２１からのクロック変更リクエストを待機する「ＷＡＩＴ」の状態にある（他機状態２）。サブシステム２０は、ＣＰＵ２１からの変更リクエストを受信し、「他系待機」の状態に遷移した後、サブシステム１０と同時に「クロック変更トリガー」の状態に遷移する。「クロック変更トリガー」の状態で、第２クロックの次の立ち上がりが、変更契機として指定された場合、第２クロックの次の立ち上がり（図３の円内）が検出された時点で、ＣＰＵ１１、ＣＰＵ１２への変更指示が、設定部１２、設定部２２から出力される。第２クロックは第１クロックより十分に低い周波数に設定されている。そのため、サブシステム１０とサブシステム２０の特性ばらつきによって、立ち上がりを検出する信号にばらつきが発生することはほとんどない。
【００３０】
次に、図４のフローチャートを用いて、ＦＴシステム１００の動作説明をする。ここでは、サブシステム１０を中心に説明する。サブシステム１０の制御用論理回路１３は、最初にステートマシンを初期化される（Ｓ−１）。次に制御用論理回路１３は、ＣＰＵ１１からクロック周波数の変更リクエスト（変更要求とも呼ぶ）が到着するのを待つステート（図２  ＷＡＩＴ）に移る（Ｓ−２）。変更リクエストは、新しく設定する周波数、変更のタイミングである変更契機を指定する。
【００３１】
ＣＰＵ１１からクロックの変更リクエストが到着すると（Ｓ−３  ＹＥＳ）、制御用論理回路１３は、もう１つのサブシステム２０からの変更要求が送られてくるのを待つステート（図２  他系待機）に入る（Ｓ−４）。変更要求を受け取っていない場合（Ｓ−３  ＮＯ）、制御用論理回路１３は、引き続き変更要求の到着を待機するステートにとどまる（Ｓ−２）。サブシステム２０から変更要求を受け取ると（Ｓ−５  ＹＥＳ）、制御用論理回路１３は、変更指示のタイミング、新しい周波数または電圧を設定するステート（図２  クロック変更トリガー）に移る（Ｓ−６）。この時、制御用論理回路１３から出力された信号により、制御用論理回路２３も制御用論理回路１３と同じステートに移る。したがって、制御用論理回路２３でも制御用論理回路１３と同じ変更指示のタイミング、変更する周波数または電圧が設定される。
【００３２】
この実施形態では、制御用論理回路１３は、次の第２クロックの立ち上がりエッジを待って、ＣＰＵ１１に対してクロック周波数または電圧を変更する、という変更契機を設定する。なお、変更契機はこの実施形態の例に限定されない。変更契機の設定は、変更要求の内容に応じて、行われるものであり、信号の立ち下がりが指定されてもよい。サブシステム２０からの変更要求を受け取っていない場合（Ｓ−５  ＮＯ）、制御用論理回路１３は、引き続きサブシステム２０からの変更リクエストの到着を待機するステートにとどまる（Ｓ−４）。サブシステム２０からの変更要求を受け取り、変更契機が設定された場合、制御用論理回路１３は、信号の立ち上がりの検出を待つステート（図２  クロック変更トリガー）に移る（Ｓ−７）。
【００３３】
制御用論理回路１３は、信号の立ち上がりが検出された時点（Ｓ−８  ＹＥＳ）で、設定部１２にクロック周波数を変更する指示、及び変更する動作パラメータである周波数もしくは電圧の変更値を出力する（Ｓ−９）。設定部１２はこの指示に基づいてＣＰＵ１１のクロック周波数、もしくは電圧値を変更する（Ｓ−１０）。
【００３４】
サブシステム２０の制御用論理回路２３も、サブシステム１０の制御用論理回路１３と同一の機能を有し、同じ状態をとるように同期しているため、Ｓ―６での制御用論理回路１３からの指示を受けた後、制御用論理回路１３と同じ動作を行う。すなわち、制御用論理回路２３は、制御用論理回路１３と同じく第２クロックの立ち上がりエッジでクロック周波数を変更する指示をＣＰＵ２１に対して出す。この結果、サブシステム２０においては、サブシステム１０と同時にＣＰＵ２１のクロック周波数または電圧が、ＣＰＵ１１のクロック周波数または電圧と同一の値に変更される。
【００３５】
このように、２つのサブシステムに搭載されているＣＰＵのそれぞれのクロックが同時に変更されることになる。
【００３６】
本実施形態では、ＣＰＵ１１、ＣＰＵ２１のクロック周波数を、第２クロック生成器１６の信号を変更契機として制御用論理回路１３が制御用論理回路２３に出力することで、サブシステム１０とサブシステム２０は同時に同一のクロック周波数または電圧に変更することができる。
【００３７】
上記実施形態では、各部位を信号線で接続したが、各部位は、赤外線、もしくは近距離無線等で接続されてもよい。
【００３８】
上記実施形態では、第２クロック生成器１６を用い、その信号を変更契機としたが、第１クロック生成器１４の周波数が十分に低い場合、第１クロック生成器１４の信号を変更契機として用いることができるので、第２クロック生成器１６は必ずしも必要ない。
【００３９】
上記実施形態では、クロック周波数または電圧を変更する場合について説明したが、変更対象は必ずしもクロック周波数に限定されるものではない。ＣＰＵを動作させる条件を変更するパラメータであれば、いずれも変更対象とすることができる。この場合、設定部１２、設定部２２は、それぞれ制御用論理回路１３、制御用論理回路２３の出力に基づいて、ＣＰＵ１１、ＣＰＵ２１の変更パラメータを、同時に、同じ値に変更する。
【００４０】
上記実施形態では、第１クロック生成器１４、第２クロック生成器１６をサブシステム１０が備えている形態を示したが、これらはサブシステム１０に外付けされてもよい。
【００４１】
上記実施形態では、ＣＰＵ１１をサブシステム１０が備えている形態を示したが、ＣＰＵ１１はサブシステム１０に外付けされてもよい。
【００４２】
上記実施形態では、ＦＴシステム１００について説明したが、本実施形態はＦＴシステムだけではなく、一般的な情報処理に適用することが可能である。
（第２の実施形態）
第１の実施形態では、サブシステム１０からクロック周波数の変更要求が出された場合、サブシステム２０からのクロック周波数の変更要求を待っていた。
【００４３】
第２の実施形態では、サブシステム２０からのクロック変更リクエストを待たない。第２の実施形態の構成は第１の実施形態と同じである。図５は、実施形態２のタイミングダイアグラムである。図３のタイミングダイアグラムと異なる点は、サブシステム１０（自機）が通知を行う点、通知を受けたサブシステム２０（他機）が了解信号を送り、これを受けた後、サブシステム１０が変更契機を設定する点である。
【００４４】
図６は第２の実施形態におけるＦＴシステム１００の動作を表すフローチャートである。Ｓ−２１〜Ｓ−２３は、図４に示す第１の実施形態のＳ１〜Ｓ３と同じである。サブシステム１０は、変更指示を受けた後、これをサブシステム２０に通知する（Ｓ−２４）。通知を受けたサブシステム２０が了解信号を送り、サブシステム１０がこれを受けると（Ｓ−２５  ＹＥＳ）、制御用論理回路１３は変更契機を設定する（Ｓ−２６）。Ｓ−２７〜Ｓ−２９は、図４に示す第１の実施形態のＳ―８〜Ｓ−１０と同じである。
【００４５】
本実施形態では、一方のサブシステムからの変更要求をもう一方のサブシステムが待つ必要がないので、第１の実施形態に比べて迅速なクロックの変更が可能となる。
（第３の実施形態）
第３の実施形態は、同期して動作する複数のプロセッサの１つと接続し、さらに、前記複数のプロセッサの他のプロセッサと接続している他の装置とも接続し、指示された契機で、自装置と接続しているプロセッサの動作パラメータを指定された新しい動作パラメータに変更する設定部１２と、この契機の指定とこの新しい動作パラメータを設定部および他の装置に出力する制御部３０と、を備えるパラメータ設定装置４０である。
【００４６】
本実施形態は、情報処理装置における２つのプロセッサの動作パラメータを、同時に同じ値に変更することが可能である。
【符号の説明】
【００４７】
１０    サブシステム
１１    ＣＰＵ
１２    設定部
１３    制御用論理回路
１４    第１クロック生成器
１５    分周器
１６    第２クロック生成器
２０    サブシステム
２１    ＣＰＵ
２２    設定部
２３    制御用論理回路
３０    制御部
４０    パラメータ設定装置
５０    パラメータ設定装置
１００    ＦＴシステム
【図１】
2014154016.tif 000003
【図２】
2014154016.tif 000004
【図３】
2014154016.tif 000005
【図４】
2014154016.tif 000006
【図５】
2014154016.tif 000007
【図６】
2014154016.tif 000008
【図７】
2014154016.tif 000009