(57)【要約】  第１のシステム共通部（１４ａ）の異常を検出するステップと、パーティション部（Ｄ）毎に、第１のシステム共通部（１４ａ）の異常が発生した場合に第１のシステム共通部（１４ａ）の縮退を行うか否かについての優先情報を記憶部（２３）から読み出すステップと、システム制御部（２０）により、優先情報が設定されたパーティション部（Ｄ）の異常を検出した場合には、情報処理装置（１０）の停止処理を行うステップと、第１のシステム共通部（１４ａ）の動作を停止するとともに、第２のシステム共通部（１４ｂ）に切り替える縮退処理を行うステップとを有することにより、共通部において生じた障害により重要なパーティションがダウンした場合に、迅速に復旧する。
2008099453.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、
前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、
前記パーティション部毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報を前記記憶部から読み出すステップと、
前記システム制御部により、前記優先情報が設定されたパーティション部の異常を検出した場合には、前記情報処理装置の停止処理を行うステップと、
前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴とする縮退方法。
【請求項２】
前記情報処理装置の縮退方法はさらに、
前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有することを特徴とする請求項１記載の縮退方法。
【請求項３】
前記情報処理装置の縮退方法はさらに、
前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有することを特徴とする請求項１記載の縮退方法。
【請求項４】
前記情報処理装置の縮退方法はさらに、
前記再起動処理を行うステップにおいて、前記処理装置を任意のパーティション部に割り当てる再構成処理を行うことを特徴とする請求項４記載の縮退方法。
【請求項５】
それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、
前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、
前記システム制御部により、前記パーティション部の異常を検出するステップと、
前記システム制御部により、異常が検出されたパーティション部の識別情報を用いて、前記第１のシステム共通部の異常が発生した場合に前記システム共通部の縮退を行うか否かについての優先情報を、前記記憶部から検索するステップと、
前記システム制御部により検索された優先情報が、前記識別情報に対応するパーティション部に設定されている場合には、前記情報処理装置の停止処理を行うステップと、
前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴とする縮退方法。
【請求項６】
前記情報処理装置の縮退方法はさらに、
前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有することを特徴とする請求項５記載の縮退方法。
【請求項７】
前記情報処理装置の縮退方法はさらに、
前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有することを特徴とする請求項５記載の縮退方法。
【請求項８】
前記情報処理装置の縮退方法はさらに、
前記再起動処理を行うステップにおいて、前記処理装置を任意のパーティション部に割り当てる再構成処理を行うことを特徴とする請求項７記載の縮退方法。
【請求項９】
処理装置を有する複数のパーティション部と、
前記複数のパーティション部により共有され、通常動作を行う第１のシステム共通部と、
前記複数のパーティション部により共有され、縮退のために待機する第２のシステム共通部と、
前記複数のパーティション部と前記第１のシステム共通部の異常検出を行うシステム制御手段と、前記複数のパーティション部毎に設定された識別情報と前記識別情報毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報とが対応付けられて格納される記憶手段と、異常が検出されたパーティション部を停止するとともに、他の正常なパーティション部に切り替える縮退制御を行うパーティション縮退制御手段と、前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うシステム共通部縮退制御手段とを備えたシステム制御部とを有することを特徴とする情報処理装置。
【請求項１０】
前記パーティション部が有する処理部と第１及び第２のシステム共通部はそれぞれ、さらに異常を検出して割込みを通知する割込み通知手段を有し、
前記システム制御手段は、前記処理部又は前記第１若しくは前記第２のシステム共通部が有する前記割込み通知手段からの割込み通知により、前記パーティション部と前記システム共通部の異常の検出を行うことを特徴とする請求項９記載の情報処理装置。
【請求項１１】
前記パーティション部が有する処理部と前記システム共通部は、さらに前記処理部と前記システム共通部の内部情報を読み出すスキャンチェーン手段を有し、
前記システム制御手段は、前記スキャンチェーン手段を制御することにより、前記パーティション部と前記システム共通部の異常の検出を行うことを特徴とする請求項９記載の情報処理装置。
【請求項１２】
前記情報処理装置はさらに、
前記処理装置を任意の前記パーティション部に割り当てる再構成処理手段を有することを特徴とする請求項１０記載の縮退方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパーティショニング機能をそなえたサーバシステム等において、複数の物理パーティションによって共有されているハードウェア資源で発生した障害を処理する技術に関する。
【背景技術】
【０００２】
基幹システムで運用されるサーバシステムでは高い可用性や柔軟なリソース（ハードウェア資源）の運用が要求される。このような高い可用性や柔軟なリソース運用を実現するための手法として、サーバシステムにおいては、1台のシステムを複数のドメイン（パーティション）に分け、それぞれのドメイン上でＯＳ（Operating System）を動作させる、マルチドメインあるいはマルチパーティションと呼ばれる機能が用いられている。【０００３】
ＶＭ（Virtual Machine：仮想マシン）技術は、一つのシステムをソフトウェア・ファームウェア（一部ハードウェアアシストが必要な場合もある）により複数のシステム（ＶＭ）であるかのように見せ、それぞれのＶＭ上でOSを動作させる技術である。一方、ドメインシステムでは、各ドメインのほとんどが“物理的”に分離している。
図５０，図５１はそれぞれサーバシステムにおけるマルチドメインシステムの構成例を説明するための図であり、図５０はドメインを形成する前の状態を示す図、図５１はドメインを形成した状態を示す図である。【０００４】
これらの図５０，図５１に示すサーバシステム１００は、共通部１０１，ＣＰＵ１０２−１，１０２−２、メモリ（ＭＥＭ）１０３−１，１０３−２，Ｉ／Ｏ（Input/Output）１０４−１，１０４−２をそなえて構成され、これらの構成要素である、ＣＰＵ１０２−１，１０２−２、メモリ１０３−１，１０３−２，Ｉ／Ｏ１０４−１，１０４−２を任意に組み合わせることにより、複数のドメインを構成することができる。【０００５】
例えば、図５１に示すように、ＣＰＵ１０２−１，メモリ１０３−１およびＩ／Ｏ１０４−１を組み合わせてドメインD１を構成したり、ＣＰＵ１０２−２，メモリ１０３−２およびＩ／Ｏ１０４−２を組み合わせてドメインＤ２を構成したりすることができる。又、ドメインシステムにおいては、一旦構成したドメインの構造も変更することができ、システム内の任意の位置のＣＰＵをドメインに割り当てたり、任意の個数のＣＰＵをひとつのドメインに割り当てたりすることもできる。【０００６】
図５０および図５１に示した例は、理想的なマルチドメインシステムを示すものであるが、多くの場合、ひとつのボード上に複数のＣＰＵ、もしくはＣＰＵとメモリが搭載され、その搭載の組み合わせが制約となることもある。
また、ドメインを形成可能なサーバシステム１００においては、ドメインの構成を変更できるようにしている関係上、クロスバーやクロック等、複数のドメインで共有される共通部１０１が存在する。【０００７】
そして、サーバシステム１００においては、全てのドメインが同時にダウンすることを防ぐために、共通部１０１は最小化されるようになっており、又、冗長化や二重化が施されるようになっている。
また、共通部１０１以外の部分において生じた故障等の障害は、通常、他のドメインに影響を与えることがないように構成される一方、共通部１０１において生じた故障は全ドメインのダウンを発生させる可能性が高い。例えば、特に高周波数で動作している場合には、クロスバーやクロックを、ドメインをダウンさせることなく、正常系に切り替えたり、縮退させたりすることは困難である。【０００８】
図５２はマルチドメインシステムにおいて、共有部以外の部位で障害が生じた状態の例を示す図、図５３はマルチドメインシステムにおいて、共有部１０１で障害が生じた状態の例を示す図である。
従来のマルチドメインシステムにおいて、図５２に示すように、例えば、ドメインＤ１のＣＰＵ１０２−１において故障が生じた場合には、ドメインＤ１だけをシステムダウン（部分縮退）させ、ドメインＤ２については動作を続行させることにより、故障により影響を受けているドメインＤ１だけを停止させる。【０００９】
一方、マルチドメインシステムにおいて、図５３に示すように、共通部１０１において故障が生じた場合には、ドメインＤ１，Ｄ２のいずれもがダウンすることが多いが、共通部１０１において故障が生じた場合であっても、その故障箇所が特定のドメインにのみ関連する部分である場合もある。
このように、共通部１０１において生じた障害であって、故障個所が特定のドメインにのみ関連する部分である場合には、従来のマルチドメインシステムにおいては、全システムダウンを引き起こすような共通部１０１の縮退や切り離しは行なわずに、故障の影響を受けない（生き残った）ドメインの動作続行を優先するようになっている。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、ユーザによっては、形成した複数のドメインの間で重要度の差がある場合があり、従来のマルチドメインシステムにおいては、共通部１０１において生じた故障により、例えば、重要度の高いドメインがダウンした場合においても、残ったドメインの動作続行を優先することにより、ダウンした重要なドメインの復旧が遅れる場合がある。
本発明は、このような課題に鑑み創案されたもので、共通部において生じた障害により重要なパーティション（ドメイン）がダウンした場合に、迅速に復旧することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明の情報処理装置の縮退方法は、それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、前記パーティション部毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報を前記記憶部から読み出すステップと、前記システム制御部により、前記優先情報が設定されたパーティション部の異常を検出した場合には、前記情報処理装置の停止処理を行うステップと、前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴としている。【００１２】
なお、前記情報処理装置の縮退方法はさらに、前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有してもよい。
また、前記情報処理装置の縮退方法はさらに、前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有してもよい。【００１３】
さらに、前記情報処理装置の縮退方法はさらに、前記再起動処理を行うステップにおいて、前記処理装置を任意のパーティション部に割り当てる再構成処理を行なってもよい。
また、本発明の情報処理装置の縮退方法は、それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、前記システム制御部により、前記パーティション部の異常を検出するステップと、前記システム制御部により、異常が検出されたパーティション部の識別情報を用いて、前記第１のシステム共通部の異常が発生した場合に前記システム共通部の縮退を行うか否かについての優先情報を、前記記憶部から検索するステップと、前記システム制御部により検索された優先情報が、前記識別情報に対応するパーティション部に設定されている場合には、前記情報処理装置の停止処理を行うステップと、前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴としている。【００１４】
なお、前記情報処理装置の縮退方法はさらに、前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有してもよい。
また、前記情報処理装置の縮退方法はさらに、前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有してもよい。【００１５】
さらに、前記情報処理装置の縮退方法はさらに、前記再起動処理を行うステップにおいて、前記処理装置を任意のパーティション部に割り当てる再構成処理を行なってもよい。
また、本発明の情報処理装置は、処理装置を有する複数のパーティション部と、前記複数のパーティション部により共有され、通常動作を行う第１のシステム共通部と、前記複数のパーティション部により共有され、縮退のために待機する第２のシステム共通部と、前記複数のパーティション部と前記第１のシステム共通部の異常検出を行うシステム制御手段と、前記複数のパーティション部毎に設定された識別情報と前記識別情報毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報とが対応付けられて格納される記憶手段と、異常が検出されたパーティション部を停止するとともに、他の正常なパーティション部に切り替える縮退制御を行うパーティション縮退制御手段と、前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うシステム共通部縮退制御手段とを備えたシステム制御部とを有することを特徴としている。【００１６】
なお、前記パーティション部が有する処理部と第１及び第２のシステム共通部はそれぞれ、さらに異常を検出して割込みを通知する割込み通知手段を有し、前記システム制御手段は、前記処理部又は前記第１若しくは前記第２のシステム共通部が有する前記割込み通知手段からの割込み通知により、前記パーティション部と前記システム共通部の異常の検出を行なってもよい。【００１７】
また、前記パーティション部が有する処理部と前記システム共通部は、さらに前記処理部と前記システム共通部の内部情報を読み出すスキャンチェーン手段を有し、前記システム制御手段は、前記スキャンチェーン手段を制御することにより、前記パーティション部と前記システム共通部の異常の検出を行なってもよい。
さらに、前記情報処理装置はさらに、前記処理装置を任意の前記パーティション部に割り当てる再構成処理手段を有してもよい。
【発明の効果】
【００１８】
本発明によれば、以下の少なくともいずれか１つの効果ないし利点がある。
（１）第１のシステム共通部の異常が検出された場合において、優先情報が設定されたパーティション部の異常を検出した場合には、情報処理装置の停止処理を行ない、第１のシステム共通部の動作を停止するとともに、第２のシステム共通部に切り替える縮退処理を行なうことにより、情報処理装置の復旧を迅速に行なうことができ、優先情報が設定されたパーティション部において行なわれていた処理を迅速に再開することができる。【００１９】
（２）優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、異常を検出したパーティション部の縮退処理を行なうことにより、優先情報が設定されたパーティション部を停止することがなく、優先情報が設定されたパーティション部において行なわれていた処理を続行することができる。
（３）パーティション部が有する処理部と第１及び第２のシステム共通部がそれぞれ、異常を検出して割込みを通知する割込み通知手段を有し、システム制御手段が、処理部又は第１若しくは第２のシステム共通部が有する割込み通知手段からの割込み通知により、パーティション部とシステム共通部の異常の検出を行なうことにより、パーティション部と前記システム共通部の異常の検出を迅速に行なうことができる。【００２０】
（４）パーティション部が有する処理部とシステム共通部が、処理部とシステム共通部の内部情報を読み出すスキャンチェーン手段を有し、このスキャンチェーン手段によりパーティション部と前記システム共通部の異常の検出を行なうことにより、パーティション部とシステム共通部の異常の検出を迅速に行なうことができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態の一例としてのサーバ（情報処理装置）のハードウェア構成例を示す論理ブロック図である。
【図２】実施形態の一例としてのサービスプロセッサのフラッシュROMに格納されるテーブルＴ１の例を示す図である。
【図３】実施形態の一例としてのサービスプロセッサのフラッシュROMに格納されるテーブルＴ２の例を示す図である。
【図４】実施形態の一例としてのサービスプロセッサのフラッシュROMに格納されるテーブルＴ３の例を示す図である。
【図５】実施形態の一例としてのサービスプロセッサのフラッシュROMに格納されるテーブルＴ４の例を示す図である。
【図６】実施形態の一例としてのサーバにおける共通部において異常が検出された場合の処理を説明するためのフローチャートである。
【図７】実施形態の一例としてのサーバのＣＭＵ内部の各チップのアドレス・データ線の結線例を示す図である。CMUとは本実施例におけるシステムボードの名称である。
【図８】実施形態の一例としてのサーバにおけるシステム全体のアドレス・データの結線を示す図である。
【図９】（ａ），（ｂ），（ｃ）はそれぞれ実施形態の一例としてのサーバにおける、各チップで異常を検出した場合に、サービスプロセッサに割込みでこれを通知するための割込み線の結線例を示す図である。
【図１０】（ａ），（ｂ），（ｃ）はそれぞれ実施形態の一例としてのサーバにおける、各チップとＦＰＧＡとの間のＪＴＡＧ接続線の結線例を示す図である。
【図１１】実施形態の一例としてのサーバにおけるシステム内のＦＰＧＡ間の結線例を示す図である。
【図１２】実施形態の一例としてのサーバにおけるＳＣ（システムコントローラ）チップの内部構成を示すブロック図である。
【図１３】実施形態の一例としてのサーバにおけるＸＢ(クロスバー)チップの内部構成例を示すブロック図である。
【図１４】実施形態の一例としてのサーバにおけるＩＯＣ（I/Oコントローラ）チップの内部構成例を示すブロック図である。
【図１５】実施形態の一例としてのサーバにおけるＣＭＵ／ＩＯＵ／ＢＰ(バックプレーン)上に搭載されるＦＰＧＡの内部構成を示すブロック図である。IOUとは本実施例におけるI/O制御用システムボードの名称である。
【図１６】実施形態の一例としてのサーバにおけるサービスプロセッサおよびサービスプロセッサ上のＦＰＧＡのチップ内の構造を示すブロック図である。
【図１７】実施形態の一例としてのサーバにおけるＸＢ縮退手法を説明するための図である。
【図１８】実施形態の一例としてのサーバにおけるＸＢ縮退手法を説明するための図である。
【図１９】実施形態の一例としてのサーバにおけるＸＢ縮退手法を説明するための図である。
【図２０】実施形態の一例としてのサーバにおけるFACEマップを説明するための図である。
【図２１】実施形態の一例としてのサーバにおけるテーブルＴ４への設定手法を説明するためのフローチャートである。
【図２２】実施形態の一例としてのサーバにおけるハードウェア異常発生時の処理例を説明するためのフローチャートである。
【図２３】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２４】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２５】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２６】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２７】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２８】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２９】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３０】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３１】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３２】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３３】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３４】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３５】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３６】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３７】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３８】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３９】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４０】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４１】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４２】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４３】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４４】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４５】実施形態の一例としてのサーバにおける切り離し箇所の決定手法を説明するためのフローチャートである。
【図４６】実施形態の一例としてのサーバにおけるシステムリスタート範囲決定処理手法を説明するためのフローチャートである。
【図４７】実施形態の一例としてのサーバにおけるシステムリスタート処理手法を説明するためのフローチャートである。
【図４８】実施形態の一例としてのサーバにおけるシステムリスタート処理手法を説明するためのフローチャートである。
【図４９】実施形態の一例としてのサーバにおけるシステムリスタート処理手法を説明するためのフローチャートである。
【図５０】サーバシステムにおけるマルチドメインシステムの構成例を説明するための図である。
【図５１】サーバシステムにおけるマルチドメインシステムの構成例を説明するための図である。
【図５２】マルチドメインシステムにおいて共有部以外の部位で障害が生じた状態の例を示す図である。
【図５３】マルチドメインシステムにおいて共有部で障害が生じた状態の例を示す図である。
【符号の説明】
【００２２】
１０    サーバ
１１，１１−１，１１−２    ＣＰＵ（処理装置）
１２，１２−１，１２−２    メモリ
１３，１３−１，１３−２    Ｉ／Ｏ
１４，１４ａ    共通部（第１のシステム共通部）
１４，１４ｂ    共通部（第２のシステム共通部）
２０    サービスプロセッサ（システム制御部）
２１    マイクロプロセッサ
２２    ＪＴＡＧコントローラ
２３    フラッシュＲＯＭ（記憶部）
２４    ＲＡＭ
２１１    システム制御手段
２１２    ドメイン縮退制御手段（パーティション縮退制御手段）
２１３    システム共通部縮退制御手段
２１４    再構成手段
２１５    再起動処理実行手段
D，D１，D２    ドメイン（パーティション部）
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施の形態を説明する。
図１は実施形態の一例としてのサーバ（情報処理装置）のハードウェア構成例を示す論理ブロック図である。
本サーバ１０は、例えば、基幹システムで運用される情報処理装置（コンピュータ）であって、図１に示すように、ＣＰＵ１１−１，１１−２，メモリ（ＭＥＭ）１２−１，１２−２，Ｉ／Ｏ（Input/Output）１３−１，１３−２，共通部１４ａ，１４ｂおよびサービスプロセッサ（ＳＰ）２０をそなえて構成され、ドメイン（パーティション）構造を有するシステムを実現するドメイン機能（パーティショニング機能）をそなえている。【００２４】
そして、本サーバ１０においては、このドメイン機能により、ＣＰＵ１１−１，１１−２、メモリ１２−１，１２−２，Ｉ／Ｏ１３−１，１３−２を任意に組み合わせることにより複数のドメイン（パーティション；パーティション部）を構成することができるようになっている。
例えば、図１に示す例においては、ＣＰＵ１１−１，メモリ１２−１およびＩ／Ｏ１３−１を組み合わせてドメイン（パーティション部）Ｄ１が構成され、ＣＰＵ１１−２，メモリ１２−２およびＩ／Ｏ１３−２を組み合わせてドメイン（パーティション部）Ｄ２が構成されている。【００２５】
なお、以下、ＣＰＵを示す符号としては、複数のＣＰＵのうち１つを特定する必要があるときには符号１１−１，１１−２を用いるが、任意のＣＰＵを指すときには符号１１を用いる。同様に、以下、メモリを示す符号としては、複数のメモリのうち１つを特定する必要があるときには符号１２−１，１２−２を用いるが、任意のメモリを指すときには符号１２を用い、又、Ｉ／Ｏを示す符号としては、複数のＩ／Ｏのうち１つを特定する必要があるときには符号１３−１，１３−２を用いるが、任意のＩ／Ｏを指すときには符号１３を用いる。更に、ドメインを示す符号としては、複数のドメインのうち１つを特定する必要があるときには符号Ｄ１，Ｄ２を用いるが、任意のドメインを指すときには符号Ｄを用いる。【００２６】
また、図１に示す例においては、サーバ１０がＣＰＵ１１，メモリ１２およびＩ／Ｏ１３をそれぞれ２つずつそなえて構成されているが、これに限定されるものではなく、ＣＰＵ１１，メモリ１２およびＩ／Ｏ１３がそれぞれ３以上そなえられてもよく、又、これらのＣＰＵ１１，メモリ１２およびＩ／Ｏ１３の数はそれぞれ異なってもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。【００２７】
さらに、図１に示す例においては、２つのドメインＤ１，Ｄ２が形成されているが、これに限定されるものではなく、３以上のドメインを形成してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
ここで、ドメインは、ＯＳが稼動する単位であり、１のドメインＤには少なくとも１つのＣＰＵ１１がそなえられるようになっている。【００２８】
共通部１４ａ，１４ｂは、例えば、クロスバーやクロック，システムコントローラであり、複数（本実施形態では２つ）のドメインＤ１，Ｄ２で共通して使用されるものである。例えば、システムコントローラやクロスバーは、ドメインを構成する機能を持っており、どのＣＰＵ１１、どのメモリ１２、どのＩ／Ｏ１３がどのドメインＤに属するかを任意に設定することができるようになっている。具体的には、システムコントローラおよびクロスバーはチップ内にテーブル（図２〜図４参照；詳細は後述）を持っており、これらのテーブルに設定されたドメインの境界を越えるアクセスが発生した場合に、そのアクセスを拒絶するようになっている。【００２９】
また、本実施形態においては、本サーバ１０において故障等の障害（異常）が生じていない通常動作時には、共通部１４ａ（第１のシステム共通部）が用いられ、ドメインＤ１，Ｄ２により共有されるようになっている。
そして、共通部１４ａにおいて障害等が検出された場合には、共通部１４ａに代えて共通部１４ｂが切り換えて用いられるようになっている。【００３０】
共通部１４ｂ（第２のシステム共通部）は、ドメインＤ１，Ｄ２により共有され、縮退のために待機するものであって、共通部１４ａにおいて故障等の障害が生じた時に共通部１４ａに代えて用いられるようになっている。
この共通部１４ｂは、共通部１４ａと同一もしくは略同一の構成をそなえ、共通部１４ａと共通部１４ｂとは選択的に用いることができる。例えば、共通部１４ａ，１４ｂがクロックである場合には、同一もしくは略同一の構成をそなえたクロックを２以上そなえ、１４aのクロックに異常が検出された場合には、異常が検出されたクロックに代えて、他のクロックに切り換える縮退処理が行なわれる。【００３１】
また、共通部１４ｂは、共通部１４ａと異なる構成をそなえてもよい。例えば、共通部１４ａ，１４ｂがクロスバーである場合において、異常が検出されていない通常状態においては２以上のクロスバーを並行して使用し、これらの２以上のクロスバーのいずれかにおいて異常が検出された場合には、異常が検出された方のクロスバーを切り離して退避させ、生き残った方のクロスバーだけを用いて引き続き本サーバ１０を動作させる縮退処理を行なってもよい。【００３２】
この場合、２以上のクロスバーを並行して使用した状態が共通部１４ａに相当し、異常が検出された方のクロスバーを切り離して退避させ、生き残った方のクロスバーだけを用いて使用する状態が共通部１４ｂに相当する。
以下、共通部を示す符号としては、複数の共通部のうち１つを特定する必要があるときには符号１４ａ，１４ｂを用いるが、任意の共通部を指すときには符号１４を用いる。【００３３】
また、本サーバ１０においては、ＣＰＵ１１や共通部１４は、ドメインＤや共通部１４における異常を検出する機能をそなえている。
例えば、ＣＰＵ１１や共通部１４は、いずれもＣＰＵ１１，共通部１４の内部情報を読み出すスキャンチェーン機能（スキャンチェーン手段；図示省略）をそなえており、例えば、内部の各ノードへのアクセスが可能であることを確認（診断）することにより、ドメインＤや共通部１４の異常を検出することができるようになっている。【００３４】
また、このスキャンチェーン機能は、後述するサービスプロセッサ２０のシステム制御手段２１１により制御・実行されるようになっている。
さらに、ＣＰＵ１１や共通部１４は、サービスプロセッサ２０に対して割り込み信号を出力する割込み通知機能（割込み通知手段）をそなえており、スキャンチェーン機能により、ドメインＤや共通部１４の異常を検出した場合には、この割込み通知機能により、サービスプロセッサ２０に対して割り込み信号を出力することにより通知するようになっている。【００３５】
また、本サーバ１０においては、構成したドメインの構成を任意に変更することもできるようになっている。
サービスプロセッサ２０は、本サーバ１０のシステムを管理するサブシステムであり、図１に示すように、マイクロプロセッサ２１，ＪＴＡＧコントローラ２２，フラッシュＲＯＭ（Read Only Memory）２３およびＲＡＭ（Random Access Memory）２４をそなえて構成されている。【００３６】
フラッシュＲＯＭ２３は、サービスプロセッサ２０自身およびシステムを制御するファームウェアを格納する格納部（記憶部）であり、マイクロプロセッサ２１がこのファームウェアを実行することにより、本サーバ１０のシステム管理にかかる種々の機能を実現するようになっている。
また、このフラッシュＲＯＭ２３は、CPU、SCなどのＡＳＩＣに対してドメインの設定を行なうための種々の情報を格納している。【００３７】
図２〜図５は実施形態の一例としてのサーバのフラッシュＲＯＭ２３に格納されるテーブルＴ１〜Ｔ４の例を示す図であり、図２はテーブルＴ１の例を、図３はテーブルＴ２の例を、図４はテーブルＴ３の例を、図５はテーブルＴ４の例をそれぞれ示している。
なお、以下、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。【００３８】
図２に示すテーブルＴ１は、ＣＰＵ１１を特定するためのＣＰＵ番号（ＣＰＵ＃ｎ；ｎは整数）とドメインＩＤとの対応関係を示すものであり、システム内に存在するＣＰＵ１１毎にエントリを持っている。なお、ドメインＩＤは、ドメインＤを特定するために、予めドメインＤ毎に設定された識別情報である。又、ＣＰＵ番号は、ＣＰＵ１１を特定するための情報であって、予め各ＣＰＵ１１にユニークに設定されている。【００３９】
図３に示すテーブルＴ２は、メモリ１２を特定するためのＤＩＭＭ（Dual Inline Memory Module）番号（ＤＩＭＭ＃ｍ；ｍは整数）とドメインＩＤとの対応関係を示すものであり、システム内に存在するメモリ１２毎にエントリを持っている。又、ＤＩＭＭ番号は、メモリ１２を特定するための情報であって、予め各メモリ１２にユニークに設定されている。【００４０】
図４に示すテーブルＴ３は、PCI（Peripheral Components Interconnect）スロット（図示省略）を特定するためのＰＣＩスロット番号（ＰＣＩ＃ｓ；ｓは整数）とドメインＩＤとの対応関係を示すものであり、システム内に存在するＰＣＩスロット毎にエントリを持っている。又、ＰＣＩスロット番号は、ＰＣＩスロットを特定するための情報であって、予め各ＰＣＩスロットにユニークに設定されている。【００４１】
そして、本サーバ１０においては、上述したテーブルＴ１〜Ｔ３に基づいて、ＡＳＩＣの設定が行なわれるようになっている。
図５に示すテーブルＴ４は、ドメインＤを特定するためのドメインＩＤと、そのドメインＤの重要度を示す情報である重要度フラグとの対応関係を示すものであり、システム内に存在するドメイン毎にエントリを持っている。又、この図５に示す例においては、ドメインの重要度を示す情報として、フラグ“Ｙ”が用いられており、例えば、管理者他等が、そのドメインＤもしくは、そのドメインＤで実行される処理が重要であると判断した場合に、そのドメインＤのドメインＩＤに対して、フラグ“Ｙ”が予め設定されるようになっている。【００４２】
すなわち、テーブルＴ４は、複数のドメイン毎に設定されたドメインＩＤと、このドメインＩＤ毎に、共通部１４ａの異常が発生した場合に共通部１４ａの縮退を行なうか否かについてのフラグ“Ｙ（優先情報）”とを対応付けることにより構成されている。
そして、このテーブルＴ４において設定されたフラグ“Ｙ”が、共通部１４ａの異常が発生した場合に、この共通部１４ａの縮退を行なうか否かを判断するために用いられる優先情報として機能するようになっており、このテーブルＴ４を記憶するフラッシュＲＯＭ２３が、優先情報を記憶する記憶部（記憶手段）として機能するようになっている。【００４３】
このテーブルＴ４において、重要度フラグにフラグ“Ｙ”が立っている場合に、そのフラグ“Ｙ”が設定されているドメインＤが、システムにとって必須のドメインＤであると判断することができる。
そして、共通部１４ａにおいて異常が発生した場合には、マイクロプロセッサ２１が、このテーブルＴ４における重要度フラグを読み出して参照し、フラグ“Ｙ”が設定されたドメインＤの異常を検出した場合には、本サーバ１０の停止処理が行なわれるようになっている。【００４４】
なお、本実施形態においては、共通部１４ａの異常が発生した場合に、この共通部１４ａの縮退を行なう場合にフラグ“Ｙ”が優先情報として設定される一方で、この共通部１４ａの縮退を行なわない場合には、フラグを設定しない（もしくはフラグ“０”を設定する）ことにより、重要度を２段階（重要もしくは非重要）に設定しているが、これに限定されるものではなく、例えば、ドメインＤの重要度を３以上の段階で表し、これらの段階を特定する情報をテーブルＴ４における重要度フラグとして設定してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。【００４５】
フラッシュＲＯＭ２３は、複数のドメインＤ毎に設定された識別情報と、この識別情報毎に、共通部１４ａの異常が発生した場合に共通部１４ａの縮退を行なうか否かについての優先情報とが対応付けられて格納される記憶手段として機能するようになっている。
ＲＡＭ（Random Access Memory）２４は、このファームウェアを動作させるための格納領域（メモリ）であって、後述するマイクロプロセッサ２１がファームウェアを実行する際に、データ等を一時的に格納したりするようになっている。【００４６】
マイクロプロセッサ２１は、フラッシュＲＯＭ２３に格納されたファームウェアを実行することにより種々の機能を実現する演算装置であり、本実施形態においては、ファームウェアを実行することにより、前述したマルチドメイン機能の他、システム制御手段２１１，ドメイン縮退制御手段（パーティション縮退制御手段）２１２，システム共通部縮退制御手段２１３，再構成手段２１４および再起動処理実行手段２１５として機能するようになっている。【００４７】
なお、これらのシステム制御手段２１１，ドメイン縮退制御手段２１２，システム共通部縮退制御手段２１３，再構成手段２１４および再起動処理実行手段２１５としての機能を実現するためのプログラム（ファームウェア）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ等），磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。【００４８】
そして、サービスプロセッサ２０はその記録媒体からプログラムを読み取ってフラッシュＲＯＭ２３等に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。又、このとき、記録媒体に記録されたプログラムをサービスプロセッサ２０が読み取って実行するようにしてもよい。【００４９】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、サービスプロセッサ２０がコンピュータとしての機能を有しているのである。【００５０】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。【００５１】
システム制御手段２１１は、複数のドメインＤと共通部１４ａの異常検出を行なうものであり、例えば、ＣＰＵ１１や共通部１４ａが有する割込み通知手段からの割込み通知により、ドメインＤと共通部１４ａの異常の検出を行なうようになっている。
また、このシステム制御手段２１１は、ＣＰＵ１１や共通部１４が有するスキャンチェーン機能を制御することにより、ドメインＤや共通部１４ａにおける異常の検出を行なうようになっている。【００５２】
ドメイン縮退制御手段２１２は、システム制御手段２１１によって異常が検出されたドメインＤを停止するとともに、他の正常なドメインＤに切り替える縮退制御を行なうものである。
システム共通部縮退制御手段２１３は、共通部１４ａの動作を停止するとともに、システム共通部１４ｂに切り替える縮退処理を行なうものである。【００５３】
再起動処理実行手段２１５は、本サーバ１０の再起動処理を行なうものであり、再構成手段２１４は、再起動処理実行手段２１５による本サーバ１０の再起動処理中において、ＣＰＵ１１を任意のドメインＤに割り当てる再構成処理を行なうものである。
そして、上述した、システム制御手段２１１，ドメイン縮退制御手段２１２，システム共通部縮退制御手段２１３，再構成手段２１４および再起動処理実行手段２１５としての機能は、マイクロプロセッサ２１が、ＪＴＡＧコントローラ２２を制御することにより実現される。又、これらの機能を実現するためのＪＴＡＧコントローラ２２の制御手法は、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。【００５４】
ＪＴＡＧコントローラ２２は、ＪＴＡＧ（Joint Test Action Group）の規格に基づいて、メインシステムのＡＳＩＣ、つまり、ＣＰＵ１１−１，１１−２，メモリ１２−１，１２−２，Ｉ／Ｏ１３−１，１３−２および共通部１４ａ，１４ｂに関する種々の制御を行なうものであり、マイクロプロセッサ２１の制御に基づいて、ＡＳＩＣの状態チェックや設定を行なうことにより、これらの制御を実現するようになっている。【００５５】
上述の如く構成された実施形態の一例としてのサーバ１０における共通部１４ａにおいて異常が検出された場合の処理を、図６に示すフローチャート（ステップＡ１０〜Ａ８０）に従って説明する。
システム制御部２１１が、ＣＰＵ１１や共通部１４ａが有するスキャンチェーン機能により、共通部１４ａにおける異常を検出すると、ドメイン縮退制御手段２１２は、その異常の内容や検出位置に基づいて、全てのドメインＤがダウン（停止）したか否かの判断を行なう（ステップＡ１０）。なお、この全てのドメインＤがダウンしたか否かの判断は、既知の種々の手法により実現することができ、その詳細な説明は省略する。【００５６】
全てのドメインＤがダウンした場合には（ステップＡ１０のＹＥＳルート参照）、システム共通部縮退制御手段２１３が、共通部１４ａの動作を停止するとともに、システム共通部１４ｂに切り替える縮退処理（通常縮退処理）を行なう（ステップＡ７０）。
また、一部のドメインＤだけがダウンした場合には（ステップＡ１０のＮＯルート参照）、ドメイン縮退制御手段２１２は、ダウンしたドメインＤのドメインＩＤを取得し、この取得したドメインＩＤをキーに、フラッシュＲＯＭ２３に格納されたテーブルＴ４を検索する（ステップＡ２０）。【００５７】
ドメイン縮退制御手段２１２は、テーブルＴ４を参照してそのダウンしたドメインＩＤに対して重要度フラグにフラグ“Ｙ”が設定されているか否かを確認し（ステップＡ３０）、フラグ“Ｙ”が設定されていない場合には（ステップＡ３０のＮＯルート参照）、そのドメインＤの他萎縮処理を行なう（ステップＡ８０）。
一方、そのドメインＩＤに対して重要度フラグにフラグ“Ｙ”が設定されている場合には（ステップＡ３０のＹＥＳルート参照）、マイクロプロセッサ２１は、システムの停止処理を行ない（ステップＡ４０）、システム共通部縮退制御手段２１３は、共通部１４ａの動作を停止するとともに、システム共通部１４ｂに切り替える縮退処理（通常縮退処理）を行なう（ステップＡ５０）。【００５８】
そして、再起動処理実行手段２１５は、本サーバ１０の再起動処理を行なう（ステップＡ６０）。又、この際、再構成手段２１４が、必要に応じて、再起動処理実行手段２１５による本サーバ１０の再起動処理中において、ＣＰＵ１１を任意のドメインＤに割り当てる再構成処理を行なう。
例えば、再構成手段２１４は、縮退されたドメインＤに割り当てられていたＣＰＵ１１やメモリ１２，Ｉ／Ｏ１３を、生き残った（縮退されていない）ドメインＤに割り当てるように再構成処理を行なう。【００５９】
その後、再起動されたサーバ１０においては、各ＣＰＵ１１がＯＳやファームウェア，その他のプログラムを実行することにより、サーバ１０としての各種機能を実現するのである。
次に、実施形態の一例としてのサーバ１０のより具体的な実施例について説明する。
図７〜図１９は実施形態の一例としてのサーバ１０におけるマルチドメインにかかるハードウェア構成を説明するための図であり、図２０は本サーバ１０におけるFACEマップ（FACEmap）を説明するための図である。【００６０】
図７は実施形態の一例としてのサーバ１０のＣＭＵ内部の各チップのアドレス・データ線の結線例を示す図である。
この図７に示す例においては、各ＣＰＵ１１はSC（System Controller）#0〜#4のそれぞれに接続されている。なお、SC＃0〜＃4は、ＣＰＵ１１間のキャッシュの同期や、ドメイン設定に従ってドメインＤ毎のアドレスマップを管理するものであり、例えば、どのＣＰＵ・メモリ・ＰＣＩカードをどのアドレスに割り当てるかを管理するようになっている。【００６１】
図８は本サーバ１０におけるシステム全体のアドレス・データの結線を示す図である。この図８に示す例においては、アドレスとデータを同一バス上でやり取りするようになっており、同一バス上を流れるパケットの種別でアドレスとデータをやり取りするようになっている。
なお、IOC（IO Controller）#0，#1は、ＰＣＩバスとＳＣ間のバス間のブリッジの役目を果たし、ＰＣＩバスプロトコルを制御するようになっている。XBチップ（XB chip）#0〜#7は、ＳＣとＩＯＣ間のパケットのやり取りを制御するクロスバーである。【００６２】
図９（ａ），（ｂ），（ｃ）はそれぞれ本サーバ１０における、各チップで異常を検出した場合に、サービスプロセッサ２０に割込みでこれを通知するための割込み線の結線例を示す図であり、図９（ａ）はＣＰＵ１１およびＳＣからの各割込み線の結線例を示す図、図９（ｂ）はIOC＃0，＃1からの各割込み線の結線例を示す図、図９（ｃ）はXBチップ＃0〜＃7からの各割込み線の結線例を示す図である。なお、これらの図９（ａ），（ｂ），（ｃ）中において、各割込み線はそれぞれ破線で表されている。【００６３】
これらの図９（ａ），（ｂ），（ｃ）に示すように、ＳＣ，ＣＰＵ１１，XBチップ＃0〜＃7およびIOC＃0，＃1からの各割り込み線はＦＰＧＡ（Field Programmable Gate Array）にそれぞれ接続され、後述の如く、このＦＰＧＡ経由でサービスプロセッサ２０に通知されるようになっている。
そして、サービスプロセッサ２０は、エラーの割込みが行なわれると、ＪＴＡＧコントローラ２２を介して、各レジスタからそのエラーに関する詳細な情報を取得するようになっている。【００６４】
図１０（ａ），（ｂ），（ｃ）はそれぞれ本サーバ１０における、各チップとＦＰＧＡとの間のＪＴＡＧ接続線の結線例を示す図であり、図１０（ａ）はＣＰＵ１１およびＳＣからの各ＪＴＡＧ接続線の結線例を示す図、図１０（ｂ）はIOC＃0，＃1からの各ＪＴＡＧ接続線の結線例を示す図、図１０（ｃ）はXBチップ＃0〜＃7からの各ＪＴＡＧ接続線の結線例を示す図である。なお、これらの図１０（ａ），（ｂ），（ｃ）中において、各ＪＴＡＧ接続線はそれぞれ一点鎖線で表されている。【００６５】
これらの図１０（ａ），（ｂ），（ｃ）に示すように、ＳＣ，ＣＰＵ１１，XBチップ＃0〜＃7およびIOC＃0，＃1からの各ＪＴＡＧ接続線もＦＰＧＡにそれぞれ接続され、後述の如く、このＦＰＧＡ経由でサービスプロセッサ２０に通知されるようになっている。
そして、各チップへの設定や各チップで発生した異常の詳細原因の読み取りは、このＦＰＧＡを介して行なわれるようになっている。【００６６】
図１１は本サーバ１０におけるシステム内のＦＰＧＡ間の結線例を示す図である。この図１１に示すように、サービスプロセッサ２０（ＸＳＣＦＵ。XSCFUとは本実施形態におけるサービスプロセッサボードの名称である）に搭載されたＦＰＧＡ０が、各ボード上のＦＰＧＡ１〜５と接続され、これらのＦＰＧＡ１〜５との間で通信を行なうことで、各ボード上のＦＰＧＡの制御が実現されるようになっている。【００６７】
図１２は本サーバ１０におけるＳＣチップの内部構成を示すブロック図である。ＳＣチップとＸＢチップとの間の通信に使用されているパケットはＥＣＣでプロテクトされており、マルチビットエラーが検出されると、エラーラッチ(Error Latch）にてエラーがラッチされるようになっている。
そして、複数のエラーラッチにおけるラッチの論理和信号がＦＰGＡへの割込み信号として出力されるようになっている。又、これらのエラーラッチはＪＴＡＧ経由でＦＰGAから読み出すことができるようになっている。【００６８】
また、ドメインの設定を行なうためのFACEmapレジスタ並びにＸＢとの接続を制御するＣＦＲ(ConFiguration Register)もＪＴＡＧを使用して設定されるようになっている。なお、ＣＦＲについては後で詳述するが、これによりXB PORT＃0，＃1をそれぞれ“enable/disable”することができる。
図２０は本サーバ１０におけるFACEマップ（FACEmap）の具体例を示す図であり、FACEマップはこの図２０に示すような情報をそなえたレジスタとして構成されている。この図２０に示す例においては、FACEマップは、“Offset”，“Valid”，“DID”，“DIMM valid”，“IOC valid”および“IOC＃”をそなえて構成されている。【００６９】
なお、この図２０に示す例においては、“Offset+4”までの２エントリを示しているが、本例の場合、実際には“Offset+28”までの８エントリが存在し、オフセット+0がCMU＃0のCPU＃0、オフセット+4がCMU＃0のCPU＃1…のように対応している。
ValidはそのＣＰＵを使用するか否かを示す情報であり、ＤＩＤはドメインＤを特定するＩＤ（ドメインＩＤ）である。同一のドメインＩＤを持つＣＰＵ１１で１つのドメインが構成される。【００７０】
DIMM validはビットマップ表現でどのＤＩＭＭを使用するかを示す情報であって、例えば、図２０に例示された0b00000001は、CMU＃0−CPU＃0がDIMM＃0を使用することを意味している。
また、ＩＯＣ＃はそのエントリのＣＰＵ１１に対応するＩＯＣの番号であり、IOC validは、そのＩＯＣを使用するか否かを示す情報である。サービスプロセッサ２０はFACEマップのドメイン設定に従い、各ＣＰＵ／ＤＩＭＭ／ＩＯＣのアドレスマップを制御し、他ドメインからこれら資源へのアクセスできないように監視している。なお、そのようなアクセス要求がＣＰＵ１１あるいはＩＯＣから発行された場合には、ＳＣはエラー応答するようになっている。【００７１】
図１３は本サーバ１０におけるＸＢチップ（XB chip）の内部構成例を示すブロック図である。この図１３に示す例においては、ＳＣと同様にバスのＥＣＣをチェックするECCチェッカ(ECC checker）がそなえられている。
ただし、ＳＣとは異なり、送信と受信両方にそれぞれECCチェッカがそなえられており、これにより、ＸＢチップの内部でＥＣＣエラーが発生したのか、ＸＢチップの外部でＥＣＣエラーが発生したのかを判別することができる。例えば、ＸＢからの送信用ECCチェッカでエラーが発生した場合には、ＸＢチップ内部でエラーが発生していることがわかる。また、ＣＭＵ／ＩＯＵとの接続関係を管理するＣＦＲがあり、これに設定することで、CPUポート（CPU port）#0，CPUポート#1、IOUポート（IOU port）をそれぞれ”disable”もしくは”enable”することができるようになっている。【００７２】
図１４は本サーバ１０におけるＩＯＣチップの内部構成例を示すブロック図である。この図１４に示すように、ＳＣと同様に、バスのＥＣＣをチェックするECCチェッカとＣＦＲが用意され、ＣＦＲによって、CH＃0/CH＃1をそれぞれイネーブル（enable）もしくはディセーブル（disable）することができるようになっている。
図１５は本サーバ１０におけるCMU/IOU/BP上に搭載されるＦＰＧＡの内部構成を示すブロック図である。この図１５に示す例においては、CMU/IOU/BP用のＦＰＧＡは、サービスプロセッサ２０のＦＰＧＡ０（図１１参照）との間でシリアル通信を行なうように構成されており、受信したパケットを“パケットエンコード・デコード”部で解析するようになっている。【００７３】
なお、パケットには、大別すると、割込み通知パケット，アクセス要求パケットおよびデータ応答パケットがある。複数の割込みラッチ（Latch）には、それぞれ、ＣＰＵ１１や共通部１４ａ，１４ｂ等からの割込み信号が入力されるようになっており、これらの複数の割込みラッチ（Latch）の論理和がオンになると、“パケットエンコード・デコード”部で割込み通知パケットが生成され、ＦＰＧＡ０に対して送出される。【００７４】
サービスプロセッサ２０は、これらの割込みラッチを確認することにより、どこから割込みが行なわれたかを確認することにより、エラーが生じたチップの特定を行ない、その後、ＪＴＡＧコントローラ２２によってチップ中のレジスタを読んでエラーを読み、エラーの特定を行なうのである。
また、アクセス要求パケットをＦＰＧＡ０から受信した場合には、アドレス／データ混合・分解部にパケットが伝えられる。ここで、パケットのアクセスタイプが”write”であれば、パケット内で指定されたアドレスに対してデータが書き込まれる。なお、アドレスにより指定されるのは、リード（read）／ライト（write）問わず割込みラッチ・マルチプレクサ、ＪＴＡＧ制御のいずれかとなる。【００７５】
一方、パケットのアクセスタイプが“read”であれば、パケット内で指定されたアドレスに対してリード要求が発行される。このリード要求に対して応答されたデータは、アドレス/データ混合・分解部を経由してパケットエンコード・デコード部に伝わり、データ応答パケットが生成される。そして、これにより、データがＦＰＧＡ０に通知されるのである。【００７６】
ＪＴＡＧ制御部は、CMU/IOU/BP上のＪＴＡＧを制御するものである。このＪＴＡＧ制御部は、マルチプレクサに設定を行なうことで、どのチップに対しＪＴＡＧアクセスを行なうかを決定し、ＪＴＡＧ通信を行なうようになっている。
図１６は本サーバ１０におけるサービスプロセッサ２０およびサービスプロセッサ２０上のＦＰＧＡ（ＦＰＧＡ０）のチップ内の構造を示すブロック図である。【００７７】
マルチプレクサによって、CMU/IOU/BP上のどのFPGAにアクセスを行なうのかを選択する。各Unitから割込み通知パケットを受信した場合は、“パケットエンコード・デコード”部で割込み通知であると認識後、割込みラッチに信号が送られる。これにより、マイクロプロセッサに割込み信号がアサートされる。
マイクロプロセッサから“read”、あるいは”write”要求を受信すると、“read”の場合はアドレスのみ、“write”の場合は“アドレス/データ混合分解”部によりアドレスと書き込みデータがパッキングされ、パケットエンコード・デコード部に送出される。パケットエンコードでコード部は、アクセス要求パケットを作成して、送信する。アクセスが“read”であった場合、ターゲットのFPGAからデータ応答パケットを送出するので、パケットエンコード・デコード部を経由してマイクロプロセッサにデータが返送される。【００７８】
図１７〜図１９はそれぞれ本サーバ１０におけるＸＢ縮退手法を説明するための図であり、図V１７は正常な状態（縮退前）を、又、図１８および図１９は縮退後の状態をそれぞれ示している。
なお、CMU/IOU/XBチップ全てのport/CHは、ＣＦＲによって“enable”となっている。
もし、XBチップ #1，#3，#5，#7のいずれかにおいて異常が発生し縮退となった場合には、これらのXBチップ #1，#3，#5，#7が切り離され、図１８に示すような状態になる。【００７９】
このとき、サービスプロセッサ２０からＳＣ内のＣＦＲへの設定により、各ＳＣのXB port＃１は”disable”となっている。また、同様にＩＯＣ内のＣＦＲへの設定により、各ＩＯＣのCH＃1は”disable”となっている。
なお、これらの図１７，図１８に示す例においては、XBチップ #0〜#7は、XBチップ #0，#2，#5，#4，#5，#6をそなえた第１のクロスバーと、XBチップ #1，#3，#5，#7をそなえた第２のクロスバーとの２つのクロスバーとを並行して使用することにより構成されており、第１および第２のいずれかのクロスバーにおいてエラーが発生した場合に、そのエラーが発生したクロスバーが切り離されるのである。【００８０】
ＳＣはXB port＃０が”disable”となると、それまでport＃０に送出していたパケットをport＃１に送出するようになる。又、ＩＯＣはＣＨ＃１が”disable”になると、CH＃０/CH＃１間のＩＯＣ内パスを”enable”にして、CH＃１あてのパケットを、このパスを経由して受け渡す。
このような縮退を行なうことにより、クロスバー（ＸＢ）のバス幅は半減するものの、システムとしての動作を継続することができるのである。【００８１】
図１９は図１８に示す例とは逆に、XBチップ＃0，＃2，＃4，＃6を縮退させた状態を示している。この図１９に示す状態は、図１８に示した状態とDisableされるポートがと反対側になっているだけで、挙動は同じであるので、その詳細な説明は省略する。
そして、これらの図１７〜１９において、図１７に示すようなXBチップ #0，#2，#5，#4，#5，#6をそなえた第１のクロスバーと、XBチップ #1，#3，#5，#7をそなえた第２のクロスバーとからなるXBチップ #0〜#7が第１のシステム共通部に相当し、図１８に示すような、第２のクロスバー（XBチップ #1，#3，#5，#7）が退避され、残った第１のクロスバー（XBチップ #0，#2，#5，#4，#5，#6）の状態や、図１９に示すような、第１のクロスバー（XBチップ #0，#2，#5，#4，#5，#6）が退避され、残った第２のクロスバー（XBチップ #1，#3，#5，#7）の状態が、第２の共通部に相当する。【００８２】
次に、実施形態の一例としてのサーバ１０における各種処理を、図２１〜図４９に示すフローチャートに従って説明する。
図２１は本サーバ１０におけるテーブルＴ４への設定手法を説明するためのフローチャート（ステップＢ１０〜Ｂ６０）である。
ユーザはサービスプロセッサ２０上で稼動している組み込みＯＳにサインオンし、このＯＳ上でコマンドを起動する。【００８３】
コマンドの第１引数を変数Ａ，第２引数を変数Ｂに代入する（ステップＢ１０）。このコマンドの第１引数はadd（設定を行なう）かdel（設定を削除する）かであり、第２引数は重要度フラグをオンにしたいドメインのドメインＩＤとなる。
その後、Ａ＝addであるか否かの確認を行ない（ステップＢ２０）、Ａ＝addである場合には（ステップＢ２０の“はい”ルート参照）、テーブルＴ４のＤＩＤ＃Ｂの値にＹを設定して（ステップＢ３０）処理を終了する。【００８４】
また、Ａ＝addではない場合には（ステップＢ２０の“いいえ”ルート参照）、次に、Ａ＝delであるか否かの確認を行なう（ステップＢ４０）。Ａ＝delである場合には（ステップＢ４０の“はい”ルート参照）、テーブルＴ４のDID#Bの値をクリアして（ステップＢ５０）処理を終了する。
さらに、Ａ＝delではない場合には（ステップＢ４０の“いいえ”ルート参照）、引数異常メッセージを表示させて（ステップＢ６０）処理を終了する。【００８５】
そして、上述のコマンドを実行することで、テーブルＴ４に対し、どのドメインを重要とするのかの設定が行なわれるのである。
図２２は本サーバ１０におけるハードウェア異常発生時の処理例を説明するためのフローチャート（ステップＣ１０〜Ｃ４０）であり、どうやって故障箇所を特定し縮退を行なうかの概略フローを表している。【００８６】
ＡＳＩＣよる割り込みが発生すると、先ず、故障箇所の特定が行なわれ（ステップＣ１０）、その後、切り離し箇所の決定が行なわれる（ステップＣ２０）。そして、システムリスタート範囲の決定処理が行なわれ（ステップＣ３０）、システムのリスタート処理が行なわれ（ステップＣ４０）、割り込みからの復帰が行なわれるのである。
次に、図２２に示した各ステップＣ１０〜Ｃ４０にかかる各手法について詳述する。以下、各フローチャート内における、Fault1，Fault2，Fault3，Fault4，Target[]配列およびDegradeはそれぞれ大域変数であり、一方、小文字１文字で表される変数は局所変数であるものとする。【００８７】
ここで、図２２に示すフローチャート中におけるステップＣ１０の故障箇所特定手法を、図２３〜図４４に示すフローチャート（ステップＤ１〜Ｄ２１４）に従って説明する。
故障（バス上でのＥＣＣマルチビットエラー）が発生した場合には、ＦＰＧＡを介してサービスプロセッサ２０に割り込みが上がる。そこで、マイクロプロセッサ２１上のプログラムは、ＦＰＧＡ０のマルチプレクサを制御し、先ず、どのＦＰＧＡ上でエラーラッチがオンになっているかを特定する（ステップＤ１〜Ｄ２３）。これらの処理によって、どのユニットのどのチップから割り込みが上がっているかが特定されるのである。【００８８】
そして、各ユニット上のＦＰＧＡのマルチプレクサを制御し、割り込みを発生しているチップのＪＴＡＧにアクセスし、チップ内のエラーラッチ（Error Latch）をチェックする（ステップＤ２４〜Ｄ２１４）。これらの処理により、どのバス（たとえば、XBチップ#3のXB port#0）に関連して異常が発生したかが特定できる。
また、上述の処理の過程で、特定された故障箇所およびバスは、Fault1、Fault2、Fault3、Fault4の各大域変数に設定されるようになっている。以上が故障箇所特定の処理内容である。【００８９】
次に、図２２に示すフローチャート中におけるステップＣ２０の切り離し箇所の決定手法を、図４５に示すフローチャート（ステップＥ１〜Ｅ１４）に従って説明する。
本実施形態においては、本サーバ１０における共通部１４ａでの故障発生時の処理に着目しているので、共通部１４ａ、つまりXBチップの異常に着目して説明を行なうものとする。【００９０】
まず、変数Degradeを定義して、この変数Degradeに切り離すユニットを設定するものとする（ステップＥ１）。
Fault2がXB#x（ｘは０〜７の整数）であるか否か、すなわち、Fault2がXB#０〜XB#７であるか否かを確認して（ステップＥ２）、Fault2がXB#０〜XB#７ではない場合には（ステップＥ２の“いいえ”ルート参照）、その他の切り離し箇所の決定処理へ移行する（ステップＥ１１）。【００９１】
また、Fault2がXB#０〜XB#７である場合には（ステップＥ２の“はい”ルート参照）、次に、Fault4が“send”であるか否かを確認する（ステップＥ３）。ここで、Fault4が“send”ではない場合、すなわち、Fault4が“receive”の場合には（ステップＥ３の“いいえ”ルート参照）、変数DegradeにFault3を設定する。このように、Fault4が”receive” の場合には、XBチップの外側、つまりＳＣ側で故障が発生しているので、共通部１４ａにおける故障としては扱わないものとする。【００９２】
一方、Fault4が“send”の場合には（ステップＥ３の“はい”ルート参照）、共通部１４ａで異常が発生していると判断され、次に、Fault3がCMU#y（ｙは０、もしくは１）か否か、を確認する（ステップＥ４）。Fault3がＣＭＵ＃０もしくはCMU#１である場合には（ステップＥ４の“はい”ルート参照）、ｍ＝４＊ｙ，ｎ＝０を設定する（ステップＥ５）。【００９３】
また、Fault3がCMU#０もしくはCMU#１ではない場合には（ステップＥ４の“いいえ”ルート参照）、Fault3の内容はIOU#x（ｘは０、もしくは１）であるので、このｘをｙに代入して、ステップＥ５に移行する。
その後、  Fault3に示されるユニットとXBに関連して異常が発生しているので、そのユニット上に存在しているドメインをまず求める。具体的には、テーブルＴ１（図２参照）におけるCPU#（m+n）に対応するＤＩＤの番号（DID#に続く番号）をｚに代入するのである（ステップＥ６）。【００９４】
そして、テーブルＴ４（図５参照）、DID#z欄の重要度フラグをｐに代入し（ステップＥ７）、このp==yであるか否かを確認することにより（ステップＥ８）、故障の影響を受けているドメインの重要度フラグを、テーブル４を使用してチェックするのである。
ここで、p==y、すなわち、重要度フラグがオンの場合には（ステップＥ８の“はい”ルート参照）、全システムを停止する。このため、切り離し対象を示す変数Degradeに”XB#x”（xは0〜7のいずれか）を代入する（ステップＥ１４）。なお、切り離し対象がXBである場合、後述するシステムリスタート範囲決定処理が、システム全体をリスタート対象とする。【００９５】
また、p==yではない場合には（ステップＥ８の“いいえ”ルート参照）、ｎをインクリメント（ｎ＝ｎ＋１）して（ステップＥ９）、ｎ＝＝４であるか否かを確認し（ステップＥ１０の“いいえ”ルート参照）、ステップＥ６に戻る。又、ｎ＝＝４の場合には（ステップＥ１０の“はい”ルート参照）、切り離し箇所の決定プロセスを完了し、変数Degradeに設定された情報が切り離すユニットを示している。【００９６】
次に、図２２に示すフローチャート中におけるステップＣ３０のシステムリスタート範囲決定処理手法を、図４６に示すフローチャート（ステップＦ１〜Ｆ１６）に従って説明する。このシステムリスタート範囲決定処理では、どのドメインのリスタートを行なうかを決定するものであり、大域配列変数Target[]に、異常の影響を受けてリスタートが必要なドメインを設定するようになっている。【００９７】
大域配列変数Target[0]，Target[1]，Target[2]およびTarget[3]にそれぞれ“−１”を設定し（ステップＦ１）、変数Degrade==XB#x（xは0〜7のいずれか）であるか否かを確認する（ステップＦ２）。ここで、変数Degrade==XB#x（xは0〜7のいずれか）である場合には（ステップＦ２の“はい”ルート参照）、Target[0]に99を設定し（ステップＦ６）、処理を終了する。全システムをリスタートする場合はTarget[0]に99を設定するのである。【００９８】
Degrade==XB#x（xは0〜7のいずれか）でない場合には（ステップＦ２の“いいえ”ルート参照）、次に、Fault1==CMU#y（yは０、もしくは１）であるか否かを確認する（ステップＦ３）。Fault1==CMU#y（yは０、もしくは１）である場合には（ステップＦ３の“はい”ルート参照）、ｍ＝４＊ｙ，ｎ＝０，ｐ＝０をそれぞれ設定し（ステップＦ４）、テーブルＴ１（図２参照）におけるCPU#(m+n)に対応する（CPU#(m+n)欄の）ＤＩＤの番号（ＤＩＤ＃に続く番号）をｚに代入する（ステップＦ５）。【００９９】
また、Fault1==ＣＭＵ＃ｙ（ｙは０、もしくは１）ではない場合には（ステップＦ３の“いいえ”ルート参照）、次に、Fault1==IOU#y（yは０、もしくは１）であるか否かを確認する（ステップＦ７）。
Fault1==IOU#y（ｙは０、もしくは１）でない場合には（ステップＦ７の“いいえ”ルート参照）、次に、Fault1＝CMU#y（ｙは０、もしくは１）であるか否かを確認する（ステップＦ８）。【０１００】
ここで、Fault1==IOU#y（yは０、もしくは１）である場合や（ステップＦ７の“はい”ルート参照）、Fault1==CMU#y（yは０、もしくは１）である場合には（ステップＦ８の“はい”ルート参照）、ステップＦ４に移行する。
また、Fault1==CMU#y（yは０、もしくは１）ではない場合には（ステップＦ８の“いいえ”ルート参照）、Fault3の内容はIOU#x（xは０、もしくは１）であるので、このxをyに代入して（ステップＦ９）、ステップＦ４に移行する。【０１０１】
その後、z==Target[0]であるか否かを確認して（ステップＦ１０）、z==Target[0]ではない場合には（ステップＦ１０の“いいえ”ルート参照）、z==Target[1]であるか否かを確認し（ステップＦ１１）、更に、z==Target[1]ではない場合には（ステップＦ１１の“いいえ”ルート参照）、z==Target[2]であるか否かを確認する（ステップＦ１２）。z==Target[2]ではない場合には（ステップＦ１２の“いいえ”ルート参照）、z==Target[3]であるか否かを確認し（ステップＦ１３）、z==Target[3]ではない場合には（ステップＦ１３の“いいえ”ルート参照）、Target[p]にｚを設定するとともに（Target[p]=ｚ）、ｐをインクリメント（ｐ＝ｐ＋１）して（ステップＦ１４）、更に、ｎをインクリメント（ｎ＝ｎ＋１）する（ステップＦ１５）。【０１０２】
なお、z==Target[0]である場合や（ステップＦ１０の“はい”ルート参照）、z==Target[1]である場合（ステップＦ１１の“はい”ルート参照）、z==Target[2]である場合や（ステップＦ１２の“はい”ルート参照）、z==Target[3]である場合には（ステップＦ１３の“はい”ルート参照）、ステップＦ１５に移行する。
そして、n==４であるか否かを確認して（ステップＦ１６）、n==４ではない場合には（ステップＦ１６の“いいえ”ルート参照）、ステップＦ１０に戻る。又、n==４である場合には（ステップＦ１６の“はい”ルート参照）、処理を終了する。【０１０３】
本実施形態においては、縮退するユニットとリスタートの対象となるユニットは全システムリスタートを除いて一致するので、Degrade変数をキーにリスタートするドメインを選択するのである。なお、なぜドメイン単位の処理を行なうかというと、例えば、CMU#0のCPU#0とCMU#1のCPU#1が同じドメインで、リスタート対象がCMU#1の場合、CMU#0のCPU#0も同時にリスタートしなければならないためである。【０１０４】
次に、図２２に示すフローチャート中におけるステップＣ４０のシステムリスタート処理手法を、図４７〜図４９に示すフローチャート（ステップＧ１〜Ｇ５７）に従って説明する。
このシステムリスタート処理は、Target[]変数の設定を元に行なわれ（ステップＧ１）、例えば、Target[0]==99の場合には（ステップＧ１の“はい”ルート参照）、全てのＣＰＵ１１やＩＯＣ，ＸＢ等を停止させて（ステップＧ１０〜Ｇ１２）、切り離し箇所の決定プロセスにおいて設定された変数Degradeに基づいて一部のＸＢを縮退させた上で（ステップＧ１３〜Ｇ１７，Ｇ２０〜Ｇ２２）、ＣＰＵ１１やＩＯＣの再起動処理を行なう（ステップＧ１８，Ｇ１９）。【０１０５】
また、Target[0]==99ではない場合には（ステップＧ１の“いいえ”ルート参照）、図４６に示すフローチャートにおいて設定されたシステムリスタート範囲について、対象のCPU/IOCをいったん、全て切り離し、その再起動することにより行なうステップＧ２〜Ｇ９，Ｇ２３〜Ｇ５７）。
さらに、この際、ユニットを切り離すため、Degrade変数の設定をもとにテーブルＴ１〜Ｔ３の設定の書き換えも行なうようになっている（ステップＧ２９〜Ｇ３８）。なお、CPU/IOC/XBそれぞれの停止・起動処理については、一般的な大型コンピュータの起動停止処理と同じであるので、その詳細についての説明は省略する。【０１０６】
このように、実施形態の一例としてのサーバ１０によれば、システム制御手段２１１により共通部１４ａの異常が検出された場合において、テーブルＴ４において重要度フラグにフラグ“Ｙ（優先情報）”が設定されたドメインＤの異常を検出した場合には、本サーバ１０の停止処理を行ない、共通部１４ａの動作を停止するとともに、共通部１４ｂに切り替える縮退処理を行なうことにより、本サーバ１０の復旧を迅速に行なうことができ、テーブルＴ４において重要度フラグにフラグ“Ｙ”が設定されたドメインＤにおいて行なわれていた処理を迅速に再開することができる。【０１０７】
また、テーブルＴ４において重要度フラグにフラグ“Ｙ”が設定されたドメインＤ以外のドメインＤについて異常を検出した場合には、異常を検出したドメインＤの縮退処理を行なうことにより、フラグ“Ｙ”が設定されたドメインＤを停止することがなく、このドメインＤにおいて行なわれていた処理を続行することができる。
さらに、ドメインＤが有するＣＰＵ１１や共通部１４ａがそれぞれ割込み通知手段を有し、システム制御手段２１１がこれらの割込み通知手段からの割込み通知により、ドメインＤと共通部１４ａの異常の検出を行なうことにより、ドメインＤや共通部１４ａの異常の検出を迅速に行なうことができる。【０１０８】
ドメインＤが有するＣＰＵ１１と共通部１４ａが、ＣＰＵ１１や共通部１４ａの内部情報を読み出すスキャンチェーン手段を有し、システム制御手段２１１がこのスキャンチェーン手段を制御することにより、ドメインＤと共通部１４ａの異常の検出を行なうことにより、ドメインＤと共通部１４ａの異常の検出を迅速に行なうことができる。
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。【０１０９】
上述した実施形態においては、共通部１４ａ，１４ｂがクロスバーである場合について例示して説明しているが、これに限定されるものではなく、例えば、クロック等、コンピュータにそなえられる他の部品において障害が生じた場合についても適用することができる。
また、上述した実施形態においては、ＣＰＵ１１や共通部１４のスキャンチェーン機能により、ドメインＤや共通部１４の異常を検出しているが、これに限定されるものではなく、他の種々の手法により、ドメインＤや共通部１４における異常（障害）を検出してもよい。【０１１０】
なお、本発明の実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
【図１】
2008099453.tif 000003
【図２】
2008099453.tif 000004
【図３】
2008099453.tif 000005
【図４】
2008099453.tif 000006
【図５】
2008099453.tif 000007
【図６】
2008099453.tif 000008
【図７】
2008099453.tif 000009
【図８】
2008099453.tif 000010
【図９】
2008099453.tif 000011
【図１０】
2008099453.tif 000012
【図１１】
2008099453.tif 000013
【図１２】
2008099453.tif 000014
【図１３】
2008099453.tif 000015
【図１４】
2008099453.tif 000016
【図１５】
2008099453.tif 000017
【図１６】
2008099453.tif 000018
【図１７】
2008099453.tif 000019
【図１８】
2008099453.tif 000020
【図１９】
2008099453.tif 000021
【図２０】
2008099453.tif 000022
【図２１】
2008099453.tif 000023
【図２２】
2008099453.tif 000024
【図２３】
2008099453.tif 000025
【図２４】
2008099453.tif 000026
【図２５】
2008099453.tif 000027
【図２６】
2008099453.tif 000028
【図２７】
2008099453.tif 000029
【図２８】
2008099453.tif 000030
【図２９】
2008099453.tif 000031
【図３０】
2008099453.tif 000032
【図３１】
2008099453.tif 000033
【図３２】
2008099453.tif 000034
【図３３】
2008099453.tif 000035
【図３４】
2008099453.tif 000036
【図３５】
2008099453.tif 000037
【図３６】
2008099453.tif 000038
【図３７】
2008099453.tif 000039
【図３８】
2008099453.tif 000040
【図３９】
2008099453.tif 000041
【図４０】
2008099453.tif 000042
【図４１】
2008099453.tif 000043
【図４２】
2008099453.tif 000044
【図４３】
2008099453.tif 000045
【図４４】
2008099453.tif 000046
【図４５】
2008099453.tif 000047
【図４６】
2008099453.tif 000048
【図４７】
2008099453.tif 000049
【図４８】
2008099453.tif 000050
【図４９】
2008099453.tif 000051
【図５０】
2008099453.tif 000052
【図５１】
2008099453.tif 000053
【図５２】
2008099453.tif 000054
【図５３】
2008099453.tif 000055
【手続補正書】
【提出日】平成21年5月28日(2009.5.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、
前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、
前記パーティション部毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報を前記記憶部から読み出すステップと、
前記システム制御部により、前記優先情報が設定されたパーティション部の異常を検出した場合には、前記情報処理装置の停止処理を行うステップと、
前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴とする縮退方法。
【請求項２】
前記情報処理装置の縮退方法はさらに、
前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有することを特徴とする請求項１記載の縮退方法。
【請求項３】
前記情報処理装置の縮退方法はさらに、
前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有することを特徴とする請求項１記載の縮退方法。
【請求項４】
それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、
前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、
前記システム制御部により、前記パーティション部の異常を検出するステップと、
前記システム制御部により、異常が検出されたパーティション部の識別情報を用いて、前記第１のシステム共通部の異常が発生した場合に前記システム共通部の縮退を行うか否かについての優先情報を、前記記憶部から検索するステップと、
前記システム制御部により検索された優先情報が、前記識別情報に対応するパーティション部に設定されている場合には、前記情報処理装置の停止処理を行うステップと、
前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴とする縮退方法。
【請求項５】
前記情報処理装置の縮退方法はさらに、
前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有することを特徴とする請求項４記載の縮退方法。
【請求項６】
前記情報処理装置の縮退方法はさらに、
前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有することを特徴とする請求項４記載の縮退方法。
【請求項７】
処理装置を有する複数のパーティション部と、
前記複数のパーティション部により共有され、通常動作を行う第１のシステム共通部と、
前記複数のパーティション部により共有され、縮退のために待機する第２のシステム共通部と、
前記複数のパーティション部と前記第１のシステム共通部の異常検出を行うシステム制御手段と、前記複数のパーティション部毎に設定された識別情報と前記識別情報毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報とが対応付けられて格納される記憶手段と、異常が検出されたパーティション部を停止するとともに、他の正常なパーティション部に切り替える縮退制御を行うパーティション縮退制御手段と、前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うシステム共通部縮退制御手段とを備えたシステム制御部とを有することを特徴とする情報処理装置。
【請求項８】
前記パーティション部が有する処理部と第１及び第２のシステム共通部はそれぞれ、さらに異常を検出して割込みを通知する割込み通知手段を有し、
前記システム制御手段は、前記処理部又は前記第１若しくは前記第２のシステム共通部が有する前記割込み通知手段からの割込み通知により、前記パーティション部と前記システム共通部の異常の検出を行うことを特徴とする請求項７記載の情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
図５２はマルチドメインシステムにおいて、共通部以外の部位で障害が生じた状態の例を示す図、図５３はマルチドメインシステムにおいて、共通部１０１で障害が生じた状態の例を示す図である。
従来のマルチドメインシステムにおいて、図５２に示すように、例えば、ドメインＤ１のＣＰＵ１０２−１において故障が生じた場合には、ドメインＤ１だけをシステムダウン（部分縮退）させ、ドメインＤ２については動作を続行させることにより、故障により影響を受けているドメインＤ１だけを停止させる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
【図１】実施形態の一例としてのサーバ（情報処理装置）のハードウェア構成例を示す論理ブロック図である。
【図２】実施形態の一例としてのサービスプロセッサのフラッシュＲＯＭに格納されるテーブルＴ１の例を示す図である。
【図３】実施形態の一例としてのサービスプロセッサのフラッシュＲＯＭに格納されるテーブルＴ２の例を示す図である。
【図４】実施形態の一例としてのサービスプロセッサのフラッシュＲＯＭに格納されるテーブルＴ３の例を示す図である。
【図５】実施形態の一例としてのサービスプロセッサのフラッシュＲＯＭに格納されるテーブルＴ４の例を示す図である。
【図６】実施形態の一例としてのサーバにおける共通部において異常が検出された場合の処理を説明するためのフローチャートである。
【図７】実施形態の一例としてのサーバのＣＭＵ内部の各チップのアドレス・データ線の結線例を示す図である。ＣＭＵとは本実施例におけるシステムボードの名称である。
【図８】実施形態の一例としてのサーバにおけるシステム全体のアドレス・データの結線を示す図である。
【図９】（ａ），（ｂ），（ｃ）はそれぞれ実施形態の一例としてのサーバにおける、各チップで異常を検出した場合に、サービスプロセッサに割込みでこれを通知するための割込み線の結線例を示す図である。
【図１０】（ａ），（ｂ），（ｃ）はそれぞれ実施形態の一例としてのサーバにおける、各チップとＦＰＧＡとの間のＪＴＡＧ接続線の結線例を示す図である。
【図１１】実施形態の一例としてのサーバにおけるシステム内のＦＰＧＡ間の結線例を示す図である。
【図１２】実施形態の一例としてのサーバにおけるＳＣ（システムコントローラ）チップの内部構成を示すブロック図である。
【図１３】実施形態の一例としてのサーバにおけるＸＢ（クロスバー）チップの内部構成例を示すブロック図である。
【図１４】実施形態の一例としてのサーバにおけるＩＯＣ（Ｉ／Ｏコントローラ）チップの内部構成例を示すブロック図である。
【図１５】実施形態の一例としてのサーバにおけるＣＭＵ／ＩＯＵ／ＢＰ（バックプレーン）上に搭載されるＦＰＧＡの内部構成を示すブロック図である。ＩＯＵとは本実施例におけるＩ／Ｏ制御用システムボードの名称である。
【図１６】実施形態の一例としてのサーバにおけるサービスプロセッサおよびサービスプロセッサ上のＦＰＧＡのチップ内の構造を示すブロック図である。
【図１７】実施形態の一例としてのサーバにおけるＸＢ縮退手法を説明するための図である。
【図１８】実施形態の一例としてのサーバにおけるＸＢ縮退手法を説明するための図である。
【図１９】実施形態の一例としてのサーバにおけるＸＢ縮退手法を説明するための図である。
【図２０】実施形態の一例としてのサーバにおけるＦＡＣＥマップを説明するための図である。
【図２１】実施形態の一例としてのサーバにおけるテーブルＴ４への設定手法を説明するためのフローチャートである。
【図２２】実施形態の一例としてのサーバにおけるハードウェア異常発生時の処理例を説明するためのフローチャートである。
【図２３】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２４】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２５】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２６】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２７】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２８】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図２９】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３０】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３１】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３２】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３３】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３４】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３５】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３６】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３７】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３８】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図３９】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４０】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４１】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４２】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４３】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４４】実施形態の一例としてのサーバにおける故障箇所特定手法を説明するためのフローチャートである。
【図４５】実施形態の一例としてのサーバにおける切り離し箇所の決定手法を説明するためのフローチャートである。
【図４６】実施形態の一例としてのサーバにおけるシステムリスタート範囲決定処理手法を説明するためのフローチャートである。
【図４７】実施形態の一例としてのサーバにおけるシステムリスタート処理手法を説明するためのフローチャートである。
【図４８】実施形態の一例としてのサーバにおけるシステムリスタート処理手法を説明するためのフローチャートである。
【図４９】実施形態の一例としてのサーバにおけるシステムリスタート処理手法を説明するためのフローチャートである。
【図５０】サーバシステムにおけるマルチドメインシステムの構成例を説明するための図である。
【図５１】サーバシステムにおけるマルチドメインシステムの構成例を説明するための図である。
【図５２】マルチドメインシステムにおいて共有部以外の部位で障害が生じた状態の例を示す図である。
【図５３】マルチドメインシステムにおいて共有部で障害が生じた状態の例を示す図である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
共通部１４ｂ（第２のシステム共通部）は、ドメインＤ１，Ｄ２により共有され、縮退のために待機するものであって、共通部１４ａにおいて故障等の障害が生じた時に共通部１４ａに代えて用いられるようになっている。
この共通部１４ｂは、共通部１４ａと同一もしくは略同一の構成をそなえ、共通部１４ａと共通部１４ｂとは選択的に用いることができる。例えば、共通部１４ａ，１４ｂがクロックである場合には、同一もしくは略同一の構成をそなえたクロックを２以上そなえ、１４ａのクロックに異常が検出された場合には、異常が検出されたクロックに代えて、他のクロックに切り換える縮退処理が行なわれる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
フラッシュＲＯＭ２３は、サービスプロセッサ２０自身およびシステムを制御するファームウェアを格納する格納部（記憶部）であり、マイクロプロセッサ２１がこのファームウェアを実行することにより、本サーバ１０のシステム管理にかかる種々の機能を実現するようになっている。
また、このフラッシュＲＯＭ２３は、ＣＰＵ、ＳＣなどのＡＳＩＣに対してドメインの設定を行なうための種々の情報を格納している。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
図４に示すテーブルＴ３は、ＰＣＩ（Peripheral Components Interconnect）スロット（図示省略）を特定するためのＰＣＩスロット番号（PCI#s；ｓは整数）とドメインＩＤとの対応関係を示すものであり、システム内に存在するＰＣＩスロット毎にエントリを持っている。又、ＰＣＩスロット番号は、ＰＣＩスロットを特定するための情報であって、予め各ＰＣＩスロットにユニークに設定されている。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
ドメイン縮退制御手段２１２は、テーブルＴ４を参照してそのダウンしたドメインＩＤに対して重要度フラグにフラグ“Ｙ”が設定されているか否かを確認し（ステップＡ３０）、フラグ“Ｙ”が設定されていない場合には（ステップＡ３０のＮＯルート参照）、そのドメインＤの縮退処理を行なう（ステップＡ８０）。
一方、そのドメインＩＤに対して重要度フラグにフラグ“Ｙ”が設定されている場合には（ステップＡ３０のＹＥＳルート参照）、マイクロプロセッサ２１は、システムの停止処理を行ない（ステップＡ４０）、システム共通部縮退制御手段２１３は、共通部１４ａの動作を停止するとともに、システム共通部１４ｂに切り替える縮退処理（通常縮退処理）を行なう（ステップＡ５０）。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
その後、再起動されたサーバ１０においては、各ＣＰＵ１１がＯＳやファームウェア，その他のプログラムを実行することにより、サーバ１０としての各種機能を実現するのである。
次に、実施形態の一例としてのサーバ１０のより具体的な実施例について説明する。
図７〜図１９は実施形態の一例としてのサーバ１０におけるマルチドメインにかかるハードウェア構成を説明するための図であり、図２０は本サーバ１０におけるＦＡＣＥマップ（FACEmap）を説明するための図である。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
これらの図９（ａ），（ｂ），（ｃ）に示すように、ＳＣ，ＣＰＵ１１，XBチップ#0〜#7およびIOC#0，#1からの各割り込み線はＦＰＧＡ（Field Programmable Gate Array）にそれぞれ接続され、後述の如く、このＦＰＧＡ経由でサービスプロセッサ２０に通知されるようになっている。
そして、サービスプロセッサ２０は、エラーの割込みが行なわれると、ＪＴＡＧコントローラ２２を介して、各レジスタからそのエラーに関する詳細な情報を取得するようになっている。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
図１０（ａ），（ｂ），（ｃ）はそれぞれ本サーバ１０における、各チップとＦＰＧＡとの間のＪＴＡＧ接続線の結線例を示す図であり、図１０（ａ）はＣＰＵ１１およびＳＣからの各ＪＴＡＧ接続線の結線例を示す図、図１０（ｂ）はIOC#0，#1からの各ＪＴＡＧ接続線の結線例を示す図、図１０（ｃ）はXBチップ#0〜#7からの各ＪＴＡＧ接続線の結線例を示す図である。なお、これらの図１０（ａ），（ｂ），（ｃ）中において、各ＪＴＡＧ接続線はそれぞれ一点鎖線で表されている。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
これらの図１０（ａ），（ｂ），（ｃ）に示すように、ＳＣ，ＣＰＵ１１，XBチップ#0〜#7およびIOC#0，#1からの各ＪＴＡＧ接続線もＦＰＧＡにそれぞれ接続され、後述の如く、このＦＰＧＡ経由でサービスプロセッサ２０に通知されるようになっている。
そして、各チップへの設定や各チップで発生した異常の詳細原因の読み取りは、このＦＰＧＡを介して行なわれるようになっている。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
図１１は本サーバ１０におけるシステム内のＦＰＧＡ間の結線例を示す図である。この図１１に示すように、サービスプロセッサ２０（ＸＳＣＦＵ。ＸＳＣＦＵとは本実施形態におけるサービスプロセッサボードの名称である）に搭載されたＦＰＧＡ０が、各ボード上のＦＰＧＡ１〜５と接続され、これらのＦＰＧＡ１〜５との間で通信を行なうことで、各ボード上のＦＰＧＡの制御が実現されるようになっている。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
図１２は本サーバ１０におけるＳＣチップの内部構成を示すブロック図である。ＳＣチップとＸＢチップとの間の通信に使用されているパケットはＥＣＣでプロテクトされており、マルチビットエラーが検出されると、エラーラッチ（Error Latch）にてエラーがラッチされるようになっている。
そして、複数のエラーラッチにおけるラッチの論理和信号がＦＰＧＡへの割込み信号として出力されるようになっている。又、これらのエラーラッチはＪＴＡＧ経由でＦＰＧＡから読み出すことができるようになっている。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
また、ドメインの設定を行なうためのFACEmapレジスタ並びにＸＢとの接続を制御するＣＦＲ（ConFiguration Register）もＪＴＡＧを使用して設定されるようになっている。なお、ＣＦＲについては後で詳述するが、これによりXB PORT#0，#1をそれぞれ“enable/disable”することができる。
図２０は本サーバ１０におけるＦＡＣＥマップ（FACEmap）の具体例を示す図であり、ＦＡＣＥマップはこの図２０に示すような情報をそなえたレジスタとして構成されている。この図２０に示す例においては、ＦＡＣＥマップは、“Offset”，“Valid”，“DID”，“DIMM valid”，“IOC valid”および“IOC#”をそなえて構成されている。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
なお、この図２０に示す例においては、“Offset+4”までの２エントリを示しているが、本例の場合、実際には“Offset+28”までの８エントリが存在し、オフセット+0がCMU#0のCPU#0、オフセット+4がCMU#0のCPU#1…のように対応している。
ValidはそのＣＰＵを使用するか否かを示す情報であり、ＤＩＤはドメインＤを特定するＩＤ（ドメインＩＤ）である。同一のドメインＩＤを持つＣＰＵ１１で１つのドメインが構成される。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
DIMM validはビットマップ表現でどのＤＩＭＭを使用するかを示す情報であって、例えば、図２０に例示された0b00000001は、CMU#0−CPU#0がDIMM#0を使用することを意味している。
また、IOC#はそのエントリのＣＰＵ１１に対応するＩＯＣの番号であり、IOC validは、そのＩＯＣを使用するか否かを示す情報である。サービスプロセッサ２０はＦＡＣＥマップのドメイン設定に従い、各ＣＰＵ／ＤＩＭＭ／ＩＯＣのアドレスマップを制御し、他ドメインからこれら資源へのアクセスできないように監視している。なお、そのようなアクセス要求がＣＰＵ１１あるいはＩＯＣから発行された場合には、ＳＣはエラー応答するようになっている。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
図１３は本サーバ１０におけるＸＢチップ（XB chip）の内部構成例を示すブロック図である。この図１３に示す例においては、ＳＣと同様にバスのＥＣＣをチェックするＥＣＣチェッカ(ECC checker）がそなえられている。
ただし、ＳＣとは異なり、送信と受信両方にそれぞれＥＣＣチェッカがそなえられており、これにより、ＸＢチップの内部でＥＣＣエラーが発生したのか、ＸＢチップの外部でＥＣＣエラーが発生したのかを判別することができる。例えば、ＸＢからの送信用ＥＣＣチェッカでエラーが発生した場合には、ＸＢチップ内部でエラーが発生していることがわかる。また、ＣＭＵ／ＩＯＵとの接続関係を管理するＣＦＲがあり、これに設定することで、CPUポート（CPU port）#0，CPUポート#1、IOUポート（IOU port）をそれぞれ“disable”もしくは“enable”することができるようになっている。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
図１４は本サーバ１０におけるＩＯＣチップの内部構成例を示すブロック図である。この図１４に示すように、ＳＣと同様に、バスのＥＣＣをチェックするＥＣＣチェッカとＣＦＲが用意され、ＣＦＲによって、CH#0/CH#1をそれぞれイネーブル（enable）もしくはディセーブル（disable）することができるようになっている。
図１５は本サーバ１０におけるＣＭＵ／ＩＯＵ／ＢＰ上に搭載されるＦＰＧＡの内部構成を示すブロック図である。この図１５に示す例においては、ＣＭＵ／ＩＯＵ／ＢＰ用のＦＰＧＡは、サービスプロセッサ２０のＦＰＧＡ０（図１１参照）との間でシリアル通信を行なうように構成されており、受信したパケットを“パケットエンコード・デコード”部で解析するようになっている。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
サービスプロセッサ２０は、これらの割込みラッチを確認することにより、どこから割込みが行なわれたかを確認することにより、エラーが生じたチップの特定を行ない、その後、ＪＴＡＧコントローラ２２によってチップ中のレジスタを読んでエラーを読み、エラーの特定を行なうのである。
また、アクセス要求パケットをＦＰＧＡ０から受信した場合には、アドレス／データ混合・分解部にパケットが伝えられる。ここで、パケットのアクセスタイプが“write”であれば、パケット内で指定されたアドレスに対してデータが書き込まれる。なお、アドレスにより指定されるのは、リード（read）／ライト（write）問わず割込みラッチ・マルチプレクサ、ＪＴＡＧ制御のいずれかとなる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
ＪＴＡＧ制御部は、ＣＭＵ／ＩＯＵ／ＢＰ上のＪＴＡＧを制御するものである。このＪＴＡＧ制御部は、マルチプレクサに設定を行なうことで、どのチップに対しＪＴＡＧアクセスを行なうかを決定し、ＪＴＡＧ通信を行なうようになっている。
図１６は本サーバ１０におけるサービスプロセッサ２０およびサービスプロセッサ２０上のＦＰＧＡ（ＦＰＧＡ０）のチップ内の構造を示すブロック図である。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
マルチプレクサによって、ＣＭＵ／ＩＯＵ／ＢＰ上のどのＦＰＧＡにアクセスを行なうのかを選択する。各Ｕｎｉｔから割込み通知パケットを受信した場合は、“パケットエンコード・デコード”部で割込み通知であると認識後、割込みラッチに信号が送られる。これにより、マイクロプロセッサに割込み信号がアサートされる。
マイクロプロセッサから“read”、あるいは“write”要求を受信すると、“read”の場合はアドレスのみ、“write”の場合は“アドレス/データ混合分解”部によりアドレスと書き込みデータがパッキングされ、パケットエンコード・デコード部に送出される。パケットエンコードでコード部は、アクセス要求パケットを作成して、送信する。アクセスが“read”であった場合、ターゲットのＦＰＧＡからデータ応答パケットを送出するので、パケットエンコード・デコード部を経由してマイクロプロセッサにデータが返送される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
図１７〜図１９はそれぞれ本サーバ１０におけるＸＢ縮退手法を説明するための図であり、図１７は正常な状態（縮退前）を、又、図１８および図１９は縮退後の状態をそれぞれ示している。
なお、ＣＭＵ／ＩＯＵ／ＸＢチップ全てのport/CHは、ＣＦＲによって“enable”となっている。
もし、XBチップ#1，#3，#5，#7のいずれかにおいて異常が発生し縮退となった場合には、これらのXBチップ#1，#3，#5，#7が切り離され、図１８に示すような状態になる。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
このとき、サービスプロセッサ２０からＳＣ内のＣＦＲへの設定により、各ＳＣのXB port#1は“disable”となっている。また、同様にＩＯＣ内のＣＦＲへの設定により、各ＩＯＣのCH#1は“disable”となっている。
なお、これらの図１７，図１８に示す例においては、XBチップ#0〜#7は、XBチップ#0，#2，#5，#4，#5，#6をそなえた第１のクロスバーと、XBチップ#1，#3，#5，#7をそなえた第２のクロスバーとの２つのクロスバーとを並行して使用することにより構成されており、第１および第２のいずれかのクロスバーにおいてエラーが発生した場合に、そのエラーが発生したクロスバーが切り離されるのである。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
ＳＣはXB port#0が“disable”となると、それまでport#0に送出していたパケットをport#1に送出するようになる。又、ＩＯＣはＣＨ#1が“disable”になると、CH#0/CH#1間のＩＯＣ内パスを“enable”にして、CH#1あてのパケットを、このパスを経由して受け渡す。
このような縮退を行なうことにより、クロスバー（ＸＢ）のバス幅は半減するものの、システムとしての動作を継続することができるのである。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００８１
【補正方法】変更
【補正の内容】
【００８１】
図１９は図１８に示す例とは逆に、XBチップ#0，#2，#4，#6を縮退させた状態を示している。この図１９に示す状態は、図１８に示した状態とDisableされるポートとが反対側になっているだけで、挙動は同じであるので、その詳細な説明は省略する。
そして、これらの図１７〜１９において、図１７に示すようなXBチップ#0，#2，#5，#4，#5，#6をそなえた第１のクロスバーと、XBチップ#1，#3，#5，#7をそなえた第２のクロスバーとからなるXBチップ#0〜#7が第１のシステム共通部に相当し、図１８に示すような、第２のクロスバー（XBチップ#1，#3，#5，#7）が退避され、残った第１のクロスバー（XBチップ#0，#2，#5，#4，#5，#6）の状態や、図１９に示すような、第１のクロスバー（XBチップ#0，#2，#5，#4，#5，#6）が退避され、残った第２のクロスバー（XBチップ#1，#3，#5，#7）の状態が、第２の共通部に相当する。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
コマンドの第１引数を変数Ａ，第２引数を変数Ｂに代入する（ステップＢ１０）。このコマンドの第１引数はadd（設定を行なう）かdel（設定を削除する）かであり、第２引数は重要度フラグをオンにしたいドメインのドメインＩＤとなる。
その後、Ａ＝addであるか否かの確認を行ない（ステップＢ２０）、Ａ＝addである場合には（ステップＢ２０の“はい”ルート参照）、テーブルＴ４のDID#Bの値にＹを設定して（ステップＢ３０）処理を終了する。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
まず、変数Degradeを定義して、この変数Degradeに切り離すユニットを設定するものとする（ステップＥ１）。
Fault2がXB#x（ｘは０〜７の整数）であるか否か、すなわち、Fault2がXB #0〜XB#7であるか否かを確認して（ステップＥ２）、Fault2がXB#0〜XB#7ではない場合には（ステップＥ２の“いいえ”ルート参照）、その他の切り離し箇所の決定処理へ移行する（ステップＥ１１）。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
また、Fault2がXB#0〜XB#7である場合には（ステップＥ２の“はい”ルート参照）、次に、Fault4が“send”であるか否かを確認する（ステップＥ３）。ここで、Fault4が“send”ではない場合、すなわち、Fault4が“receive”の場合には（ステップＥ３の“いいえ”ルート参照）、変数DegradeにFault3を設定する。このように、Fault4が“receive”の場合には、ＸＢチップの外側、つまりＳＣ側で故障が発生しているので、共通部１４ａにおける故障としては扱わないものとする。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
一方、Fault4が“send”の場合には（ステップＥ３の“はい”ルート参照）、共通部１４ａで異常が発生していると判断され、次に、Fault3がCMU#y（ｙは０、もしくは１）か否か、を確認する（ステップＥ４）。Fault3がCMU#0もしくはCMU#1である場合には（ステップＥ４の“はい”ルート参照）、ｍ＝４＊ｙ，ｎ＝０を設定する（ステップＥ５）。
【手続補正３０】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
また、Fault3がCMU#0もしくはCMU#1ではない場合には（ステップＥ４の“いいえ”ルート参照）、Fault3の内容はIOU#x（ｘは０、もしくは１）であるので、このｘをｙに代入して、ステップＥ５に移行する。
その後、Fault3に示されるユニットとＸＢに関連して異常が発生しているので、そのユニット上に存在しているドメインをまず求める。具体的には、テーブルＴ１（図２参照）におけるCPU#（m+n）に対応するＤＩＤの番号（DID#に続く番号）をｚに代入するのである（ステップＥ６）。
【手続補正３１】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
そして、テーブルＴ４（図５参照）、DID#z欄の重要度フラグをｐに代入し（ステップＥ７）、このｐ==ｙであるか否かを確認することにより（ステップＥ８）、故障の影響を受けているドメインの重要度フラグを、テーブル４を使用してチェックするのである。
ここで、ｐ==ｙ、すなわち、重要度フラグがオンの場合には（ステップＥ８の“はい”ルート参照）、全システムを停止する。このため、切り離し対象を示す変数Degradeに“XB#x”（ｘは０〜７のいずれか）を代入する（ステップＥ１４）。なお、切り離し対象がＸＢである場合、後述するシステムリスタート範囲決定処理が、システム全体をリスタート対象とする。
【手続補正３２】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
また、ｐ==ｙではない場合には（ステップＥ８の“いいえ”ルート参照）、ｎをインクリメント（ｎ＝ｎ＋１）して（ステップＥ９）、ｎ==４であるか否かを確認し（ステップＥ１０の“いいえ”ルート参照）、ステップＥ６に戻る。又、ｎ==４の場合には（ステップＥ１０の“はい”ルート参照）、切り離し箇所の決定プロセスを完了し、変数Degradeに設定された情報が切り離すユニットを示している。
【手続補正３３】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
大域配列変数Target[0]，Target[1]，Target[2]およびTarget[3]にそれぞれ“−１”を設定し（ステップＦ１）、変数Degrade==XB#x（ｘは０〜７のいずれか）であるか否かを確認する（ステップＦ２）。ここで、変数Degrade==XB#x（ｘは０〜７のいずれか）である場合には（ステップＦ２の“はい”ルート参照）、Target[0]に99を設定し（ステップＦ６）、処理を終了する。全システムをリスタートする場合はTarget[0]に99を設定するのである。
【手続補正３４】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
Deg rade==XB#x（ｘは０〜７のいずれか）でない場合には（ステップＦ２の“いいえ”ルート参照）、次に、Fault1==CMU#y（ｙは０、もしくは１）であるか否かを確認する（ステップＦ３）。Fault1==CMU#y（ｙは０、もしくは１）である場合には（ステップＦ３の“はい”ルート参照）、ｍ＝４＊ｙ，ｎ＝０，ｐ＝０をそれぞれ設定し（ステップＦ４）、テーブルＴ１（図２参照）におけるCPU#m+nに対応する（CPU#m+n欄の）ＤＩＤの番号（DID#に続く番号）をｚに代入する（ステップＦ５）。
【手続補正３５】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
また、Fault1==CMU#y（ｙは０、もしくは１）ではない場合には（ステップＦ３の“いいえ”ルート参照）、次に、Fault1==IOU#y（ｙは０、もしくは１）であるか否かを確認する（ステップＦ７）。
Fault1==IOU#y（ｙは０、もしくは１）でない場合には（ステップＦ７の“いいえ”ルート参照）、次に、Fault1==CMU#y（ｙは０、もしくは１）であるか否かを確認する（ステップＦ８）。
【手続補正３６】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
ここで、Fault1==IOU#y（ｙは０、もしくは１）である場合や（ステップＦ７の“はい”ルート参照）、Fault1==CMU#y（ｙは０、もしくは１）である場合には（ステップＦ８の“はい”ルート参照）、ステップＦ４に移行する。
また、Fault1==CMU#y（ｙは０、もしくは１）ではない場合には（ステップＦ８の“いいえ”ルート参照）、Fault3の内容はIOU#x（ｘは０、もしくは１）であるので、このｘをｙに代入して（ステップＦ９）、ステップＦ４に移行する。
【手続補正３７】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
その後、ｚ==Target[0]であるか否かを確認して（ステップＦ１０）、ｚ==Target[0]ではない場合には（ステップＦ１０の“いいえ”ルート参照）、ｚ==Target[1]であるか否かを確認し（ステップＦ１１）、更に、ｚ==Target[1]ではない場合には（ステップＦ１１の“いいえ”ルート参照）、ｚ==Target[2]であるか否かを確認する（ステップＦ１２）。ｚ==Target[2]ではない場合には（ステップＦ１２の“いいえ”ルート参照）、ｚ==Target[3]であるか否かを確認し（ステップＦ１３）、ｚ==Target[3]ではない場合には（ステップＦ１３の“いいえ”ルート参照）、Target[p]にｚを設定するとともに（Target[p]=ｚ）、ｐをインクリメント（ｐ＝ｐ＋１）して（ステップＦ１４）、更に、ｎをインクリメント（ｎ＝ｎ＋１）する（ステップＦ１５）。
【手続補正３８】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
なお、ｚ==Target[0]である場合や（ステップＦ１０の“はい”ルート参照）、ｚ==Target[1]である場合（ステップＦ１１の“はい”ルート参照）、ｚ==Target[2]である場合や（ステップＦ１２の“はい”ルート参照）、ｚ==Target[3]である場合には（ステップＦ１３の“はい”ルート参照）、ステップＦ１５に移行する。
そして、ｎ==４であるか否かを確認して（ステップＦ１６）、ｎ==４ではない場合には（ステップＦ１６の“いいえ”ルート参照）、ステップＦ１０に戻る。又、ｎ==４である場合には（ステップＦ１６の“はい”ルート参照）、処理を終了する。
【手続補正３９】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
また、Target[0]==99ではない場合には（ステップＧ１の“いいえ”ルート参照）、図４６に示すフローチャートにおいて設定されたシステムリスタート範囲について、対象のＣＰＵ／ＩＯＣをいったん、全て切り離し、その再起動することにより行なうステップＧ２〜Ｇ９，Ｇ２３〜Ｇ５７）。
さらに、この際、ユニットを切り離すため、Degrade変数の設定をもとにテーブルＴ１〜Ｔ３の設定の書き換えも行なうようになっている（ステップＧ２９〜Ｇ３８）。なお、ＣＰＵ／ＩＯＣ／ＸＢそれぞれの停止・起動処理については、一般的な大型コンピュータの起動停止処理と同じであるので、その詳細についての説明は省略する。
【手続補正４０】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
なお、本発明の実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
そして、本発明は、以下に示すように要約することができる。
（付記１）  それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、
前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、
前記パーティション部毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報を前記記憶部から読み出すステップと、
前記システム制御部により、前記優先情報が設定されたパーティション部の異常を検出した場合には、前記情報処理装置の停止処理を行うステップと、
前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴とする縮退方法。
（付記２）  前記情報処理装置の縮退方法はさらに、
前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有することを特徴とする付記１記載の縮退方法。
（付記３）  前記情報処理装置の縮退方法はさらに、
前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有することを特徴とする付記１記載の縮退方法。
（付記４）  前記情報処理装置の縮退方法はさらに、
前記再起動処理を行うステップにおいて、前記処理装置を任意のパーティション部に割り当てる再構成処理を行うことを特徴とする付記１記載の縮退方法。
（付記５）  それぞれ処理装置が割り当てられた複数のパーティション部と、前記複数のパーティション部により共有された第１のシステム共通部と、前記パーティション部により共有された第２のシステム共通部と、記憶部を有しシステムの制御を行うシステム制御部とを備えた情報処理装置の縮退方法において、
前記システム制御部により、前記第１のシステム共通部の異常を検出するステップと、
前記システム制御部により、前記パーティション部の異常を検出するステップと、
前記システム制御部により、異常が検出されたパーティション部の識別情報を用いて、前記第１のシステム共通部の異常が発生した場合に前記システム共通部の縮退を行うか否かについての優先情報を、前記記憶部から検索するステップと、
前記システム制御部により検索された優先情報が、前記識別情報に対応するパーティション部に設定されている場合には、前記情報処理装置の停止処理を行うステップと、
前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うステップとを有することを特徴とする縮退方法。
（付記６）  前記情報処理装置の縮退方法はさらに、
前記システム制御部により、前記優先情報が設定されたパーティション部以外のパーティション部について異常を検出した場合には、前記異常を検出したパーティション部の縮退処理を行うステップを有することを特徴とする付記５記載の縮退方法。
（付記７）  前記情報処理装置の縮退方法はさらに、
前記縮退処理を行うステップを実行した後に、前記情報処理装置の再起動処理を行うステップを有することを特徴とする付記５記載の縮退方法。
（付記８）  前記情報処理装置の縮退方法はさらに、
前記再起動処理を行うステップにおいて、前記処理装置を任意のパーティション部に割り当てる再構成処理を行うことを特徴とする付記７記載の縮退方法。
（付記９）  処理装置を有する複数のパーティション部と、
前記複数のパーティション部により共有され、通常動作を行う第１のシステム共通部と、
前記複数のパーティション部により共有され、縮退のために待機する第２のシステム共通部と、
前記複数のパーティション部と前記第１のシステム共通部の異常検出を行うシステム制御手段と、前記複数のパーティション部毎に設定された識別情報と前記識別情報毎に、前記第１のシステム共通部の異常が発生した場合に前記第１のシステム共通部の縮退を行うか否かについての優先情報とが対応付けられて格納される記憶手段と、異常が検出されたパーティション部を停止するとともに、他の正常なパーティション部に切り替える縮退制御を行うパーティション縮退制御手段と、前記第１のシステム共通部の動作を停止するとともに、前記第２のシステム共通部に切り替える縮退処理を行うシステム共通部縮退制御手段とを備えたシステム制御部とを有することを特徴とする情報処理装置。
（付記１０）  前記パーティション部が有する処理部と第１及び第２のシステム共通部はそれぞれ、さらに異常を検出して割込みを通知する割込み通知手段を有し、
前記システム制御手段は、前記処理部又は前記第１若しくは前記第２のシステム共通部が有する前記割込み通知手段からの割込み通知により、前記パーティション部と前記システム共通部の異常の検出を行うことを特徴とする付記９記載の情報処理装置。
（付記１１）  前記パーティション部が有する処理部と前記システム共通部は、さらに前記処理部と前記システム共通部の内部情報を読み出すスキャンチェーン手段を有し、
前記システム制御手段は、前記スキャンチェーン手段を制御することにより、前記パーティション部と前記システム共通部の異常の検出を行うことを特徴とする付記９記載の情報処理装置。
（付記１２）  前記情報処理装置はさらに、
前記処理装置を任意の前記パーティション部に割り当てる再構成処理手段を有することを特徴とする付記１０記載の縮退方法。
【国際調査報告】
2008099453.tif 000056
2008099453.tif 000057
2008099453.tif 000058
2008099453.tif 000059