(57)【要約】  システム制御装置が複数の処理装置のハードウェア制御を行う情報処理システムにおいて、ハードウェア制御を高速に行う。冗長構成の複数のシステム制御装置（１Ａ，１Ｂ）の各々が複数の処理装置（２Ａ，２Ｂ）のハードウェア（２０）の制御を行う。又、システム制御装置（１Ａ）が複数の処理装置（２Ａ，２Ｂ）のハードウェアの処理量により、システム制御装置（１Ａ、１Ｂ）の各々の分担処理量を決定し、各システム制御装置（１Ａ、１Ｂ）が分担された処理量のハードウェア制御を行う。このため、ハードウェアの処理量が多くても、ハードウェア制御を高速化できる。
2011138833.tif 000002
【特許請求の範囲】
【請求項１】
各々情報処理を実行するハードウェアを有する複数の処理装置と、
ハードウェア制御指示に応じて、前記複数の処理装置の前記ハードウェアを制御する複数のシステム制御装置とを有し、
前記システム制御装置は、前記複数の処理装置を前記ハードウェア制御するための処理量により、前記複数のシステム制御装置の各々が分担するハードウェア制御の分担処理量を決定し、前記複数のシステム制御装置の各々が前記複数の処理装置に対し分担された処理量のハードウェア制御を実行する
ことを特徴とする情報処理システム。
【請求項２】
前記システム制御装置は前記処理量により、前記分担するハードウェア制御の処理量を前記処理装置単位に決定する
ことを特徴とする請求項１の情報処理システム。
【請求項３】
前記システム制御装置は前記処理量により、前記分担するハードウェア制御の処理量を前記処理装置内の前記ハードウェア単位に決定する
ことを特徴とする請求項１の情報処理システム。
【請求項４】
前記システム制御装置は、ハードウェア制御する前記複数の処理装置のハードウェアの個数から前記処理量を計算する
ことを特徴とする請求項１の情報処理システム。
【請求項５】
前記システム制御装置は、前記複数のシステム制御装置が分担するハードウェア制御の処理量が均等となるように、前記複数のシステム制御装置が分担する処理量を決定する
ことを特徴とする請求項１の情報処理システム。
【請求項６】
前記システム制御装置は、前記ハードウェア制御指示で指示されたハードウェア制御シーケンスを複数のハードウェア制御処理に変換し、前記変換した複数のハードウェア制御処理を前記複数の処理装置に順次実行する
ことを特徴とする請求項１の情報処理システム。
【請求項７】
前記複数のシステム制御装置は、前記ハードウェア制御の進行状況を記憶する共有ファイル装置を有し、
一の前記システム制御装置は、前記ハードウェア制御を分担している他のシステム制御装置の障害を検出して、前記共有ファイル装置に記憶されているハードウェア制御の進行状況を参照し、前記他のシステム制御装置が分担している前記ハードウェア制御を続行する
ことを特徴とする請求項１の情報処理システム。
【請求項８】
前記ハードウェアがＬＳＩ素子を有する
ことを特徴とする請求項１の情報処理システム。
【請求項９】
前記システム制御装置は、前記複数の処理装置を備えるパーティション単位に、前記複数のシステム制御装置の各々が分担するハードウェア制御の処理量を決定する
ことを特徴とする請求項１の情報処理システム。
【請求項１０】
前記処理装置は前記ハードウェアに電源を供給する電源制御回路を有し、前記ハードウェア制御シーケンスが前記電源制御回路の電源制御シーケンスを有する
ことを特徴とする請求項１の情報処理システム。
【請求項１１】
前記複数のシステム制御装置の両方が、前記複数の処理装置の前記ＬＳＩ素子の初期化制御シーケンスを実行する
ことを特徴とする請求項８の情報処理システム。
【請求項１２】
各々情報処理を実行するハードウェアを有する複数の処理装置と複数のシステム制御装置とを有する情報処理システムのハードウェア制御方法であって、
ハードウェア制御指示に応じて、前記システム制御装置は前記複数の処理装置を前記ハードウェア制御するための処理量を算出するステップと、
前記複数のシステム制御装置の各々が分担する前記ハードウェア制御の分担処理量を決定するステップと、
前記複数のシステム制御装置の各々が前記複数の処理装置に対し分担された処理量の前記ハードウェア制御を実行するステップとを有する
ことを特徴とする情報処理システムのハードウェア制御方法。
【請求項１３】
前記決定ステップは、前記システム制御装置は前記処理量により、前記分担するハードウェア制御の分担処理量を前記処理装置単位に決定するステップを有する
ことを特徴とする請求項１２の情報処理システムのハードウェア制御方法。
【請求項１４】
前記決定ステップは、前記システム制御装置は前記処理量により、前記分担するハードウェア制御の分担処理量を前記処理装置内の前記ハードウェア単位に決定するステップを有する
ことを特徴とする請求項１２の情報処理システムのハードウェア制御方法。
【請求項１５】
前記決定ステップは、前記システム制御装置は前記ハードウェア制御する前記複数の処理装置のハードウェアの個数から前記処理量を計算するステップを有する
ことを特徴とする請求項１２の情報処理システムのハードウェア制御方法。
【請求項１６】
前記複数のシステム制御装置が共有ファイル装置に前記ハードウェア制御の進行状況を記憶するステップと、
一の前記システム制御装置が前記ハードウェア制御を分担している他の前記システム制御装置の障害を検出して、前記共有ファイル装置の前記ハードウェア制御の進行状況を参照し、前記他のシステム制御装置が分担している前記ハードウェア制御を続行するステップとを更に有する
ことを特徴とする請求項１２の情報処理システムのハードウェア制御方法。
【請求項１７】
前記決定ステップは、前記システム制御装置が前記複数の処理装置を備えるパーティション単位に、前記複数のシステム制御装置の各々が分担する前記ハードウェア制御の分担処理量を決定するステップを有し、
前記実行ステップは、前記複数のシステム制御装置の両方が前記パーティション内の前記複数の処理装置の前記ハードウェア制御を前記分担された処理量で実行するステップを有する
ことを特徴とする請求項１２の情報処理システムのハードウェア制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムのハードウェア制御方法及び情報処理システムに関する。
【背景技術】
【０００２】
情報処理システムは多数の処理装置（ハードウェア）と各処理装置を制御するシステム制御装置とを備える。システム制御装置はシステム全体の電源制御や構成制御等のシステム制御を行う。１台のシステム制御装置を設けた情報処理システムでは、システム制御装置が故障した場合、システム全体が動作不可能となる。このため、情報処理システムは複数台のシステム制御装置を設けた冗長化構成を採用している。冗長化構成においては、一方のシステム制御装置の稼働状態とし、他方のシステム制御装置を待機状態として、システム制御を行っていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５４−０７４６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つのシステム制御装置が１つのインターフェースで各処理装置のハードウェア制御を行うため、情報処理システムにおけるシステム制御装置の制御対象となる処理装置（ハードウェア）が増加するにつれ、ハードウェア制御に時間がかかる。また、処理装置（システムボード）内に制御対象となるＬＳＩ（Large
Scale Integrated）素子が増えてきた場合にも、１つのインターフェースで制御を行うため、ハードウェア制御に時間がかかる。【０００５】
特に、ＨＰＣ（High Performance
Computing）計算機のような大規模な情報処理システム構成の場合、システム制御装置からハードウェア制御する処理装置やＬＳＩ素子（ハードウェア）は膨大な数になり、ハードウェアの電源投入／初期化／終了などのハードウェア制御に要する時間の増加が顕著である。【０００６】
本発明の目的は、冗長化構成されたシステム制御装置が各処理装置のハードウェア制御を高速に行う情報処理システムのハードウェア制御方法及び情報処理システムを提供することにある。
【課題を解決するための手段】
【０００７】
この目的の達成のため、開示の情報処理システムは、各々情報処理を実行するハードウェアを有する複数の処理装置と、ハードウェア制御指示に応じて、前記複数の処理装置の前記ハードウェアを制御する複数のシステム制御装置とを有し、前記システム制御装置は、前記複数の処理装置を前記ハードウェア制御するための処理量により、前記複数のシステム制御装置の各々が分担するハードウェア制御の分担処理量を決定し、前記複数のシステム制御装置の各々が前記複数の処理装置に対し分担された処理量のハードウェア制御を実行する。【０００８】
又、この目的の達成のため、開示のハードウェア制御方法は、各々情報処理を実行するハードウェアを有する複数の処理装置と複数のシステム制御装置とを有する情報処理システムのハードウェア制御方法であって、ハードウェア制御指示に応じて、前記システム制御装置は前記複数の処理装置を前記ハードウェア制御するための処理量を算出するステップと、前記複数のシステム制御装置の各々が分担する前記ハードウェア制御の分担処理量を決定するステップと、前記複数のシステム制御装置の各々が前記複数の処理装置に対し分担された処理量の前記ハードウェア制御を実行するステップとを有する。
【発明の効果】
【０００９】
冗長構成の複数のシステム制御装置が複数の処理装置のハードウェアの制御を行うため、ハードウェア制御を高速にでき、時間短縮に効果がある。又、複数の処理装置のハードウェアの処理量により、システム制御装置の各々の分担処理量を決定し、各システム制御装置が分担された処理量のハードウェア制御を行うため、ハードウェアの処理量が多くても、ハードウェア制御を高速化できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態の情報処理システムの構成図である。
【図２】図１の情報処理システムをＨＰＣ（Highperformance Computing）システムに適用した場合の詳細なブロック図である。
【図３】図２におけるサービスプロセッサとシステムボードの各ＬＳＩ素子との接続関係を示す構成図である。
【図４】図２におけるサービスプロセッサとシステムボードの電源制御の構成図である。
【図５】図１及び図２のハードウェア制御シーケンスプログラム及び制御プログラムの構成図である。
【図６】図５のハードウェア制御シーケンステーブルの説明図である。
【図７】図５のプログラム構成によるハードウェア制御の処理フロー図である。
【図８】図７の動作を示すタイムチャート図である。
【図９】図７を実行するサービスプロセッサの決定処理フロー図である。
【図１０】図９の搭載ＬＳＩカウントテーブルの説明図である。
【図１１】図９の処理量カウントテーブルの説明図である。
【図１２】図９のハード制御分担テーブルの説明図である。
【図１３】図５のプログラム構成によるハードウェア制御の第２の実施の形態のタイムチャート図である。
【図１４】図１３のパーティションの説明図である。
【図１５】図１３、図１４の処理量カウントテーブルの説明図である。
【図１６】図１３、図１４のハード制御分担テーブルの説明図である。
【図１７】図５のプログラム構成によるハードウェア制御の第３の実施の形態のタイムチャート図である。
【図１８】図１７のサービスプロセッサの分担決め処理のフロー図である。
【図１９】図１７、図１８の分担決め処理の説明図である。
【図２０】第４の実施の形態のＬＳＩ数カウントテーブルの説明図である。
【図２１】第４の実施の形態のハード制御分担テーブルの説明図である。
【図２２】第４の実施の形態のパーティション構成例を示す説明図である。
【図２３】図２２におけるパーティション０のハード制御分担テーブル１０４Ｃの説明図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態の例を、情報処理システム、ハードウェア制御シーケンス、ハードウェア制御方法の第１の実施の形態、ハードウェア制御方法の第２の実施の形態、ハードウェア制御方法の第３の実施の形態、ハードウェア制御方法の第４の実施の形態、他の実施の形態の順で説明するが、開示の情報処理システム、ハードウェア制御はこの実施の形態に限られない。
【００１２】
（情報処理システム）
図１は、実施の形態の情報処理システムの構成図である。図２は、図１の情報処理システムをＨＰＣ（High
performance Computing）システムに適用した場合の詳細なブロック図である。以下、情報処理システムをＨＰＣ（High
performance Computing）システムで説明するが、このシステムに限られない。
【００１３】
図１に示すように、複数のＬＳＩ（Large Scale
Integrated）素子２０が処理装置としての複数のシステムボード２Ａ，２Ｂの各々に搭載されている。各ＬＳＩ素子２０は情報処理を実行するための回路素子である。この例では、システムボード２Ａ，２Ｂは２つで示すが、３つ以上のシステムボードを対象とすることもできる。
【００１４】
一対のシステム制御装置（サービスプロセッサ）１Ａ，１Ｂはシステムボード２Ａ，２Ｂの動作監視及び種々の設定を行う。第１のシステム制御装置１Ａは、第１の信号線ＬＡ１によりシステムボード２Ａに接続し、第２の信号線ＬＡ２によりシステムボード２Ｂに接続する。第２のシステム制御装置１Ｂは、第３の信号線ＬＢ１によりシステムボード２Ａに接続し、第４の信号線ＬＢ２によりシステムボード２Ｂに接続する。
【００１５】
交流電源（ＡＣ２００Ｖ）は回路ブレーカ（Circuit
Breaker）３０を介し電源供給ユニット（Power supply unit(PSU)）３２に入力する。電源供給ユニット３２は交流電源（例えば、ＡＣ２００Ｖ）を直流電力に変換する。電源供給ユニット３２は、電源ラインＰ３，Ｐ４を介しサービスプロセッサ１Ａ、１Ｂに電源（例えば、ＤＣ８Ｖ）を常時供給する。又、電源供給ユニット３２はサービスプロセッサ１Ａ，１Ｂから電源投入指示を受けると、電源ラインＰ１，Ｐ２を介しシステムボード２Ａ、２Ｂに電源（例えば、ＤＣ４８Ｖ）を供給する。
【００１６】
各サービスプロセッサ１Ａ、１Ｂはハードウェア制御シーケンスプログラム１０と制御プログラム１２とを実行する。ハードウェア制御シーケンスプログラム１０はオペレータからのハードウェア制御指示から、ハードウェア制御シーケンスを実行する。ハードウェア制御シーケンスはハードウェアである各ＬＳＩ素子２０を制御するものである。例えば、ハードウェア制御シーケンスは後述する電源投入シーケンス、初期化処理シーケンス、終了シーケンスである。
【００１７】
ハードウェア制御シーケンスプログラム１０は、実行するシーケンスを細かいハードウェア制御処理に変換し、サービスプロセッサ１Ａ及び１Ｂの制御プログラム１２に指示する。制御プログラム１２はハード制御シーケンスプログラム１０から指示された処理内容を実行する。制御プログラム１２は例えば、Ｉ２Ｃ(Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ)通信規格とＪＴＡＧ（Joint
Test Action Group）通信規格との指示をハードウェア（システムボード）２Ａ、２Ｂに出力する。Ｉ２Ｃ通信規格はシステムボード２Ａ，２Ｂの主に電源系の制御を行う。ＪＴＡＧ通信規格は主にＬＳＩ素子２０の処理を行う。
【００１８】
この実施の形態では、アクテイブ（動作中）であるサービスプロセッサ（システム制御装置）だけがハードウェア制御をするのではなく、冗長化された複数のサービスプロセッサ１Ａ、１Ｂがハードウェア制御シーケンスを順番に制御していく中で、ハードウェア制御シーケンスを細かい制御対象／制御内容に分解する。そして、複数のサービスプロセッサ１Ａ，１Ｂが分解された制御対象／制御内容を処理量に応じて分担する。
【００１９】
全体的な制御方法は、以下のような流れになる。尚、サービスプロセッサ１Ａが稼働中、サービスプロセッサ１Ｂが待機中であるものとする。
【００２０】
（１）ユーザーのオペレーションから、実行するハードウェア制御シーケンスの種類が決まる。即ち、ユーザーがサービスプロセッサ１Ａにハードウェア制御シーケンスの種類を指定する。この例では、「システム電源投入」や「システムリセット」など、システムが制御単位である。
【００２１】
（２）サービスプロセッサ１Ａのハードウェア制御シーケンスプログラム１０が、指定されたハードウェア制御シーケンスをハードウェア単位の細かい命令に分解する。
【００２２】
（３）サービスプロセッサ１Ａは、細かい命令を冗長化された複数のどのサービスプロセッサ１Ａ、１Ｂが制御するかを決定する。又、ハード制御対象（システムボード）２Ａ，２Ｂはどちらのサービスプロセッサ１Ａ，１Ｂからの制御指示にも従う。
【００２３】
（４）各サービスプロセッサ１Ａ、１Ｂの制御プログラム１２は、分担された制御指示をシステムボード２Ａ，２Ｂに発行する。
【００２４】
このように、稼働中のサービスプロセッサ１Ａと待機中のサービスプロセッサ１Ｂの両方が指示されたハードウェア制御シーケンスを分担して実行するため、複数のシステムボード２Ａ、２Ｂのハードウェア制御を高速に実行できる。図１では簡略化のため、２個のシステムボード２Ａ、２Ｂを制御対象としているが、十台、数十台のシステムボードを制御対象とする大規模な情報処理システムに特に高速化の効果が大きい。
【００２５】
図２によりＨＰＣシステムを説明する。図２において、図１で示したものと同一のものは同一の記号で示してある。図２に示すように、システムボード２Ａ、２ＢはＣＰＵ／メモリボードで構成される。システムボード２Ａ，２Ｂは、複数の演算処理装置（ＣＰＵ：Central
Processing Unit）２２Ａ、２２Ｂ、２２Ｃ、２２Ｄとシステムコントローラ２４とメモリアクセスコントローラ２６とホストメモリ２８とを有する。この例では、４つの演算処理装置（以下、ＣＰＵという）がシステムボード２Ａ，２Ｂに設けられている。システムボード２Ａ，２ＢにおけるＣＰＵの搭載数は、単数であっても、他の複数であっても良い。
【００２６】
各ＣＰＵ２２Ａ〜２２Ｄはシステムコントローラ２４に接続する。システムコントローラ２４は、ホストメモリ２８に接続されたメモリアクセスコントローラ２６に接続する。システムコントローラ２４は、クロスバースイッチ３を介し複数のＩ／Ｏ（Input/Output）ボード４Ａ〜４Ｎに接続する。
【００２７】
Ｉ／Ｏボード４Ａ〜４Ｎは、Ｉ／Ｏコントローラ４０と複数のＰＣＩ(Peripheral
Component Interconnect)  Ｅｘｐｒｅｓｓスロット４２とを有する。ＰＣＩ  Ｅｘｐｒｅｓｓスロット４２に、外部メモリ（大容量メモリ及び／又はストレージ装置）やネットワークインタフェースカード（ＮＩＣ）が接続される。システムコントローラ２４は、ＣＰＵ２２Ａ〜２２Ｄとメモリアクセスコントローラ２６との間、及びクロスバースイッチ３とＣＰＵ２２Ａ〜２２Ｄ，メモリアクセスコントローラ２６との間の転送制御を行う。クロスバースイッチ３は、システムボード２Ａと２Ｂ。及びシステムボード２Ａ，２ＢとＩ／Ｏボード４Ａ〜４Ｎとを１対１で直接接続する。
【００２８】
このクロスバースイッチ３により、システムボード２Ａと２Ｂ、及びシステムボード２Ａ，２ＢとＩ／Ｏボード４Ａ〜４Ｎとのデータ転送を高速化できる。図２の例では、情報処理システムはシステムボードを２台搭載されているが、数十台のシステムボードを搭載されることが望ましい。
【００２９】
又、サービスプロセッサ１Ａ、１Ｂは通信経路５０により相互接続される。通信経路５０は例えばＬＡＮ(Local
Area Network)を用いることが望ましい。端末装置５Ａは通信経路５０に接続し、ユーザーの操作によりサービスプロセッサ１Ａ，１Ｂにハードウェア制御シーケンスを指示し、且つ状態を取得する。望ましくは、端末装置５Ａはパーソナルコンピュータで構成される。
【００３０】
図２において、ＣＰＵ２２Ａ、２２Ｂ、２２Ｃ、２２Ｄとシステムコントローラ２４とメモリアクセスコントローラ２６とホストメモリ２８との各々が、図１のＬＳＩ素子２０に対応する。
【００３１】
図３は、図２におけるサービスプロセッサ１Ａとシステムボード２Ａの各ＬＳＩ素子との接続関係を示す構成図である。図４は、図２におけるサービスプロセッサ１Ａとシステムボード２Ａの電源制御の構成図である。図３及び図４において、図１及び図２で示したものと同一のものは同一の記号で示してある。
【００３２】
図１及び図２で説明したように、サービスプロセッサ１Ａとシステムボード２Ａとが信号線ＬＡ１で接続される。図３に示すように、この信号線ＬＡ１はＪＴＡＧ規格の信号線（以下、ＪＴＡＧ信号線という）ＬＡ１０と、Ｉ２Ｃ規格の信号線（以下、Ｉ２Ｃ信号線という）ＬＡ１２とを有する。
【００３３】
サービスプロセッサ１Ａは、システムボード２ＡのＪＴＡＧコントローラ２７にＪＴＡＧ信号線ＬＡ１０を介し接続する。又、サービスプロセッサ１Ａは、システムボード２ＡのＩ２Ｃコントローラ２９にＩ２Ｃ信号線ＬＡ１２を介し接続する。ＪＴＡＧコントローラ２７は、ＣＰＵ２２Ａ〜２２Ｄとシステムコントローラ２４とに接続する。Ｉ２Ｃコントローラ２９は、システムコントローラ２４とメモリ２８とメモリアクセスコントローラ２６とに接続する。メモリ２８はＤＩＭＭ（Dual
Inline Memory Module）で構成される。
【００３４】
図１、図２で図示したように、サービスプロセッサ１Ｂとシステムボード２Ａとの信号線ＬＢ１も、サービスプロセッサ１Ａとサービスプロセッサ２Ａと信号線ＬＡ１との接続形態と同一の接続形態である。又、サービスプロセッサ１Ａ、１Ｂとシステムボード２Ｂとの信号線ＬＡ２、ＬＢ２も同一の接続形態である。このため、図３では、サービスプロセッサ１Ａとシステムボード２Ａとの信号線ＬＡ１の接続形態を示し、他の信号線ＬＡ２，ＬＢ１，ＬＢ２の接続形態は説明を省略する。
【００３５】
サービスプロセッサ１Ａは、ＪＴＡＧコントローラ２７を介しＣＰＵ２２Ａ〜２２Ｄ，システムコントローラ２４のハードウェアの設定、初期化を行う。又、サービスプロセッサ１Ａは、Ｉ２Ｃコントローラ２９を介しシステムボード２Ａ内の電源の制御を行う。
【００３６】
図４の電源系の接続構成に示すように、システムボード２Ａは第１のデジタル／デジタル変換器（ＤＤＣ：DC
DC Converter）３５と第２のデジタル／デジタル変換器（ＤＤＣ：DC DC
Converter）３９とを有する。この例では、第１のデジタル／デジタル変換器（以下、ＤＤＣという）３５が電源ユニット３２からのＤＣ４８ＶをＤＣ１２Ｖに変換する。又、第２のデジタル／デジタル変換器（以下、ＤＤＣという）３９が第１のＤＤＣ３５からのＤＣ１２ＶをＤＣ５Ｖに変換し、各ＬＳＩ素子２０にＤＣ５Ｖを供給する。図４では図示していないが、システムボード２Ａは第３のＤＤＣと第４のＤＤＣも有する。第３のＤＤＣは、第２のＤＤＣ３９が出力したＤＣ５ＶをＤＣ３．３Ｖに変換し、第４のＤＤＣは、第３のＤＤＣが出力したＤＣ３．３ＶをＤＣ１．８Ｖに変換する。
【００３７】
ボードコントローラ（図ではController FPGAと記す）３６は、サービスプロセッサ１Ａからのコマンド、データを制御信号線ＬＡ１４を介し受け、システムボード２Ａの状態を把握し、且つプログラムをシステムボード２Ａにロードする。このボードコントローラ３６はサービスプロセッサ１Ａからの電源制御コマンドにより、第１、第２のＤＤＣ３５，３９をオン、オフを制御する。図４では、電源コントローラ３６が電源のオンを示す出力許可（Out
Enable）信号をＤＤＣ３５，３９に与えることを示す。
【００３８】
一対のＡ／Ｄ変換器（Analog/Digital
Converter）３７，３８は、各々第１のＤＤＣ３５と第２のＤＤＣ３８の出力電圧をデジタル値（電圧値）に変換する。Ｉ２Ｃコントローラ２９は、Ａ／Ｄ変換器３７，３８からの各ＤＤＣの電圧値を読み取る。サービスプロセッサ１Ａは信号線ＬＡ１２を介しＩ２Ｃコントローラ２９電圧値を読み取り、電圧値のチェックを行う。
【００３９】
（ハードウェア制御シーケンス）
図５は、図１及び図２のハードウェア制御シーケンスプログラム及び制御プログラムの構成図である。図６は、図５のハードウェア制御シーケンステーブルの説明図である。図５は、サービスプロセッサ１Ａ，１Ｂのハードウェア制御シーケンスを実行するためのプログラム構成を示す。
【００４０】
図５において、指示受付オブジェクト１４はオペレータからの起動／リセット／停止や、ハード異常の縮退指示などを端末装置５Ａから受信する。ハードウェア制御シーケンスプログラム（ハードウェア制御シーケンス実行オブジェクト）１０は、指示オブジェクト１４からの起動／リセット／停止などの指示を具体的なハードウェア制御シーケンスに変換し、ノード制御オブジェクト１２Ａに渡す。又、ハードウェア制御シーケンス実行オブジェクト（以下、実行オブジェクトという）１０は、どのノード制御オブジェクトにハードウェア制御シーケンスを送信するのか判断を行う。この実行オブジェクト１０だけは、運用／待機のステータスを持つ。待機ステータスの実行オブジェクト１０は、運用ステータスの実行オブジェクト１０に対して、指示受付オブジェクトから受信した指示を転送する。図５では、サービスプロセッサ１Ａが運用状態、サービスプロセッサ１Ｂが待機状態である。そのため、サービスプロセッサ１Ａ側の実行オブジェクトが運用ステータスに、サービスプロセッサ１Ｂ側の実行オブジェクトが待機ステータスにある。
【００４１】
共有データベースファイル１６はサービスプロセッサ１Ａ、１Ｂ間で情報を共有するためのデータベースファイルである。サービスプロセッサ１Ａ、１Ｂが両共有データベースファイル１６に情報を書き込み、各サービスプロセッサが有する共有データベースを同期させる。
【００４２】
ノード制御オブジェクト１２Ａは、実行オブジェクト１０から受け取ったハードウェア制御シーケンスに従い、ハードウェア制御を行う。Ｉ２Ｃ制御オブジェクトライブラリ（以下、Ｉ２Ｃ制御オブジェクトという）１２Ｂは、ノード制御オブジェクト１２Ａより指示を受け、図４で説明したように、主に電源系の処理を行う。ＪＴＡＧ制御オブジェクトライブラリ（以下、ＪＴＡＧ制御オブジェクトという）１２Ｃは、ノード制御オブジェクト１２Ａより指示されて、図３で説明したように主にＬＳＩ素子２０系の処理を行う。
【００４３】
次に、図６により、ハードウェア制御シーケンスを、電源制御シーケンス及びリセット制御シーケンスを例に説明する。図６では、処理番号と対応する実行処理を記載する。又、図６のハードウェア制御シーケンステーブルでは、処理番号０〜９が電源制御シーケンスであり、処理番号１０〜１６がリセット制御シーケンスである。各制御シーケンスは処理番号の順に制御を実行する。
【００４４】
電源制御シーケンスでは、サービスプロセッサ１Ａは電源ユニット３２の電源投入を実行する（処理番号０）。これにより、システムボード２Ａ，２Ｂに電源が供給される。次に、サービスプロセッサ１Ａは電源ユニット３２の出力電圧の確認を実行する（処理番号１）。この確認後、システムボード２Ａ（２Ｂ）の負荷電圧（１２Ｖ）の出力を実行する（処理番号２）。図４で説明したように、サービスプロセッサ１Ａは、制御信号線ＬＡ１４を介しボードコントローラ３６にＤＤＣ３５の出力許可を指示する。ボードコントローラ３６はＤＤＣ３５にＯｕｔ  Ｅｎａｂｌｅを書き込む。ＤＤＣ３５は、ボードコントローラ３６からのＯｕｔ  Ｅｎａｂｌｅを受け、電源ユニット３２からのＤＣ４８ＶをＤＣ１２Ｖに変換する動作を開始する。
【００４５】
サービスプロセッサ１Ａは、ＤＤＣ３５の負荷出力の確認を実行する（処理番号３）。図４で説明したように、サービスプロセッサ１Ａは、制御信号線ＬＡ１２を介しＩ２Ｃコントローラ２９にＤＤＣ３５の電圧値の読み取りを指示する。Ｉ２Ｃコントローラ２９はＡ／Ｄ変換器３７を介しＤＤＣ３５の出力電圧値を読み取り、サービスプロセッサ１Ａに送信する。サービスプロセッサ１ＡはＩ２Ｃコントローラ２９から送られたＤＤＣ３５の出力電圧値が規定のものかをチェックする。
【００４６】
この確認後、システムボード２Ａ（２Ｂ）の負荷電圧（５Ｖ）の出力を実行する（処理番号４）。図４で説明したように、サービスプロセッサ１Ａは、制御信号線ＬＡ１４を介しボードコントローラ３６にＤＤＣ３５の出力許可を指示する。ボードコントローラ３６はＤＤＣ３７にＯｕｔ  Ｅｎａｂｌｅを書き込む。ＤＤＣ３７は、ボードコントローラ３６からのＯｕｔ  Ｅｎａｂｌｅを受けて、ＤＤＣ３５からのＤＣ１２ＶをＤＣ５Ｖに変換する動作を開始する。
【００４７】
サービスプロセッサ１ＡはＤＤＣ３７の負荷出力の確認を実行する（処理番号５）。図４で説明したように、サービスプロセッサ１Ａは制御信号線ＬＡ１２を介しＩ２Ｃコントローラ２９にＤＤＣ３７の電圧値の読み取りを指示する。Ｉ２Ｃコントローラ２９はＡ／Ｄ変換器３８を介しＤＤＣ３７出力電圧値を読み取り、サービスプロセッサ１Ａに送信する。サービスプロセッサ１Ａは、Ｉ２Ｃコントローラ２９から送られたＤＤＣ３７の出力電圧値が規定のものかをチェックする。
【００４８】
以下、同様に、システムボード２Ａ（２Ｂ）の負荷電圧（３．３Ｖ）の出力を実行する（処理番号６）。サービスプロセッサ１Ａは第３のＤＤＣの負荷出力の確認を実行する（処理番号７）。そして、システムボード２Ａ（２Ｂ）の負荷電圧（１．８Ｖ）の出力を実行する（処理番号８）。サービスプロセッサ１Ａは第４のＤＤＣの負荷出力の確認を実行する（処理番号９）。
【００４９】
このようにして、サービスプロセッサは電源制御シーケンスを実行する。この例では、電源ユニット３２からシステムボード２Ａ，２Ｂへは常時電源を供給していないため、省電力化が期待できる。又、電源ユニット３２から第１のＤＤＣ３５、第２のＤＤＣ３７、第３のＤＤＣ、第４のＤＤＣの順で、電源投入し、且つ電圧値出力を確認する。このため、円滑に電源制御を実行できる。
【００５０】
次に、リセット制御シーケンスを説明する。サービスプロセッサ１Ａは、システムコントローラ２４を初期化する（処理番号１０）。図３で説明したように、サービスプロセッサ１ＡはＪＴＡＧ信号線ＬＡ１０を介し、ＪＴＡＧコントローラ２７にシステムコントローラ２４の初期化を指示する。ＪＴＡＧコントローラ２７はシステムコントローラ２４のレジスタ等をクリアする。
【００５１】
サービスプロセッサ１Ａは、メモリアクセスコントローラ２６、メモリ２８の初期化を行う（処理番号１１）。図３で説明したように、サービスプロセッサ１ＡはＩ２Ｃ信号線ＬＡ１２を介し、Ｉ２Ｃコントローラ２９にメモリアクセスコントローラ２６、メモリ２８の初期化を指示する。Ｉ２Ｃコントローラ２９はメモリアクセスコントローラ２６、メモリ２８のレジスタ等をクリアする。
【００５２】
サービスプロセッサ１Ａは、ＣＰＵ２２Ａ〜２２Ｄを初期化する（処理番号１２）。図３で説明したように、サービスプロセッサ１ＡはＪＴＡＧ信号線ＬＡ１０を介し、ＪＴＡＧコントローラ２７にＣＰＵ２２Ａ〜２２Ｄの初期化を指示する。ＪＴＡＧコントローラ２７はＣＰＵ２２Ａ〜２２Ｄのレジスタ等をクリアする。このようにして、各ＬＳＩ素子２０を初期化する。
【００５３】
次に、サービスプロセッサ１Ａはシステムコントローラ２４の設定処理を行う（処理番号１３）。図３で説明したように、サービスプロセッサ１ＡはＪＴＡＧ信号線ＬＡ１０を介し、ＪＴＡＧコントローラ２７にシステムコントローラ２４の設定を指示する。ＪＴＡＧコントローラ２７はシステムコントローラ２４の接続関係等を設定する。
【００５４】
サービスプロセッサ１Ａはメモリアクセスコントローラ２６の設定を行う（処理番号１４）。図３で説明したように、サービスプロセッサ１ＡはＩ２Ｃ信号線ＬＡ１２を介し、Ｉ２Ｃコントローラ２９にメモリアクセスコントローラ２６の設定を指示する。Ｉ２Ｃコントローラ２９はメモリアクセスコントローラ２６の接続関係等を設定する。
【００５５】
サービスプロセッサ１ＡはＣＰＵ２２Ａ〜２２Ｄの設定を行う（処理番号１５）。図３で説明したように、サービスプロセッサ１ＡはＪＴＡＧ信号線ＬＡ１０を介しＪＴＡＧコントローラ２７にＣＰＵ２２Ａ〜２２Ｄの設定を指示する。ＪＴＡＧコントローラ２７はＣＰＵ２２Ａ〜２２Ｄの接続関係等を設定する。
【００５６】
サービスプロセッサ１ＡはＣＰＵ２２Ａ〜２２Ｄのハルト（Halt）の解除を行い、スタート状態とする（処理番号１６）。図３で説明したように、サービスプロセッサ１ＡはＪＴＡＧ信号線ＬＡ１０を介しＪＴＡＧコントローラ２７にＣＰＵ２２Ａ〜２２Ｄのハルト解除を指示する。ＪＴＡＧコントローラ２７はＣＰＵ２２Ａ〜２２Ｄのハルトを解除する。
【００５７】
このようにして、各ＬＳＩ素子２０の設定を行い、ＣＰＵ２２Ａ〜２２Ｄが動作を開始する状態に設定する。
【００５８】
（ハードウェア制御の第１の実施の形態）
図７は、図５のプログラム構成によるハードウェア制御の処理フロー図である。図８は、図７の処理フロー図が示す動作を示すタイムチャート図である。図９は、図７の処理フローで実行するサービスプロセッサの決定処理フロー図である。図１０は、搭載ＬＳＩカウントテーブルの説明図である。図１１は、処理量カウントテーブルの説明図である。図１２は、ハード制御分担テーブルの説明図である。
【００５９】
図８を参照して、図７のハード制御処理を説明する。
【００６０】
（Ｓ１０）システムの使用者が指示を出す。端末装置５ＡのＣＬＩ(Command
Line Interface)又はＧＵＩ（Graphic User Interface）を用いて、ＬＡＮ５０を介しサービスプロセッサに制御指示を出力する。この実施の形態では、「システム電源投入」や「システムリセット」や「システム電源切断」など、システムを単位として指示を出力する。サービスプロセッサ１Ｂ（待機系）の指示受信オブジェクト１４は、システムの使用者が出した指示を受信する（図８の（１））。指示受信オブジェクト１４は、受信した指示をサービスプロセッサ１Ｂの実行オブジェクト１０に伝える。サービスプロセッサ１Ｂの実行オブジェクト１０は、自分のサービスプロセッサ１Ｂのステータスをチェックし、自分のステータスが「待機」であれば、受信した指示を「運用」のステータスを持つサービスプロセッサ１Ａの実行オブジェクト１０に転送する（図８の（２））。
【００６１】
（Ｓ１２）運用側のサービスプロセッサ１Ａの実行オブジェクト１０は、受け取った指示から実行するハードウェア制御シーケンスを決定する。前述の例では、「システム電源投入」や「システムリセット」などのハードウェア制御シーケンスを決定する。
【００６２】
（Ｓ１４）図６で説明したように、実行するハードウェア制御の手順はハード制御テーブルによって決められている。サービスプロセッサ１Ａの実行オブジェクト１０は、図６のテーブルに従って、ハードウェア制御を行う処理を決定する（図８の（３Ａ））。例えば、図６の電源制御シーケンスに示したように、電源投入する場合にオンする電圧に順番がある場合、その電圧をオンにする順番まで、詳細化する。また、図６のリセット制御シーケンスに示したように、ＬＳＩ素子の初期化に順番がある場合、その順番まで詳細化する。
【００６３】
（Ｓ１６）実行オブジェクト１０は実行するハードウェア制御をどのサービスプロセッサ１Ａ，１Ｂが実行するかを決定する。図９以下で詳述するように、実行オブジェクト１０は、制御するハードウェアの量に合わせて担当するサービスプロセッサ１Ａ，１Ｂを決定する。即ち、実行オブジェクト１０は、どのハードウェアを、どのサービスプロセッサ１Ａ、の１Ｂが制御するかを示する表を作成し、その表に従ってノード制御オブジェクト１２Ａに対して指示を送る。この表をハード制御分担表と呼ぶ。ハード制御分担表は、サービスプロセッサが故障となり、ハードウェア制御が続行が不可能になったときに動的に変更し、故障していない他のサービスプロセッサにハードウェア制御の引き継ぎを行う（図８の（３Ｂ））。
【００６４】
（Ｓ１８）実行オブジェクト１０は、分担を決定したサービスプロセッサ１Ａ，１Ｂのノード制御オブジェクト１２Ａに対し、分担した処理内容を転送する。この時、実行オブジェクト１０は二重化切り替えに必要なデータを共有データベースファイル１６に記憶する。この共有データベースファイルに記憶した保管データは、ハードウェア制御シーケンスをどこまで実行したのかのチェックポイントと、そのハードウェア制御を行っているサービスプロセッサ１Ａ、１Ｂの番号とである（図８の（３Ｃ））。
【００６５】
（Ｓ２０）処理を分担された各サービスプロセッサ１Ａ、１Ｂのノード制御オブジェクト１２Ａが実行オブジェクト１０からの指示を受信する。ノード制御オブジェクト１２Ａは、受信した指示を解読する。ノード制御オブジェクト１２Ａは、指示がＩ２Ｃ制御であるなら指示をＩ２Ｃ制御オブジェクト１２Ｂに、指示がＪＴＡＧ制御ならＪＴＡＧ制御オブジェクト１２Ｃに送る（図８の（４））。それぞれのサービスプロセッサ１Ａ，１ＢのＩ２Ｃ制御オブジェクト１２Ｂ、ＪＴＡＧオブジェクト１２Ｃは前述の図３〜図６を用いて説明したように、信号線ＬＡ１〜ＬＢ２を介しシステムボード２Ａ、２Ｂのハードウェア（ＬＳＩ素子２０）に対してコマンドを発行する。
【００６６】
（Ｓ２２）システムボード２Ａ、２Ｂのハードウェア２０は、受け取った順にコマンドを実行していく。これにより、図３〜図６を用いて説明したように、ハードウェア２０は電源制御シーケンス及びリセットシーケンスを実行する。各ハードウェアは実行した結果を、同じルートを通って、サービスプロセッサ１Ａの実行オブジェクト１０に応答として返す（図８の（５））。
【００６７】
（Ｓ２４）サービスプロセッサ１Ａの実行オブジェクト１０は、応答を受信したことに応じて、共有データベースファイル１６の二重化切り替えに必要なデータを更新する。サービスプロセッサ１Ａは、共有データベースファイル１６の同期が必要な場合は、他のサービスプロセッサ１Ｂの制御プログラム１２（ノード制御オブジェクト１２Ａ、ＪＴＡＧ制御オブジェクト１２Ｃ，Ｉ２Ｃ制御オブジェクト１２Ｂ）から応答が返ってくるのを待ち合わる（図８の（６））。
【００６８】
（Ｓ２６）サービスプロセッサ１Ａの実行オブジェクト１０は、指示されたハードウェア実行シーケンスが全て終了したかを判断する。実行オブジェクト１０は、指示されたハードウェア実行シーケンスが全て終了していないと判断すると、ステップＳ１４に戻り、次のハード制御シーケンスの実行へと進む。逆に、実行オブジェクト１０は指示されたハードウェア実行シーケンスが全て終了したと判断すると、ハードウェア制御を終了する。サービスプロセッサ１Ａの実行オブジェクト１０は、他のサービスプロセッサ１Ｂの制御プログラム１２から応答が返ってきた場合も、同様に、指示されたハードウェア実行シーケンスが全て終了したかを判断する。実行オブジェクト１０は、指示されたハードウェア実行シーケンスが全て終了していないと判断すると、ステップＳ１４に戻り、次のハード制御シーケンスの実行へと進む。逆に、実行オブジェクト１０は指示されたハードウェア実行シーケンスが全て終了したと判断すると、ハードウェア制御を終了する。
【００６９】
図１０乃至図１２を参照して、図９により図７の実行するサービスプロセッサの決定処理（Ｓ１６）を説明する。システムボード２Ａ、２Ｂは複数のＣＰＵまたはメモリ（DIMM）を搭載できる。システムボード２Ａ，２Ｂが搭載するＣＰＵ数等やシステムボードの数はユーザーが購入した構成によって異なる。又、ＣＰＵやメモリ（DIMM）が多く搭載されているシステムボードのほうが、各ＬＳＩ素子２０の初期化、または設定処理など実行する処理の量が増える。更に、ハードウェアの構造上、同じシステムボードの同じＬＳＩ素子に対して複数のサービスプロセッサから同時に制御はできない。ここではシステムボード単位の分担の例で説明する。
【００７０】
（Ｓ３０）実行オブジェクト１０は、各サービスプロセッサ１Ａ，１Ｂのハードウェア制御処理量をカウントする。ここでは、図１０に示すように、構成定義テーブルから４台のシステムボード＃０〜＃３の各々に搭載されたＬＳＩ素子２０の数を取得する。各サービスプロセッサ１Ａ，１Ｂの担当するシステムボードは、図１２のフォーマットによるハード制御担当表１０４で予め定めてある。実行オブジェクト１０は取得したＬＳＩ素子２０の数から各サービスプロセッサ１Ａ，１Ｂの処理量（ＬＳＩ素子数）を計算する。例えば、図１１に示すように、サービスプロセッサ１Ａが担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１、＃３と定めた場合、実行オブジェクト１０は各サービスプロセッサ１Ａ，１Ｂの分担するＬＳＩ素子数を計算した、図１１に示す処理量テーブルを作成する。
【００７１】
（Ｓ３２）実行オブジェクト１０は、図１１の処理量テーブルからの各サービスプロセッサ１Ａ，１Ｂの処理量を比較する。ここでは、処理量とはＬＳＩ素子数（図示の分担ＬＳＩ数）である。
【００７２】
（Ｓ３４）実行オブジェクト１０は各サービスプロセッサの処理量の比較の結果より、両サービスプロセッサ１Ａ，１Ｂの処理量の差が多い場合には、ハード制御分担表１０４を更新する。例えば、両サービスプロセッサ１Ａ，１Ｂの処理量の差に近い処理量（ここでは、ＬＳＩ素子数）を持つシステムボードの分担を、一方のサービスプロセッサから他方のサービスプロセッサに更新する。又、実行オブジェクト１０は各サービスプロセッサの処理量の比較により、両サービスプロセッサ１Ａ，１Ｂの処理量の差が少ない場合には、ハード制御分担表１０４を更新せずに、終了する。ここでは、処理量の多いか、少ないかは、搭載されているＬＳＩ数が最小のシステムボードを基準として判別する。
【００７３】
例えば、図１０〜図１２は、２台のサービスプロセッサ１Ａ，１Ｂが４台のシステムボード＃０〜＃３をハード制御の対象とする例で示してある。図１０に示すように、システムボード＃０〜＃３に搭載されているＬＳＩ素子数が各々「８」、「８」、「４」、「４」であったとする。図１１の処理量テーブル１０２に示すように、サービスプロセッサ１Ａが担当するシステムボードをシステムボード＃０，＃２とし、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１、＃３とした場合、各サービスプロセッサ１Ａ，１Ｂの分担するＬＳＩ素子数は各々「１２」、「１２」となる。
【００７４】
ハード担当テーブル１０４は、システムボード（制御対象ハードと記す）と担当サービスプロセッサ（ＳＰと記す）との対応を示す表である。システムボードの欄はシステムボードの番号（＃０〜＃３）を示し、担当サービスプロセッサの欄は、制御対象のハード制御を行うサービスプロセッサの番号（０＝１Ａ，１＝１Ｂ）を示す。先ず、ハード担当テーブル１０４から図１１の処理量テーブル１０２を作成する。この処理量テーブル１０２で分担ＬＳＩ数にばらつきがあれば、分担ＬＳＩ数が均等となるように処理数テーブル１０２を更新する。そして、処理数テーブル１０２の結果に応じて、図１２のサービスプロセッサ１Ａ（＃０）が担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１、＃３と決定したハード制御分担テーブル１０４が得られる。
【００７５】
このように、処理量が均等になるようにハード制御を担当するサービスプロセッサ１Ａ，１Ｂを決定するため、サービスプロセッサがハード制御を分担しても、より高速にハード制御を行うことができる。
【００７６】
又、このように分担してハード制御した場合に、片方のサービスプロセッサが故障した場合の対応を考慮することが有効である。この場合、ハード制御分担テーブル１０４の中から、故障したサービスプロセッサに割り当てられていたハード制御対象（ここでは、システムボード）を選びだし、故障していないサービスプロセッサに割り当てる。従って、ハード制御分担テーブル１０４の書き換えのみでサービスプロセッサの故障に対応して、ハードウェア制御を続行できる。
【００７７】
尚、故障していたサービスプロセッサが復旧した場合、再度図９のハード制御対象の割り当てなおしを行い、サービスプロセッサの分担を決めることが有効である。
【００７８】
このように、冗長化されている複数のシステム制御装置から、並列にシステムボードのハードウェア制御を行うことによって、同時に制御できるハードウェアの数を増やし、ハード制御の高速化が可能となる。又、ハード制御シーケンスを順番に制御していく中で、細かい制御対象／制御内容に分解し、処理の量に応じて複数のサービスプロセッサで分担するため、より高速にハードウェア制御が可能となる。
【００７９】
（ハードウェア制御の第２の実施の形態）
図１３は、図５のプログラム構成によるハードウェア制御の第２の実施の形態のタイムチャート図である。図１４は、図１３のパーティションの説明図である。図１５は、処理量カウントテーブルの説明図である。図１６は、ハード制御分担テーブルの説明図である。
【００８０】
第２の実施の形態は、第１の実施の形態をパーティション構成の情報処理システムに適用した例である。パーティションは、情報処理システム内の複数のハードウェアをグループ化し、システム内でグループ間の処理が干渉しない区画を形成するものである。図１４によりパーティションを説明する。例えば、情報処理システムが４台のシステムボードＳＢ１〜ＳＢ４を有する場合に、パーティション０に３台のシステムボードＳＢ０、ＳＢ１、ＳＢ２を割り当て、パーティション１に１台のシステムボードＳＢ３を割り当てる。パーティション０のシステムボードＳＢ０、ＳＢ１，ＳＢ２とパーティション１のシステムボードＳＢ３とは干渉せず、独立に情報処理を実行する。このパーティション構成においては、パーティション単位でハード制御を行う。
【００８１】
第２の実施の形態を図１４乃至図１６を参照して、図１３により説明する。以下の説明では、パーティション０、１のハード制御を独立に行う例で説明する。又、第２の実施の形態も第１の実施の形態で説明した図５及び図６の構成を適用する。
【００８２】
（１）図７のステップＳ１０と同様に、システムの使用者が指示を出す。使用者は、端末装置５ＡのＣＬＩ(Command
Line Interface)又はＧＵＩ（Graphic User Interface）を用いて、ＬＡＮ５０を介しサービスプロセッサにパーティション０の制御指示を出力する。この実施の形態でも、「システム電源投入」や「システムリセット」や「システム電源切断」など、システムを単位として指示を出力する。この例では、運用中のサービスプロセッサ１Ａの指示受信オブジェクト１４は、システムの使用者が出したパーティション０の制御指示を受信する。指示受信オブジェクト１４は受信した指示を実行オブジェクト１０に転送する。
【００８３】
（２）図７のステップＳ１４と同様に、運用側のサービスプロセッサ１Ａの実行オブジェクト１０は、受け取った指示から実行するハードウェア制御シーケンスを決定する。前述の例では、「システム電源投入」や「システムリセット」などのハードウェア制御シーケンスを決定する。サービスプロセッサ１Ａの実行オブジェクト１０は図６のテーブルに従って、ハードウェア制御を行う処理を決定する。例えば、図６の電源制御シーケンスに示したように、電源投入する場合にオンする電圧に順番がある場合、その電圧の順番まで、詳細化する。また、図６のリセット制御シーケンスに示したように、ＬＳＩ素子の初期化に順番がある場合、その順番まで詳細化する。
【００８４】
（３）図７のステップＳ１６と同様に、実行オブジェクト１０はハードウェア制御をどのサービスプロセッサ１Ａ，１Ｂが実行するかを決定する。例えば、図１０に示したように、システムボード＃０〜＃３のＬＳＩ素子数を各々「８」、「８」、「４」、「４」であったとする。また、図１４に示すように、システムボード＃０、＃１、＃２がパーティション０を構成しているものとする。図１５の処理量テーブル１０２Ａに示すように、パーティション０のサービスプロセッサ１Ａが担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１とした場合、各サービスプロセッサ１Ａ，１Ｂの分担するＬＳＩ素子数は各々「１２」、「８」となる。この場合、搭載しているＬＳＩ数が最小ＬＳＩ数（＝４）のシステムボード（ここでは、ＳＢ＃２）の担当サービスプロセッサを変えても、サービスプロセッサが担当する処理量は同じである。
【００８５】
このため、担当サービスプロセッサを変更せずに、図１５の処理量テーブル１０２Ａから、図１６のサービスプロセッサ１Ａ（＃０）が担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１と決定したハード制御分担テーブル１０４Ａが得られる。
【００８６】
（４）図７のステップＳ１８と同様に、実行オブジェクト１０は分担を決定したサービスプロセッサ１Ａのノード制御オブジェクト１２Ａに対し、分担した処理内容（システムボードＳＢ＃０，ＳＢ＃２）を転送する。又、実行オブジェクト１０は分担を決定したサービスプロセッサ１Ｂのノード制御オブジェクト１２Ａに対し、分担した処理内容（システムボードＳＢ＃１）を転送する。この時、実行オブジェクト１０は二重化切り替えに必要なデータを共有データベースファイル１６に記憶する。この共有データベースファイルに記憶した保管データは、ハードウェア制御シーケンスをどこまで実行したのかのチェックポイントとそのハードウェア制御を行っているサービスプロセッサ１Ａ、１Ｂの番号とである。
【００８７】
（５）図７のステップＳ２０と同様に、処理を分担された各サービスプロセッサ１Ａ、１Ｂのノード制御オブジェクト１２Ａが実行オブジェクト１０からの指示を受信する。ノード制御オブジェクト１２Ａは受信した指示を解読する。ノード制御オブジェクト１２Ａは、指示がＩ２Ｃ制御であるなら指示をＩ２Ｃ制御オブジェクト１２Ｂに、指示がＪＴＡＧ制御ならＪＴＡＧ制御オブジェクト１２Ｃに送る。サービスプロセッサ１ＡのＩ２Ｃ制御オブジェクト１２Ｂ、ＪＴＡＧオブジェクト１２Ｃは前述の図３〜図６を用いて説明したように、信号線ＬＡ１〜ＬＢ２を介しシステムボード２Ａ、２Ｂ（ＳＢ＃０、ＳＢ＃２）のハードウェア（ＬＳＩ素子２０）に対してコマンドを発行する。同様に、サービスプロセッサ１ＢのＩ２Ｃ制御オブジェクト１２Ｂ、ＪＴＡＧオブジェクト１２Ｃは前述の図３〜図６を用いて説明したように、信号線ＬＡ１〜ＬＢ２を介しシステムボードＳＢ＃１のハードウェア（ＬＳＩ素子２０）に対してコマンドを発行する。
【００８８】
（６）図７のステップＳ２２と同様に、システムボード２Ａ、２Ｂ・・（＃０、＃１、＃２）のハードウェア２０は、受け取った順にコマンドを実行していく。これにより、図３〜図６を用いて説明したように、ハードウェア２０は電源制御シーケンス及びリセットシーケンスを実行する。各ハードウェアは実行した結果を、同じルートを通って、サービスプロセッサ１Ａの実行オブジェクト１０に応答として返す（図８の（５））。
【００８９】
（７）サービスプロセッサ１Ａの実行オブジェクト１０は、応答を受信したことに応じて、共有データベースファイル１６の二重化切り替えに必要なデータを更新する。サービスプロセッサ１Ａは共有データベースファイル１６の同期が必要な場合は、他のサービスプロセッサ１Ｂの制御プログラム１２（ノード制御オブジェクト１２Ａ、ＪＴＡＧ制御オブジェクト１２Ｃ，Ｉ２Ｃ制御オブジェクト１２Ｂ）から応答が返ってくるのを待ち合わる。サービスプロセッサ１Ａの実行オブジェクト１０はパーティション０に対し、指示されたハードウェア実行シーケンスが全て終了したかを判断する。実行オブジェクト１０は指示されたハードウェア実行シーケンスが全て終了していないと判断すると、次のハード制御シーケンスの実行へと進む。逆に、実行オブジェクト１０は指示されたハードウェア実行シーケンスが全て終了したと判断すると、ハードウェア制御を終了する。
【００９０】
（８）又、パーティション０のシステムボードＳＢ＃０，＃１，＃２のハードウェアがハード制御を実行している間に、運用中のサービスプロセッサ１Ａの指示受信オブジェクト１４がシステムの使用者が出したパーティション１の制御指示を受信した場合には、各々の制御を並行処理できる。即ち、指示受信オブジェクト１４は、受信したパーティション１の制御指示を実行オブジェクト１０に転送する。
【００９１】
（９）図７のステップＳ１４と同様に、運用側のサービスプロセッサ１Ａの実行オブジェクト１０は受け取った指示から実行するハードウェア制御シーケンスを決定する。サービスプロセッサ１Ａの実行オブジェクト１０は図６のテーブルに従って、ハードウェア制御を行う処理を決定する。
【００９２】
（１０）図７のステップＳ１６と同様に、実行オブジェクト１０はハードウェア制御をどのサービスプロセッサ１Ａ，１Ｂが実行するかを決定する。例えば、図１０に示したように、システムボード＃０〜＃３のＬＳＩ素子数を各々「８」、「８」、「４」、「４」であったとした場合、図１５の処理量テーブル１０２Ａに示したように、パーティション０のサービスプロセッサ１Ａが担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１と決定した。パーティション０では、各サービスプロセッサ１Ａ，１Ｂの分担するＬＳＩ素子数は各々「１２」、「８」である。ここで、パーティション１のシステムボードＳＢ＃３の担当サービスプロセッサを決定する際に、パーティション１のシステムボードＳＢ＃３のＬＳＩ数は「４」であるため、パーティション１の担当を、その時点の処理量が「８」であるサービスプロセッサ１Ｂ（＃１）に決定する。これにより、サービスプロセッサ間の処理数を均等にできる。即ち、図１５の処理量テーブル１０２Ａから、図１６のサービスプロセッサ１Ａ（＃０）が担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１、＃３と更新する。
【００９３】
（１１）図７のステップＳ１８と同様に、実行オブジェクト１０は分担を決定したサービスプロセッサ１Ｂのノード制御オブジェクト１２Ａに対し、パーティション１の処理内容（システムボードＳＢ＃３）を転送する。この時も、ハードウェア制御シーケンス実行オブジェクト１０は二重化切り替えに必要なデータを共有データベースファイル１６に記憶する。この保管データは、ハードウェア制御シーケンスをどこまで実行したのかのチェックポイントとそのハードウェア制御を行っているサービスプロセッサ１Ａ、１Ｂの番号とである。
【００９４】
（１２）図７のステップＳ２０と同様に、処理を分担されたサービスプロセッサ１Ｂのノード制御オブジェクト１２Ａが実行オブジェクト１０からの指示を受信する。ノード制御オブジェクト１２Ａは受信した指示を解読する。ノード制御オブジェクト１２Ａは、指示がＩ２Ｃ制御であるなら指示をＩ２Ｃ制御オブジェクト１２Ｂに、指示がＪＴＡＧ制御ならＪＴＡＧ制御オブジェクト１２Ｃに送る。
【００９５】
図７のステップＳ２２と同様に、システムボード＃３のハードウェア２０は受け取った順にコマンドを実行していく。これにより、図３〜図６を用いて説明したように、ハードウェア２０は電源制御シーケンス及びリセットシーケンスを実行する。各ハードウェアは実行した結果を、同じルートを通って、サービスプロセッサ１Ａの実行オブジェクト１０に応答として返す。
【００９６】
このように、パーティション構成においても、処理量が均等になるようにハード制御を担当するサービスプロセッサ１Ａ，１Ｂを決定するため、サービスプロセッサがハード制御を分担しても、高速にハード制御を行うことができる。又、一方のパーティションのハード制御の空き時間に他のパーティションのハード制御を行うため、より高速なハード制御を実現できる。
【００９７】
（ハードウェア制御の第３の実施の形態）
図１７は、図５のプログラム構成によるハードウェア制御の第３の実施の形態のタイムチャート図である。図１８は図１７のサービスプロセッサの分担決め処理のフロー図である。図１９は、図１７、図１８の分担決め処理の説明図である。
【００９８】
第３の実施の形態は、片方のサービスプロセッサが故障した場合の対応策を示す。以下、図１７により第３の実施の形態を説明する。尚、図７で説明した処理と同一のものは、同一の記号で示す。
【００９９】
（１）ステップＳ１０と同様に、システムの使用者が端末装置５ＡのＣＬＩ(Command
Line Interface)又はＧＵＩ（Graphic User Interface）を用いて、ＬＡＮ５０を介しサービスプロセッサに制御指示を出力する。サービスプロセッサ１Ｂ（待機系）の指示受信オブジェクト１４はシステムの使用者が出した指示を受信する。
【０１００】
（２）指示受信オブジェクト１４は、受信した指示をサービスプロセッサ１Ｂの実行オブジェクト１０に伝える。サービスプロセッサ１Ｂの実行オブジェクト１０は、自分のサービスプロセッサ１Ｂのステータスをチェックし、自分のステータスが「待機」であれば、運用した指示を、「運用」のステータスを持つサービスプロセッサ１Ａの実行オブジェクト１０に転送する。
【０１０１】
（３Ａ）ステップＳ１２と同様に、運用側のサービスプロセッサ１Ａの実行オブジェクト１０は受け取った指示から実行するハードウェア制御シーケンスを決定する。前述の例では、「システム電源投入」や「システムリセット」などのハードウェア制御シーケンスを決定する。図６で説明したように、実行するハードウェア制御の手順はハード制御テーブルによって決められている。サービスプロセッサ１Ａの実行オブジェクト１０は図６のテーブルに従って、ハードウェア制御を行う処理を決定する。
【０１０２】
（３Ｂ）ステップＳ１６と同様に、実行オブジェクト１０は実行するハードウェア制御をどのサービスプロセッサ１Ａ，１Ｂが実行するかを決定する。図９以下で詳述したように、実行オブジェクト１０は、制御するハードウェアの量に合わせて担当するサービスプロセッサ１Ａ，１Ｂを決定する。即ち、どのハードウェアを、どのサービスプロセッサ１Ａ、の１Ｂが制御するかを示すハード制御分担テーブルを作成し、そのテーブル（表）に従ってノード制御オブジェクト１２Ａに対して指示を送る。
【０１０３】
（３Ｃ）ステップＳ１８と同様に、実行オブジェクト１０は分担を決定したサービスプロセッサ１Ａ，１Ｂのノード制御オブジェクト１２Ａに対し、分担した処理内容を転送する。この時、実行オブジェクト１０は二重化切り替えに必要なデータを共有データベースファイル１６に記憶する。この保管データは、ハードウェア制御シーケンスをどこまで実行したのかのチェックポイントとそのハードウェア制御を行っているサービスプロセッサ１Ａ、１Ｂの番号とである。
【０１０４】
（４）処理を分担された各サービスプロセッサ１Ａ、１Ｂのノード制御オブジェクト１２Ａが、実行オブジェクト１０からの指示を受信する。ノード制御オブジェクト１２Ａは受信した指示を解読する。ノード制御オブジェクト１２Ａは、指示がＩ２Ｃ制御であるなら指示をＩ２Ｃ制御オブジェクト１２Ｂに、指示がＪＴＡＧ制御ならＪＴＡＧ制御オブジェクト１２Ｃに送る。それぞれのサービスプロセッサ１Ａ，１ＢのＩ２Ｃ制御オブジェクト１２Ｂ、ＪＴＡＧオブジェクト１２Ｃは前述の図３〜図６を用いて説明したように、信号線ＬＡ１〜ＬＢ２を介しシステムボード２Ａ、２Ｂのハードウェア（ＬＳＩ素子２０）に対してコマンドを発行する。
【０１０５】
（５）システムボード２Ａ、２Ｂのハードウェア２０は受け取った順にコマンドを実行していく。これにより、図３〜図６を用いて説明したように、ハードウェア２０は電源制御シーケンス及びリセットシーケンスを実行する。各ハードウェアは実行した結果を、同じルートを通って、サービスプロセッサ１Ａの実行オブジェクト１０に応答として返す。
【０１０６】
（７）冗長化されているサービスプロセッサ１Ａ，１Ｂはお互いにハートビート（Heart
Beat）を監視している。ハートビート監視では、互いのサービスプロセッサが所定期間間隔で相互に通信しあい、一方のサービスプロセッサが他方のサービスプロセッサの通信を所定期間検出しないとハートビート応答がないと判断する。そして、他方のサービスプロセッサは一方のサービスプロセッサが故障したと判断する。この判断結果はハードウェア制御シーケンス実行オブジェクト１０にイベントとして通知される。
【０１０７】
（８）ハートビート応答なしの通知に応じて、実行オブジェクト１０が故障したサービスプロセッサ１Ａの担当していた作業の再振り分けを行う。即ち、実行オブジェクト１０は、共有データベースファイル１６から故障したサービスプロセッサ１Ａに割り当てられていたハード制御のチェックポイントを検索する。共有データベースファイル１６は書き込まれた内容を、他方のデータベースに同期しており、ハード制御シーケンスを実行しているサービスプロセッサの番号とハード制御シーケンスをどこまで実行したかのチェックポイントを記憶する。
【０１０８】
（９）実行オブジェクト１０は図１８以下で詳述するように、ハード制御分担テーブル１０４を更新する。
【０１０９】
（１０）実行オブジェクト１０は更新された新しいハード制御分担テーブル１０４に従い、記録されているチェックポイントから制御を再開するように、ノード制御オブジェクト１０に指示を出す。即ち、更新された新しいハード制御分担テーブル１０４に従い、実行オブジェクト１０はシステムボード＃０、＃１、＃２、＃３のハード制御指示を発行する。
【０１１０】
（１１）実行オブジェクト１０は、二重化切り替えに必要なデータ（ハードウェア制御シーケンスをどこまで実行したのかのチェックポイントと、そのハードウェア制御を行っているサービスプロセッサの番号）とを共有データベースファイル１６に記憶する。
【０１１１】
（１２）ノード制御オブジェクト１２Ａは、指示がＩ２Ｃ制御であるなら指示をＩ２Ｃ制御オブジェクト１２Ｂに、指示がＪＴＡＧ制御ならＪＴＡＧ制御オブジェクト１２Ｃに送る。サービスプロセッサ１ＢのＩ２Ｃ制御オブジェクト１２Ｂ、ＪＴＡＧオブジェクト１２Ｃは前述の図３〜図６を用いて説明したように、信号線ＬＡ１〜ＬＢ２を介しシステムボード２Ａ、２Ｂ（ＳＢ＃０、ＳＢ＃２）のハードウェア（ＬＳＩ素子２０）に対してコマンドを発行する。以降、図７のステップＳ２０以下の制御が実行される。
【０１１２】
図１９を参照して、図１８により担当変更処理を説明する。
【０１１３】
（Ｓ４０）一方のサービスプロセッサの実行オブジェクト１０は、他のサービスプロセッサが異常と通知されると、ハード制御分担テーブル１０４の中から故障したサービスプロセッサに割り当てられていたハード制御対象（ここでは、システムボード＃０、＃２）を選びだし、故障していないサービスプロセッサに割り当てる。図１９に示すように、サービスプロセッサ１Ａ（＃０）の故障に応じて、実行オブジェクト１０は、サービスプロセッサ１Ｂがシステムボード＃０〜＃３を担当するように、共有データベースファイル１６のハード制御分担テーブル１０４の担当ＳＰを「１」に書き換える。
【０１１４】
（Ｓ４２）実行オブジェクト１０は、共有データベースファイル１６記録していた実行中の全ハードウェア制御シーケンスを読み出し、読み出したハードウェア制御シーケンスが故障したサービスプロセッサ１Ａが分担しているハードウェア制御シーケンスであるか否かを判定する。故障したサービスプロセッサ１Ａが分担したハードウェア制御シーケンスであると判定すると、新しいハード制御分担テーブル１０４に従い、サービスプロセッサ１Ｂの実行オブジェクト１０がノード制御オブジェクト１２Ａに対し、サービスプロセッサ１Ａが分担したハードウェア制御シーケンスのチェックポイントからの再開を指示する。一方、読み出したハードウェア制御シーケンスが故障したサービスプロセッサ１Ａが分担したハードウェア制御シーケンスでないと判定すると、サービスプロセッサ１Ｂの実行オブジェクト１０がノード制御オブジェクト１２Ａに対し、自己が担当しているハードウェア制御シーケンスのチェックポイントからの処理を継続する。
【０１１５】
尚、故障時以外の通常時は、各サービスプロセッサ１Ａ，１Ｂの実行オブジェクト１０が、ノード制御オブジェクト１２Ａに指示を出した時点で、ハード制御シーケンス毎に実行を割り当てたサービスプロセッサの番号を共有データベースファイル１６に記録する。又、ノード制御オブジェクト１２Ａはハード制御シーケンスを進めるたびに、チェックポイントを更新する。更新された情報は、共有データベースファイル１６に書き込まれ、サービスプロセッサ１Ａ，１Ｂ間で同期する。
【０１１６】
このように、片方のサービスプロセッサが故障した場合に、ハード制御分担テーブル１０４の中から故障したサービスプロセッサに割り当てられていたハード制御対象（ここでは、システムボード）を選びだし、故障していないサービスプロセッサに割り当てる。従って、ハード制御分担テーブル１０４の書き換えのみでサービスプロセッサの故障に対応して、ハードウェア制御を続行できる。
【０１１７】
次に、故障したサービスプロセッサ１Ａが交換され正常に戻った場合には、以下のように動作する。
【０１１８】
（Ａ）サービスプロセッサ１Ａが交換され起動する。起動したサービスプロセッサ１Ａの実行オブジェクト１０が、すでに起動しているサービスプロセッサ１Ｂの実行オブジェクト１０との同期を開始する。後から起動したサービスプロセッサ１Ａの実行オブジェクト１０は「待機」のステータスを持って起動する。
【０１１９】
（Ｂ）「運用」のステータスを持つサービスプロセッサ１Ｂの実行オブジェクト１０は図９で説明した処理でハード制御分担表１０４を更新する。図１９に示すように、実行オブジェクト１０はサービスプロセッサ１Ｂがシステムボード＃０〜＃３を担当するように「１」に書き換えたハード制御分担テーブル１０４の担当ＳＰを、サービスプロセッサ１Ａ（＃０）が担当するシステムボードをシステムボード＃０，＃２と、サービスプロセッサ１Ｂが担当するシステムボードをシステムボード＃１、＃３となるように書き換える。
【０１２０】
（Ｃ）サービスプロセッサ１Ｂのノード制御オブジェクト１２Ａが実行中のハード制御が終わってから、ノード制御オブジェクト１２Ａは交換されたサービスプロセッサ１Ａに対して次のハード制御を指示する。
【０１２１】
（ハードウェア制御方法の第４の実施）
前述の実施の形態では、冗長化されたシステム制御装置（サービスプロセッサ）１Ａ、１Ｂがシステムボード単位でハードウェア制御を分担する例で説明した。第４の実施の形態は、冗長化されたシステム制御装置（サービスプロセッサ）１Ａ、１Ｂがシステムボード内のＬＳＩ素子単位でハードウェア制御を分担する例を示す。
【０１２２】
図２０は、第４の実施の形態のＬＳＩ数カウントテーブルの説明図である。図２１は、第４の実施の形態のハード制御分担テーブルの説明図である。図２０は、図１及び図２のシステムボード２Ａ，２Ｂの構成において、個々のシステムボードのＬＳＩ素子数をカウントしたカウントテーブルの説明図である。図２０では、各システムボードが２台のシステムコントローラ（ＳＣと記す）２４と４台のＣＰＵ２２Ａ〜２２Ｄと４台のメモリアクセスコントローラ（ＭＡＣと記す）２６とをＬＳＩ素子として有する例を示す。
【０１２３】
又、図２１は、４台のシステムボード＃０〜＃３を搭載した場合の、サービスプロセッサ１Ａ，１ＢのＬＳＩ素子単位のハードウェア制御の分担例を示すハード制御分担テーブルの説明図である。前述の図９で説明した担当サービスプロセッサの決定処理により各サービスプロセッサの処理量を比較し、各々の制御対象ハードウェアを担当する担当サービスプロセッサを決定する。図２１に示すように、サービスプロセッサ１Ａ（図２１では担当ＳＰ＝０と記す）はシステムボード（ＳＢ）＃０、＃１のシステムコントローラ（ＳＣ）＃０，＃１を担当する。又、サービスプロセッサ１Ｂ（図２１では担当ＳＰ＝１と記す）はシステムボード（ＳＢ）＃２、＃３のシステムコントローラ（ＳＣ）＃０，＃１を担当する。
【０１２４】
更に、サービスプロセッサ１Ａはシステムボード（ＳＢ）＃０、＃１のＣＰＵ２２Ａ〜２２Ｄ（図２１では＃０，＃１、＃２、＃３と記す）を担当する。サービスプロセッサ１Ｂはシステムボード（ＳＢ）＃２、＃３のＣＰＵ２２Ａ〜２２２Ｄ（＃０，＃１、＃２、＃３）を担当する。
【０１２５】
このように、第４の実施の形態では、ＬＳＩ素子単位でのハードウェア制御の分担を行う。この場合に、ＬＳＩ素子単位にハード制御を分担するため、前述した共有データベースファイル１６を用いたハードウェア制御の同期制御は特に有効である。
【０１２６】
次に、第２の実施の形態で説明したパーティション構成の情報処理システムにＬＳＩ素子単位のハードウェア制御分担を適用した例を説明する。図２２は第４の実施の形態のパーティション構成例を示す説明図である。図２３は図２２におけるパーティション０のハード制御分担テーブル１０４Ｃの説明図である。
【０１２７】
図２２に示すように、例えば、情報処理システムが４台のシステムボードＳＢ１〜ＳＢ４を有する場合に、パーティション０に３台のシステムボードＳＢ０、ＳＢ１、ＳＢ２を割り当て、パーティション１に１台のシステムボードＳＢ３を割り当てているものとする。パーティション０のシステムボードＳＢ０、ＳＢ１，ＳＢ２とパーティション１のシステムボードＳＢ３とは干渉せず、独立に情報処理を実行する。このパーティション構成においても、パーティション単位でＬＳＩ単位にハード制御を行う。
【０１２８】
前述の図９、図１３〜図１６で説明した担当サービスプロセッサの決定処理により、各サービスプロセッサの処理量を比較し、各々の制御対象ハードウェアを担当する担当サービスプロセッサを決定し、図２３のハード制御分担テーブル１０４Ｃを作成する。図２３に示すように、サービスプロセッサ１Ａ（図では担当ＳＰ＝０と記す）は、パーティション０のシステムボード（ＳＢ）＃０のシステムコントローラ（ＳＣ）＃０，＃１とシステムボード（ＳＢ）＃１のシステムコントローラ（ＳＣ）＃１を担当する。又、サービスプロセッサ１Ｂ（図では担当ＳＰ＝１と記す）は、システムボード（ＳＢ）＃１のシステムコントローラ（ＳＣ）＃１とシステムボード＃２のシステムコントローラ（ＳＣ）＃０，＃１を担当する。
【０１２９】
更に、サービスプロセッサ１Ａ（担当ＳＰ＝０）は、システムボード（ＳＢ）＃０のＣＰＵ２２Ａ〜２２Ｄ（＃０，＃１、＃２、＃３と記す）とシステムボード（ＳＢ）＃１のＣＰＵ２２Ａ，２２Ｂ（＃０，＃１）とを担当する。サービスプロセッサ１Ｂ（担当ＳＰ＝１）は、システムボード（ＳＢ）＃１のＣＰＵ２２Ｃ，２２Ｄ（＃２、＃３）とシステムボード（ＳＢ）＃２のＣＰＵ２２Ａ〜２２Ｄ（＃０，＃１、＃２、＃３）を担当する。
【０１３０】
このように、パーティション構成においても、ＬＳＩ素子単位でのハードウェア制御の分担を行う。この場合に、ＬＳＩ素子単位に分担するため、前述した共有データベースファイル１６を用いたハードウェア制御の同期制御は特に有効である。
【０１３１】
（他の実施の形態）
前述の実施の形態では、ハードウェア制御シーケンスを電源投入シーケンスとリセットシーケンスとで説明したが、電源切断シーケンス等の他のハードウェア制御シーケンスに適用できる。又、システム制御装置からのハードウェア制御をＩ２Ｃ制御とＪＴＡＧ制御で説明したが、他の制御構成を採用できる。更に、片方のサービスプロセッサの故障の救済を考慮しない場合には、共有データベースファイルの同期機能を省くことができる。
【０１３２】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【産業上の利用可能性】
【０１３３】
冗長構成の複数のシステム制御装置が複数の処理装置のハードウェアの制御を行うため、ハードウェア制御を高速にでき、時間短縮に効果がある。又、複数の処理装置のハードウェアの処理量により、システム制御装置の各々の分担処理量を決定し、各システム制御装置が分担された処理量のハードウェア制御を行うため、ハードウェアの処理量が多くても、ハードウェア制御を高速化できる。
【符号の説明】
【０１３４】
１Ａ、１Ｂ  システム制御装置（サービスプロセッサ）
２Ａ，２Ｂ  処理装置（システムボード）
３  クロスバースイッチ
４Ａ〜４Ｎ  Ｉ／Ｏユニット
１０  ハードウェア制御シーケンスプログラム
１２  制御プログラム
２０  ＬＳＩ素子
２２Ａ〜２２Ｄ  ＣＰＵ
２４  システムコントローラ
２６  メモリアクセスコントローラ
２８  ホストメモリ
ＬＡ１，ＬＡ２，ＬＢ１，ＬＢ２  ハードウェア制御信号線
【図１】
2011138833.tif 000003
【図２】
2011138833.tif 000004
【図３】
2011138833.tif 000005
【図４】
2011138833.tif 000006
【図５】
2011138833.tif 000007
【図６】
2011138833.tif 000008
【図７】
2011138833.tif 000009
【図８】
2011138833.tif 000010
【図９】
2011138833.tif 000011
【図１０】
2011138833.tif 000012
【図１１】
2011138833.tif 000013
【図１２】
2011138833.tif 000014
【図１３】
2011138833.tif 000015
【図１４】
2011138833.tif 000016
【図１５】
2011138833.tif 000017
【図１６】
2011138833.tif 000018
【図１７】
2011138833.tif 000019
【図１８】
2011138833.tif 000020
【図１９】
2011138833.tif 000021
【図２０】
2011138833.tif 000022
【図２１】
2011138833.tif 000023
【図２２】
2011138833.tif 000024
【図２３】
2011138833.tif 000025
【手続補正書】
【提出日】平成24年12月20日(2012.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々情報処理を実行するハードウェアを有する複数の処理装置と、
ハードウェア制御指示に応じて、前記複数の処理装置の前記ハードウェアを制御する複数のシステム制御装置とを有し、
前記システム制御装置は、前記複数の処理装置を前記ハードウェア制御するための処理量により、前記複数のシステム制御装置の各々が分担するハードウェア制御の分担処理量を決定し、前記複数のシステム制御装置の各々が前記複数の処理装置に対し分担された処理量のハードウェア制御を実行する
ことを特徴とする情報処理システム。
【請求項２】
前記システム制御装置は、前記処理量により、前記分担するハードウェア制御の処理量を前記処理装置単位に決定する
ことを特徴とする請求項１の情報処理システム。
【請求項３】
前記システム制御装置は、前記処理量により、前記分担するハードウェア制御の処理量を前記処理装置内の前記ハードウェア単位に決定する
ことを特徴とする請求項１の情報処理システム。
【請求項４】
前記システム制御装置は、ハードウェア制御する前記複数の処理装置のハードウェアの個数から前記処理量を計算する
ことを特徴とする請求項１の情報処理システム。
【請求項５】
前記システム制御装置は、前記複数のシステム制御装置が分担するハードウェア制御の処理量が均等となるように、前記複数のシステム制御装置が分担する処理量を決定する
ことを特徴とする請求項１の情報処理システム。
【請求項６】
前記システム制御装置は、前記ハードウェア制御指示で指示されたハードウェア制御シーケンスを複数のハードウェア制御処理に変換し、前記変換した複数のハードウェア制御処理を前記複数の処理装置に順次実行する
ことを特徴とする請求項１の情報処理システム。
【請求項７】
前記複数のシステム制御装置は、前記ハードウェア制御の進行状況を記憶する共有ファイル装置を有し、
一の前記システム制御装置は、前記ハードウェア制御を分担している他のシステム制御装置の障害を検出して、前記共有ファイル装置に記憶されているハードウェア制御の進行状況を参照し、前記他のシステム制御装置が分担している前記ハードウェア制御を続行する
ことを特徴とする請求項１の情報処理システム。
【請求項８】
前記ハードウェアがＬＳＩ素子を有し、
前記複数のシステム制御装置の両方が、前記複数の処理装置の前記ＬＳＩ素子の初期化制御シーケンスを実行する
ことを特徴とする請求項１の情報処理システム。
【請求項９】
前記システム制御装置は、前記複数の処理装置を備えるパーティション単位に、前記複数のシステム制御装置の各々が分担するハードウェア制御の処理量を決定する
ことを特徴とする請求項１の情報処理システム。
【請求項１０】
前記処理装置は前記ハードウェアに電源を供給する電源制御回路を有し、前記ハードウェア制御シーケンスが前記電源制御回路の電源制御シーケンスを有する
ことを特徴とする請求項１の情報処理システム。
【請求項１１】
各々情報処理を実行するハードウェアを有する複数の処理装置と複数のシステム制御装置とを有する情報処理システムのハードウェア制御方法であって、
ハードウェア制御指示に応じて、前記システム制御装置は前記複数の処理装置を前記ハードウェア制御するための処理量を算出するステップと、
前記複数のシステム制御装置の各々が分担する前記ハードウェア制御の分担処理量を決定するステップと、
前記複数のシステム制御装置の各々が前記複数の処理装置に対し分担された処理量の前記ハードウェア制御を実行するステップとを有する
ことを特徴とする情報処理システムのハードウェア制御方法。
【請求項１２】
前記決定ステップは、前記システム制御装置は前記ハードウェア制御する前記複数の処理装置のハードウェアの個数から前記処理量を計算するステップを有する
ことを特徴とする請求項１１の情報処理システムのハードウェア制御方法。
【国際調査報告】
2011138833.tif 000026
2011138833.tif 000027