(57)【特許請求の範囲】
【請求項１】
インターフェース回路を介してプロセッサ間を接続した複数のプロセッサからなるマルチプロセッサ構成を有し、それぞれのプロセッサを接続し、接続したそれぞれのプロセッサの管理・監視を実行するベースボード管理コントローラ（ＢＭＣ：Baseboard Management Controller）を備える情報処理装置であって、前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ：ＢＭＣ  Firmware）は、それぞれのプロセッサ上で動作するベーシック入出力システム（ＢＩＯＳ：Basic Input/Output System）と連携することにより、故障部位を判別して、故障部位を運用系から切り離す障害処理機能を有し、かつ、前記ベーシック入出力システム（ＢＩＯＳ）は、装置の立ち上げ動作を実行中に障害を検出した場合、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内に備えているステータスレジスタが保持する動作状態を解析した結果として得られるエラーコードと、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合には当該インターフェース回路の通信先になる相手側のプロセッサの状態の解析を要求する通信先プロセッサ調査依頼とからなる障害検出通知を、前記ベースボード管理コントローラ（ＢＭＣ）に送信し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、前記インターフェース回路を介して接続されているプロセッサに関して、前記障害検出通知に含まれている前記エラーコードに基づき、障害被疑部位の可能性を示す割合を第１の被疑割合として決定するとともに、前記障害検出通知に前記通信先プロセッサ調査依頼が含まれていた場合には、障害が検出された前記インターフェース回路の通信先の相手側のプロセッサ内に備えているステータスレジスタが保持する動作状態を読み取って解析した結果に基づいて障害被疑部位の障害の可能性を示す割合を第２の被疑割合として決定し、決定した前記第１の被疑割合と前記第２の被疑割合とをあらかじめ定めた規則にしたがってマージして最終的な被疑割合を求めることにより、該最終的な被疑割合が最も高い部位を故障部位と判別して、該故障部位を運用系から切り離すことを特徴とする情報処理装置。
【請求項２】
障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、該リンク障害が検出された前記インターフェース回路の通信先の相手側のプロセッサを特定する部品コードを設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、前記障害検出通知に含まれる前記部品コードによって特定される通信先の相手側のプロセッサのステータスレジスタが保持する動作状態を読み取り、前記第２の被疑割合を決定することにより、前記第１、第２の被疑割合に基づいて前記故障部位を判別する動作を行い、一方、障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害ではなく、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内の障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、プロセッサを特定する部品コードとは異なるコードを設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、通信先の相手側のプロセッサの調査要求がないものとして、通信先の相手側のプロセッサのステータスレジスタの読み取り動作を実施することなく、前記第１の被疑割合のみを用いて、前記故障部位を判別する動作を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、調査依頼を示す識別子を設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、あらかじめ備えている通信先一覧表を参照することによって特定した通信先の相手側のプロセッサのステータスレジスタが保持する動作状態を読み取り、前記第２の被疑割合を決定することにより、前記第１、第２の被疑割合に基づいて前記故障部位を判別する動作を行い、一方、障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害ではなく、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内の障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、調査不要を示す識別子を設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、通信先の相手側のプロセッサの調査要求がないものとして、通信先の相手側のプロセッサのステータスレジスタの読み取り動作を実施することなく、前記第１の被疑割合のみを用いて、前記故障部位を判別する動作を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の被疑割合と前記第２の被疑割合とをマージするための前記規則として、前記第１の被疑割合と前記第２の被疑割合との単純平均を求めるか、あるいは、前記第２の被疑割合にあらかじめ定めた適当な重みを付した加重平均を求めるかのいずれかの規則を用いることを特徴とする請求項１ないし３のいずれかに記載の情報処理装置。
【請求項５】
インターフェース回路を介してプロセッサ間を接続した複数のプロセッサからなるマルチプロセッサ構成の情報処理装置において故障部位を判別する故障部位判別方法であって、それぞれのプロセッサを接続し、接続したそれぞれのプロセッサの管理・監視を実行するベースボード管理コントローラ（ＢＭＣ：Baseboard Management Controller）を備え、前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ：ＢＭＣ  Firmware）は、それぞれのプロセッサ上で動作するベーシック入出力システム（ＢＩＯＳ：Basic Input/Output System）と連携することにより、故障部位を判別して、故障部位を運用系から切り離す障害処理機能を有し、かつ、前記ベーシック入出力システム（ＢＩＯＳ）は、装置の立ち上げ動作を実行中に障害を検出した場合、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内に備えているステータスレジスタが保持する動作状態を解析した結果として得られるエラーコードと、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合には当該インターフェース回路の通信先になる相手側のプロセッサの状態の解析を要求する通信先プロセッサ調査依頼とからなる障害検出通知を、前記ベースボード管理コントローラ（ＢＭＣ）に送信し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、前記インターフェース回路を介して接続されているプロセッサに関して、前記障害検出通知に含まれている前記エラーコードに基づき、障害被疑部位の可能性を示す割合を第１の被疑割合として決定するとともに、前記障害検出通知に前記通信先プロセッサ調査依頼が含まれていた場合には、障害が検出された前記インターフェース回路の通信先の相手側のプロセッサ内に備えているステータスレジスタが保持する動作状態を読み取って解析した結果に基づいて障害被疑部位の障害の可能性を示す割合を第２の被疑割合として決定し、決定した前記第１の被疑割合と前記第２の被疑割合とをあらかじめ定めた規則にしたがってマージして最終的な被疑割合を求めることにより、該最終的な被疑割合が最も高い部位を故障部位と判別して、該故障部位を運用系から切り離すことを特徴とする故障部位判別方法。
【請求項６】
障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、該リンク障害が検出された前記インターフェース回路の通信先の相手側のプロセッサを特定する部品コードを設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、前記障害検出通知に含まれる前記部品コードによって特定される通信先の相手側のプロセッサのステータスレジスタが保持する動作状態を読み取り、前記第２の被疑割合を決定することにより、前記第１、第２の被疑割合に基づいて前記故障部位を判別する動作を行い、一方、障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害ではなく、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内の障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、プロセッサを特定する部品コードとは異なるコードを設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、通信先の相手側のプロセッサの調査要求がないものとして、通信先の相手側のプロセッサのステータスレジスタの読み取り動作を実施することなく、前記第１の被疑割合のみを用いて、前記故障部位を判別する動作を行うことを特徴とする請求項５に記載の故障部位判別方法。
【請求項７】
障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、調査依頼を示す識別子を設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、あらかじめ備えている通信先一覧表を参照することによって特定した通信先の相手側のプロセッサのステータスレジスタが保持する動作状態を読み取り、前記第２の被疑割合を決定することにより、前記第１、第２の被疑割合に基づいて前記故障部位を判別する動作を行い、一方、障害を検出したベーシック入出力システム（ＢＩＯＳ）は、検出した障害が前記インターフェース回路に関するリンク障害ではなく、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内の障害と判定した場合、前記障害検出通知に含まれる前記通信先プロセッサ調査依頼に、調査不要を示す識別子を設定し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、通信先の相手側のプロセッサの調査要求がないものとして、通信先の相手側のプロセッサのステータスレジスタの読み取り動作を実施することなく、前記第１の被疑割合のみを用いて、前記故障部位を判別する動作を行うことを特徴とする請求項５に記載の故障部位判別方法。
【請求項８】
前記第１の被疑割合と前記第２の被疑割合とをマージするための前記規則として、前記第１の被疑割合と前記第２の被疑割合との単純平均を求めるか、あるいは、前記第２の被疑割合にあらかじめ定めた適当な重みを付した加重平均を求めるかのいずれかの規則を用いることを特徴とする請求項５ないし７のいずれかに記載の故障部位判別方法。
【請求項９】
請求項５ないし８のいずれかに記載の故障部位判別方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする故障部位判別プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、故障部位判別方法および故障部位判別プログラムに関し、特に、サーバなどに適用され、保守業務を正確かつ迅速に行わなければならないような分野に好適に適用可能な情報処理装置、故障部位判別方法および故障部位判別プログラムに関する。
【背景技術】
【０００２】
最近、サーバ等に適用される情報処理装置の分野では、性能の向上を図るために、ＲＩＳＣ(Reduced  Instruction Set Computer)等に代表されるように、複数の部品すなわちＣＰＵ（Central Processor Unit）を、インターフェース回路を介してパイプライン接続したマルチプロセッサ構成とする技術が定着してきている。
【０００３】
かかるマルチプロセッサ構成の情報処理装置において障害を検出した場合、障害被疑部品すなわち故障の可能性が高いＣＰＵを特定し、特定した障害被疑部品を運用系から切り離すことにより、以降の処理をスムーズに実施することを可能とする障害処理機能を実現することが重要である。このため、特許文献１の特開２００６−１７８５５７号公報「コンピュータシステムおよびエラー処理方法」や特許文献２の特開２０１０−０２６６７７号公報「ファイル共有装置およびファイル共有システム」においては、マルチプロセッサ構成の情報処理装置において障害部位を判別するための有効な技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７８５５７号公報（第１０−１３頁）
【特許文献２】特開２０１０−０２６６７７号公報（第７−９頁）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述のようなマルチプロセッサ構成の情報処理装置において、装置の立ち上げをベーシック入出力システム（ＢＩＯＳ：Basic Input/Output System）が行っている際に、ＣＰＵ−ＣＰＵ間のインターフェース回路の障害が検出された場合、インターフェース障害検出元のＣＰＵは、インターフェース障害（すなわちリンク障害）が検出されたインターフェース回路の通信先の部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）に対してアクセスすることができないため、従来の故障部位判別方法においては、一般に、インターフェース障害であるにも関わらず、通信先の部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）に関する情報を一切利用することなく、インターフェース障害検出元の部品すなわちＣＰＵのみの情報を用いて障害の解析を行い、故障の被疑部位の指摘を行っていた。そのため、検出した故障に対する信頼度が低く、一回の障害処理で正しい故障部位を指摘することができなく、複数回の障害処理を繰り返してしまうという場合が生じる。
【０００６】
一方、前記特許文献１や特許文献２に記載のような情報処理装置においては、マルチプロセッサを構成する各部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）が、ハードウェアの動作をリモート管理・監視する機能を備えたベースボード管理コントローラ（ＢＭＣ：Baseboard Management Controller)とインターフェース回路を介して接続されているので、ベースボード管理コントローラ（ＢＭＣ）がベーシック入出力システム（ＢＩＯＳ）の代わりに各部品の立ち上げ処理を行うことが可能である。
【０００７】
かくのごとき構成においてベースボード管理コントローラ（ＢＭＣ）が各部品（すなわちＣＰＵや制御装置等）の立ち上げ処理を行った際に、インターフェース障害が検出された場合であっても、ベースボード管理コントローラ（ＢＭＣ）は、インターフェース障害検出元のＣＰＵのみならず、インターフェース障害が検出されたインターフェース回路の通信先の部品（すなわちＣＰＵや制御装置等）についても状態情報を収集して故障部位の解析を行うことができる。しかし、ベースボード管理コントローラ（ＢＭＣ）は、ベーシック入出力システム（ＢＩＯＳ）に比して各部品（すなわちＣＰＵや制御装置等）を立ち上げる動作が遅いため、立ち上げに時間がかかるという問題点がある。
【０００８】
ベースボード管理コントローラ（ＢＭＣ)を備えた情報処理装置における従来の課題を、図９を使ってさらに説明する。図９は、従来のマルチプロセッサ構成の情報処理装置におけるブロック構成を示すブロック構成図であり、ベースボード管理コントローラ（ＢＭＣ）を用いた場合の従来の故障部位判別方法の課題を説明するために、その概略構成を示している。
【０００９】
図９の情報処理装置は、２つのＣＰＵ１１，１２のマルチプロセッサ構成の場合を示しており、２つのＣＰＵ１１，１２それぞれには、立ち上げ処理を行うベーシック入出力システムとしてＢＩＯＳ６１，６２を内蔵するとともに、ＣＰＵ１１，１２それぞれの状態を保持しているステータスレジスタ２１，２２を備え、かつ、インターフェース回路５を介して相互に通信を行うことが可能なように構成されている。さらに、ＣＰＵ１１，１２それぞれの動作状態をリモート管理し監視するためのＢＭＣ３がインターフェース回路４１，４２それぞれを介してＣＰＵ１１，１２に接続されている。ＢＭＣ３には、リモート管理監視用の機能を実行するベースボード管理コントローラ用ファームウェアとしてＢＭＣＦＷ７が内蔵されていて、障害が発生した際に、保守者からの指示によりＣＰＵ１１，１２の状態を読み取って出力することができる。
【００１０】
装置の立ち上げをＢＩＯＳ６１，６２が行うマルチプロセッサ構成の情報処理装置において、ＣＰＵ１１とＣＰＵ１２との間のインターフェース回路５の初期化中に障害が発生した場合、ＣＰＵ１１−ＣＰＵ１２間のインターフェース回路５が使用不可能な状態になるので、例えば、インターフェース障害の検出元のＣＰＵ１１上で動作するＢＩＯＳ６１から通信先である相手側のＣＰＵ１２に直接アクセスすることができなくなる。そのため、従来の故障部位判別方法においては、通信先である相手側のＣＰＵ１２の状態を調査することはしないで、障害検出元のＣＰＵ１１の状態のみから、故障の被疑部位を判定しており、故障の被疑部位の指摘精度が悪くなってしまうという課題があった。
【００１１】
なお、図９の情報処理装置においては、ＣＰＵ１１，１２それぞれの動作状態を管理することにより情報処理装置全体を管理、監視するＢＭＣ３に内蔵されているベースボード管理コントローラ用ファームウェアのＢＭＣＦＷ７はＢＭＣ３上で動作している。ここで、ＢＭＣＦＷ７は、インターフェース回路４１，４２に接続した全ての部品つまりＣＰＵ１１，１２にアクセスすることができる。したがって、情報処理装置の立ち上げ処理の全てをＢＭＣ３上で動作するＢＭＣＦＷ７によって行うことも可能であり、かつ、立ち上げ中に障害が発生した場合においても、ＢＭＣ３のＢＭＣＦＷ７において故障部位を判定することにより、より精度の高い障害処理を行うことが可能になる。しかし、ＢＭＣ３のＢＭＣＦＷ７による情報処理装置の立ち上げ処理がＢＩＯＳ６１，６２の場合に比べると遅くなるという課題がある。
【００１２】
本発明は、かかる課題を解決するためになされたものであり、マルチプロセッサ構成の情報処理装置において立ち上げ処理を迅速に行い、かつ、インターフェース障害が発生した場合であっても、故障部位を正確に判別することが可能な情報処理装置、故障部位判別方法および故障部位判別プログラムを提供することをその目的としている。
【課題を解決するための手段】
【００１３】
前述の課題を解決するため、本発明による情報処理装置、故障部位判別方法および故障部位判別プログラムは、主に、次のような特徴的な構成を採用している。
【００１４】
（１）本発明による情報処理装置は、インターフェース回路を介してプロセッサ間を接続した複数のプロセッサからなるマルチプロセッサ構成を有し、それぞれのプロセッサを接続し、接続したそれぞれのプロセッサの管理・監視を実行するベースボード管理コントローラ（ＢＭＣ：Baseboard Management Controller）を備える情報処理装置であって、前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ：ＢＭＣ  Firmware）は、それぞれのプロセッサ上で動作するベーシック入出力システム（ＢＩＯＳ：Basic Input/Output System）と連携することにより、故障部位を判別して、故障部位を運用系から切り離す障害処理機能を有し、かつ、前記ベーシック入出力システム（ＢＩＯＳ）は、装置の立ち上げ動作を実行中に障害を検出した場合、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内に備えているステータスレジスタが保持する動作状態を解析した結果として得られるエラーコードと、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合には当該インターフェース回路の通信先になる相手側のプロセッサの状態の解析を要求する通信先プロセッサ調査依頼とからなる障害検出通知を、前記ベースボード管理コントローラ（ＢＭＣ）に送信し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、前記インターフェース回路を介して接続されているプロセッサに関して、前記障害検出通知に含まれている前記エラーコードに基づき、障害被疑部位の可能性を示す割合を第１の被疑割合として決定するとともに、前記障害検出通知に前記通信先プロセッサ調査依頼が含まれていた場合には、障害が検出された前記インターフェース回路の通信先の相手側のプロセッサ内に備えているステータスレジスタが保持する動作状態を読み取って解析した結果に基づいて障害被疑部位の障害の可能性を示す割合を第２の被疑割合として決定し、決定した前記第１の被疑割合と前記第２の被疑割合とをあらかじめ定めた規則にしたがってマージして最終的な被疑割合を求めることにより、該最終的な被疑割合が最も高い部位を故障部位と判別して、該故障部位を運用系から切り離すことを特徴とする。
【００１５】
（２）本発明による故障部位判別方法は、インターフェース回路を介してプロセッサ間を接続した複数のプロセッサからなるマルチプロセッサ構成の情報処理装置において故障部位を判別する故障部位判別方法であって、それぞれのプロセッサを接続し、接続したそれぞれのプロセッサの管理・監視を実行するベースボード管理コントローラ（ＢＭＣ）を備え、前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ：ＢＭＣ  Firmware）は、それぞれのプロセッサ上で動作するベーシック入出力システム（ＢＩＯＳ：Basic Input/Output System）と連携することにより、故障部位を判別して、故障部位を運用系から切り離す障害処理機能を有し、かつ、前記ベーシック入出力システム（ＢＩＯＳ）は、装置の立ち上げ動作を実行中に障害を検出した場合、当該ベーシック入出力システム（ＢＩＯＳ）が動作するプロセッサ内に備えているステータスレジスタが保持する動作状態を解析した結果として得られるエラーコードと、検出した障害が前記インターフェース回路に関するリンク障害と判定した場合には当該インターフェース回路の通信先になる相手側のプロセッサの状態の解析を要求する通信先プロセッサ調査依頼とからなる障害検出通知を、前記ベースボード管理コントローラ（ＢＭＣ）に送信し、前記障害検出通知を受け取った前記ベースボード管理コントローラ（ＢＭＣ）上で動作するファームウェア（ＢＭＣＦＷ）は、前記インターフェース回路を介して接続されているプロセッサに関して、前記障害検出通知に含まれている前記エラーコードに基づき、障害被疑部位の可能性を示す割合を第１の被疑割合として決定するとともに、前記障害検出通知に前記通信先プロセッサ調査依頼が含まれていた場合には、障害が検出された前記インターフェース回路の通信先の相手側のプロセッサ内に備えているステータスレジスタが保持する動作状態を読み取って解析した結果に基づいて障害被疑部位の障害の可能性を示す割合を第２の被疑割合として決定し、決定した前記第１の被疑割合と前記第２の被疑割合とをあらかじめ定めた規則にしたがってマージして最終的な被疑割合を求めることにより、該最終的な被疑割合が最も高い部位を故障部位と判別して、該故障部位を運用系から切り離すことを特徴とする。
【００１６】
（３）本発明による故障部位判別プログラムは、少なくとも前記（２）に記載の故障部位判別方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
【発明の効果】
【００１７】
本発明の情報処理装置、故障部位判別方法および故障部位判別プログラムによれば、以下のような効果を奏することができる。
【００１８】
第１の効果は、情報処理装置の立ち上げ中に、ＣＰＵ上で動作するベーシック入出力システム（ＢＩＯＳ）が検出したインターフェース回路に関するリンク障害についても、精度良く故障の被疑部位を指摘することができることにある。本発明では、ＢＩＯＳから障害検出通知を受信したベースボード管理コントローラ（ＢＭＣ）が、ＢＩＯＳが解析した障害被疑部品の情報のみならず、リンク障害が発生したインターフェース回路の通信先の部品に直接アクセスして取得した通信先の部品の状態の解析結果から得られる障害被疑部品の情報をも用いて、故障部位の解析を行うので、このような精度の良い故障被疑部位の指摘ができる。
【００１９】
第２の効果は、情報処理装置の立ち上げ中にベーシック入出力システム（ＢＩＯＳ）からはアクセスすることができない部品の状態を把握することができることにある。その理由は、ベーシック入出力システム（ＢＩＯＳ）が、ベースボード管理コントローラ（ＢＭＣ）に対して、調査依頼として、アクセスしたい部品を通知するコードを障害検出通知に含めて送信し、該障害検出通知を受け取ったＢＭＣにより、調査依頼があった部品に直接アクセスする仕組みを備えているためである。
【００２０】
第３の効果は、情報処理装置の立ち上げ時間を短縮することができることにある。本発明では、情報処理装置の立ち上げ時に、インターフェース回路に関するリンク障害が検出された場合であっても、ベースボード管理コントローラ（ＢＭＣ）において精度良く故障の被疑部位の指摘を行うことができる。そこで、本発明によれば、その精度の良い故障被疑部位の指摘により、同じ障害に対して、切り離し処理とリブート動作とが繰り返されることを防止できるので、情報処理装置の立ち上げ時間が短縮できる。
【図面の簡単な説明】
【００２１】
【図１】本発明による情報処理装置のブロック構成の一例を示すブロック構成図である。
【図２】図１に示す情報処理装置においてＢＩＯＳが障害検出時のエラーコードを保持しているエラーコード表の一例を説明するためのテーブルである。
【図３】図１に示す情報処理装置においてステータスレジスタが保持する状態情報の一例を説明するためのテーブルである。
【図４】図１に示す情報処理装置においてＢＭＣが障害被疑部品に関する情報を保持している障害表の一例を説明するためのテーブルである。
【図５】図１に示す情報処理装置の動作の一例を説明するためのフローチャートである。
【図６】図１に示す情報処理装置において障害を検出したＢＩＯＳからＢＭＣに対して送信する障害検出通知フォーマットの一例を示すテーブルである。
【図７】図１に示す情報処理装置において障害を検出したＢＩＯＳからＢＭＣに対して送信する障害検出通知フォーマットの他の例を示すテーブルである。
【図８】本発明による情報処理装置のブロック構成の図１とは異なる他の例を示すブロック構成図である。
【図９】従来のマルチプロセッサ構成の情報処理装置におけるブロック構成を示すブロック構成図である。
【発明を実施するための形態】
【００２２】
以下、本発明による情報処理装置、故障部位判別方法および故障部位判別プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明による情報処理装置および故障部位判別方法について説明するが、かかる故障部位判別方法をコンピュータにより実行可能な故障部位判別プログラムとして実施するようにしても良いし、あるいは、故障部位判別プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。
【００２３】
（本発明の特徴）
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、マルチプロセッサ構成の情報処理装置においてＣＰＵや制御装置等の処理機能を有するプロセッサ上で動作するベーシック入出力システム（ＢＩＯＳ：Basic Input/Output System。以降ＢＩＯＳと表記する）が装置立ち上げ中などにおいてインターフェース回路の初期化中の障害（リンク障害）を検出した場合であっても、該インターフェース回路に関するリンク障害の故障部位をより精度良く判別するための技術に関するものである。
【００２４】
すなわち、本発明は、マルチプロセッサ構成の複数の部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）の動作状態を管理し監視するためのベースボード管理コントローラ（ＢＭＣ：Baseboard Management Controller。以降ＢＭＣと表記する)上で動作するファームウェア（ＢＭＣＦＷ：ＢＭＣ Firmware。以降ＢＭＣＦＷと表記する）を、情報処理装置の立ち上げを実行するＢＩＯＳと連携させ、ＢＭＣＦＷに、故障部位を判別するための障害処理機能を割り当て、情報処理装置を構成する複数の部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）の中の指定した部品のステータス（状態）を読み出して解析することにより、故障部位を精度良く判別することを主要な特徴としている。
【００２５】
さらに説明すると、本発明は、インターフェース回路に関するリンク障害が発生して、インターフェース障害検出元の部品（以降ＣＰＵ１１と称する）と該インターフェース回路の通信先の部品（以降ＣＰＵ１２と称する）との間の通信が断絶されて、ＣＰＵ１１上で動作するＢＩＯＳから通信先のＣＰＵ１２に対して直接アクセスすることができない状況下においても、障害処理機能を受け持つＢＭＣＦＷにおいて、ＣＰＵ１１のＢＩＯＳから調査依頼があった通信先のＣＰＵ１２の状態を読み出すことにより、ＣＰＵ１１とＣＰＵ１２との両方の状態を解析して、故障部位を精度良く判別することを可能とし、而して、情報処理装置の立ち上げ時間を短縮することを可能とすることを主要な特徴としている。
【００２６】
かくのごとき本発明による故障部位判定方法について、先に説明した図９のブロック構成図を用いてさらに説明する。ＣＰＵ１１上で動作するＢＩＯＳ６１が情報処理装置の立ち上げ中にインターフェース回路５のリンク障害を検出した場合、このインターフェース回路５を介する部品間（ＣＰＵ１１−ＣＰＵ１２間）のアクセスは断絶される。このため、ＣＰＵ１１上で動作しているＢＩＯＳ６１からＣＰＵ１２へアクセスすることができず、従来の障害処理においては、前述したように、ＣＰＵ１１内の状態のみを用いて、故障部位の判別を行っていた。
【００２７】
これに対して、本発明においては、新たに、障害検出元のＣＰＵ１１のＢＩＯＳ６１がインターフェース回路４１を介して障害処理機能を司るＢＭＣ３に対して障害検出通知を送信するとともに、該障害検出通知を送信する際に、リンク障害が発生したインターフェース回路５の通信先であるＣＰＵ１２を示すコードを通知して、通信先のＣＰＵ１２の状態の調査依頼を行う仕組みを設けている。
【００２８】
さらに、ＢＭＣ３上で動作するファームウェアであるＢＭＣＦＷ７には、障害検出元のＣＰＵ１１のＢＩＯＳ６１からは読み出すことができない通信先のＣＰＵ１２のステータスレジスタ２２の内容をインターフェース回路４２を経由して読み出して、障害検出元のＣＰＵ１１のＢＩＯＳ６１からインターフェース回路４１を介して受け取った障害検出通知に関する故障部位の解析を行うという機能を備えている。
【００２９】
さらに、障害検出元のＣＰＵ１１のＢＩＯＳ６１とＢＭＣ３上で動作するＢＭＣＦＷ７とが、ＣＰＵ１１とＣＰＵ１２とのそれぞれの状態を解析して得た故障部品の被疑割合をあらかじめ定めた規則に基づいてマージすることによって、最終的な被疑割合を作り直すという仕組みを、ＢＭＣＦＷ７に用意している。
【００３０】
以上のごとき仕組みを採用することにより、インターフェース回路５に関するリンク障害が発生した場合であっても、ＣＰＵ１１とＣＰＵ１２との状態をより正確に解析することができるので、従来技術よりも精度良く故障の被疑部位を指摘することができる。
【００３１】
（実施形態の構成例）
次に、本発明の情報処理装置のブロック構成について、その一例を、図１を参照して詳細に説明する。図１は、本発明による情報処理装置のブロック構成の一例を示すブロック構成図であり、図９にて説明した従来の情報処理装置のブロック構成と略同じであるが、マルチプロセッサ構成の各部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）の状態を管理監視するＢＭＣに内蔵するファームウェアＢＭＣＦＷに、各部品（すなわちＣＰＵや制御装置等の処理機能を有するプロセッサ）に内蔵するＢＩＯＳと連携して動作し、故障部位を精度良く判別するための障害処理機能が備えられている点が、図９の場合とは異なっている。
【００３２】
図１の情報処理装置は、図９の従来の情報処理装置と同様、インターフェース回路５を介して互いに接続している２つの部品例えばＣＰＵ１１，１２と、ＣＰＵ１１，１２それぞれにインターフェース回路４１，４２それぞれを介して接続しているベースボード管理コントローラＢＭＣ３とによって構成されている。ＣＰＵ１１，１２上では、それぞれ、立ち上げ処理を行うベーシック入出力システム（ファームウェア）としてＢＩＯＳ６１，６２が動作し、ＢＭＣ３上では、ＣＰＵ１１，１２のリモート管理、監視を行うベースボード管理コントローラ用ファームウェアとしてＢＭＣＦＷ７が動作する。ＣＰＵ１１，１２は、インターフェース回路５に関する動作状態も含めて内部の状態を保持するステータスレジスタ２１，２２をそれぞれ備えている。
【００３３】
ステータスレジスタ２１，２２に保持されている状態情報は、それぞれのＣＰＵ１１，１２に内蔵のＢＩＯＳ６１，６２それぞれが読み取ることが可能であるとともに、ＢＭＣ３上で動作するＢＭＣＦＷ７も、インターフェース回路４１，４２それぞれを介して直接読み取ることが可能である。
【００３４】
ＣＰＵ１１上で動作するＢＩＯＳ６１は、装置立ち上げ中にＣＰＵ１１とＣＰＵ１２との間のインターフェース回路５のリンクアップを行う。インターフェース回路５のリンクアップとは、インターフェース回路５というインターフェースを使用可能にするための動作を指す。また、ＣＰＵ１１のＢＩＯＳ６１は、インターフェース回路５に関するリンク障害を検出すると、故障部位を判別するための障害処理が起動されて、障害処理機能を司るＢＭＣ３のＢＭＣＦＷ７に対して、障害検出通知として、検出した障害の内容を示すエラーコードと、障害発生時に通信しようとしていた通信先の部品(例えばＣＰＵ１２)を示すコードとを、インターフェース回路４１を介して通知する。なお、ＣＰＵ１１のＢＩＯＳ６１は、装置立ち上げ中であり、ＣＰＵ１１とＣＰＵ１２との間のインターフェース回路５のリンクアップが成功していないので、インターフェース回路５の通信先となる相手側のＣＰＵ１２に対して直接アクセスすることができない。
【００３５】
ここで、ＣＰＵ１１上で動作するＢＩＯＳ６１およびＣＰＵ１２上で動作するＢＩＯＳ６２は、それぞれ、図２に一例を示すようなエラーコードの一覧を保持している。図２は、図１に示す情報処理装置においてＢＩＯＳ６１，６２が障害検出時のエラーコードを保持しているエラーコード表の一例を説明するためのテーブルであり、エラーコード表は、故障部位が一意に決まるエラーコードと障害を検出したときに処理対象であった部品（ＣＰＵや制御装置等。本実施形態においてはＣＰＵ１１，１２）などがリストアップされている表である。つまり、図２に示すエラーコード表は、エラーコード８１、処理対象部品８２、リンク障害８３、故障被疑部品８４を少なくとも含んで構成されている。
【００３６】
図２のエラーコード表において、例えば、エラーコード８１が'0x0000_0001'であった場合、該エラーコードが示す障害を検出した部品を示す処理対象部品８２は、ＣＰＵ１１であり、リンク障害８３に示すように、該エラーコードが示す障害がリンクアップ中に発生したインターフェース回路５に関するリンク障害であり、かつ、故障被疑部品８４に示すように、故障の可能性が高い部品を示す故障被疑部品がＣＰＵ１１であることを示している。
【００３７】
また、エラーコード８１が'0x0000_0002'であった場合、該エラーコードが示す障害を検出した部品を示す処理対象部品８２は、ＣＰＵ１１であり、リンク障害８３に示すように、該エラーコードが示す障害がリンクアップ中に発生したインターフェース回路５に関するリンク障害であり、かつ、故障被疑部品８４に示すように、故障の可能性が高い部品を示す故障被疑部品がＣＰＵ１２であることを示している。
【００３８】
また、エラーコード８１が'0x0000_1001'であった場合、該エラーコードが示す障害を検出した部品を示す処理対象部品８２は、ＣＰＵ１１であるが、リンク障害８３に示すように、該エラーコードが示す障害はリンク障害ではなく、かつ、故障被疑部品８４に示すように、故障の可能性が高い部品を示す故障被疑部品がＣＰＵ１１であることを示している。
【００３９】
また、ＣＰＵ１１、１２それぞれのステータスレジスタ２１、２２の構成例を図３に示している。図３は、図１に示す情報処理装置においてステータスレジスタ２１，２２が保持する状態情報の一例を説明するためのテーブルであり、ＣＰＵ１１，１２の間を接続するインターフェース回路５の送受信状態に関する情報部分のみを取り出して示している。ステータスレジスタ２１，２２は、図３のＢｉｔ欄９１に示すように、インターフェース回路５の送受信状態を示すレジスタ領域として、例えば１６ビットで構成されている。
【００４０】
ここで、図３のＢｉｔ欄９１に示すように、インターフェース回路５の送信側、受信側とのそれぞれで１バイトずつ用意されていて、受信側の状態を記録するレジスタ領域は、第０ビット目から第７ビット目までのビット［０：７］であり、送信側の状態を記録するレジスタ領域は、第８ビット目から第１５ビット目までのビット［８：１５］である。なお、本実施形態においては、送信側および受信側ともに、インターフェース回路５の通信処理の段階として６段階からなっている場合を例示している。
【００４１】
説明欄９２および内容欄９３に示すように、受信側の状態については、第０ビット［０］は、ＣＰＵ１１，１２が受信したか否かを表す受信の有無に関する状態を示し、'０'は受信なしの状態、'１'は受信ありの状態を示している。また、第１ビット［１］は、ＣＰＵ１１，１２の受信処理が正常に終了したか否かを表す正常終了の有無に関する状態を示し、'０'は正常終了の状態、'１'は異常終了の状態を示している。また、第２〜第７ビット［２：７］は、ＣＰＵ１１，１２の受信処理の進捗状況を示す６段階の各段階ごとに正常終了したか否かを表す段階別正常終了の有無に関する状態を示し、'０'は異常なしの状態、'１'は異常ありの状態を示している。
【００４２】
ここで、段階別正常終了の有無を示す第２〜第７ビット［２：７］について、第２ビット［２］は、受信処理の第１段階の正常終了の有無を、'０'が異常なしの状態、'１'が異常ありの状態として示し、以降、第３〜第７ビット［３：７］は、順次、受信処理の第２、第３、第４、第５、第６段階の正常終了の有無を、それぞれ、'０'が異常なしの状態、'１'が異常ありの状態として示している。
【００４３】
また、送信側の状態についても同様であり、第８ビット［８］は、ＣＰＵ１１，１２が送信したか否かを表す送信の有無に関する状態を示し、'０'は送信なしの状態、'１'は送信ありの状態を示している。また、第９ビット［９］は、ＣＰＵ１１，１２の送信処理が正常に終了したか否かを表す正常終了の有無に関する状態を示し、'０'は正常終了の状態、'１'は異常終了の状態を示している。また、第１０〜第１５ビット［１０：１５］は、ＣＰＵ１１，１２の送信処理の進捗状況を示す６段階の各段階ごとに正常終了したか否かを表す段階別正常終了の有無に関する状態を示し、'０'は異常なしの状態、'１'は異常ありの状態を示している。
【００４４】
ここで、段階別正常終了の有無を示す第１０〜第１５ビット［１０：１５］について、第１０ビット［１０］は、送信処理の第１段階の正常終了の有無を、'０'が異常なしの状態、'１'が異常ありの状態として示し、以降、第１１〜第１５ビット［１１：１５］は、順次、送信処理の第２、第３、第４、第５、第６段階の正常終了の有無を、それぞれ、'０'が異常なしの状態、'１'が異常ありの状態として示している。
【００４５】
ＢＭＣ３上で動作するベースボード管理コントローラ用ファームウェアであるＢＭＣＦＷ７は、ＣＰＵ１１，１２それぞれの状態を保持しているステータスレジスタ２１，２２に、それぞれ、インターフェース回路４１，４２を経由して直接アクセスすることができる。さらに、ＢＭＣＦＷ７は、ステータスレジスタ２１，２２を参照してＣＰＵ１１，１２それぞれに関する障害解析を行う障害処理機能を備えているとともに、ＢＩＯＳ６１，６２それぞれが解析した障害解析結果とＢＭＣＦＷ７自身が解析した障害解析結果とをマージして障害被疑割合を算出する機能を備えている。
【００４６】
図４は、図１に示す情報処理装置においてＢＭＣ３が障害被疑部品に関する情報を保持している障害表の一例を説明するためのテーブルであり、ＢＩＯＳ６１，６２の障害解析結果に基づいて決まる障害被疑部品の被疑割合をリストアップしている表である。
【００４７】
図４に示す障害表は、エラーコード１０１、被疑部品１  １０２、被疑部品２  １０３、被疑割合１  １０４、被疑割合２  １０５を少なくとも含んで構成されていて、障害一覧として、障害検出元のＣＰＵ１１，１２のＢＩＯＳ６１，６２にて一意に決まるエラーコード１０１の各エラーコードごとに、被疑部品１  １０２、被疑部品２  １０３に示す故障の被疑部品と被疑割合１  １０４、被疑割合２  １０５に示す故障の被疑割合とがそれぞれ２つずつリストアップされている。ここで、図４の障害表のエラーコード１０１と図２のエラーコード表のエラーコード８１とに示すそれぞれのエラーコードは１対１に対応している。
【００４８】
つまり、図４の障害表においては、ＢＩＯＳ６１，６２において一意に決定したエラーコードごとに、インターフェース回路５を介して接続される２つの部品（本実施形態においてはＣＰＵ１１，１２）それぞれの故障の可能性の程度を定量的に示す被疑割合を被疑割合１  １０４、被疑割合２  １０５としてあらかじめ用意している。
【００４９】
例えば、図２のエラーコード表において説明したように、エラーコード８１が'0x0000_0001'であった場合、ＢＩＯＳ６１，６２の解析結果としては、故障の可能性が高い故障被疑部品がＣＰＵ１１であるものと推定され、かつ、該エラーコードが示す障害がリンクアップ中に発生したリンク障害であることを示している。したがって、図４の障害表においては、エラーコード１０１が'0x0000_0001'であった場合には、被疑部品１  １０２および被疑割合１  １０４に示すように、故障被疑部品がＣＰＵ１１であるとする被疑割合は７０％であり、被疑部品２  １０３および被疑割合２  １０５に示すように、故障被疑部品がＣＰＵ１２であるとする被疑割合は３０％であるものとしてあらかじめ設定する。
【００５０】
また、図２のエラーコード表において説明したように、エラーコード８１が'0x0000_0002'であった場合、ＢＩＯＳ６１，６２の解析結果としては、故障部位がＣＰＵ１２であるものと推定され、かつ、該エラーコードが示す障害がリンクアップ中に発生したリンク障害である。したがって、図４の障害表においては、エラーコード１０１が'0x0000_0002'であった場合には、被疑部品１  １０２および被疑割合１  １０４に示すように、故障被疑部品がＣＰＵ１２であるとする被疑割合は７０％であり、被疑部品２  １０３および被疑割合２  １０５に示すように、故障被疑部品がＣＰＵ１１であるとする被疑割合は３０％であるものとしてあらかじめ設定する。
【００５１】
また、図２のエラーコード表において説明したように、エラーコード８１が'0x0000_1001'であった場合、ＢＩＯＳ６１，６２の解析結果としては、ＣＰＵ１１であるものと推定され、かつ、該エラーコードが示す障害は、エラーコード８１が'0x0000_0001'の場合とは異なり、リンク障害の場合ではなく、ＣＰＵ１１内部の故障である。したがって、図４のエラーコード表においては、エラーコード１０１が'0x0000_1001'であった場合には、被疑部品１  １０２および被疑割合１  １０４に示すように、故障被疑部品がＣＰＵ１１であるとする被疑割合は１００％であり、被疑部品２  １０３および被疑割合２  １０５に示すように、故障被疑部品がＣＰＵ１２であるとする被疑割合は０％であるものとしてあらかじめ設定する。
【００５２】
（実施形態の動作の説明）
次に、図１に示す情報処理装置の動作の一例を、図５のフローチャートを参照しながら説明する。図５は、図１に示す情報処理装置の動作の一例を説明するためのフローチャートであり、図５（Ａ）が、２つの部品すなわちＣＰＵ１１，１２上でそれぞれ動作するベーシック入出力システムＢＩＯＳ６１，６２の動作の一例を示し、図５（Ｂ）がＢＭＣ３上で動作するベースボード管理コントローラ用ファームウェアＢＭＣＦＷ７の動作の一例を示している。なお、以下の説明においては、説明を分かり易くするために、２つのＣＰＵ１１，１２のうち、ＣＰＵ１１上で動作するＢＩＯＳ６１が、装置の立ち上げ中に障害を検出した場合の動作について説明するが、ＣＰＵ１２上で動作するＢＩＯＳ６２についても、ＢＩＯＳ６１とＢＩＯＳ６２とを読み替えるだけで、全く同様の動作となる。
【００５３】
まず、ＣＰＵ１１上で動作するＢＩＯＳ６１が、ＣＰＵ１１の立ち上げ処理として、ＣＰＵ１１−ＣＰＵ１２間のインターフェース回路５の初期設定を行っている段階で障害を検出した場合の動作を中心にして、図５（Ａ）を用いて説明する。
【００５４】
図５（Ａ）において、ＣＰＵ１１のＢＩＯＳ６１が、立ち上げ中のＣＰＵ１１−ＣＰＵ１２間のインターフェース回路５の初期設定を行っている段階において、つまり、インターフェース回路５のリンク初期設定中（リンクアップ中）の段階において、"ＣＰＵ１２側からの応答がない"または"ＣＰＵ１２側から期待しない応答を受信した"等の異常を検出すると（ステップＡ１）、故障部位を特定するための障害処理が起動され、ステップＡ２に移行する。
【００５５】
障害処理が起動されると、ＢＩＯＳ６１は、図３に示したような構成からなるＣＰＵ１１のステータスレジスタ２１のビット［８：１５］にアクセスして、当該ＣＰＵ１１からＣＰＵ１２側への送信動作に異常が発生していないか否かを確認する。すなわち、ＢＩＯＳ６１は、ステータスレジスタ２１のビット［８：１５］を読み取ると、インターフェース回路５すなわちリンクの初期設定動作として送信動作に異常が発生しているか否かを分析し、異常が検出された場合、図２のエラーコード表を参照して、該当するエラーコードを特定する（ステップＡ２）。
【００５６】
つまり、ステップＡ２においては、まず、アクセスしたステータスレジスタ２１のビット［８］の「送信あり／なし」の状態を調査し、ビット［８］が'０'であれば、ＢＩＯＳ６１が送信動作を指示していたにも関わらず、何らかの異常により送信動作が行われなかったことを検出する。一方、ビット［８］が'１'であれば、インターフェース回路５を介してＣＰＵ１２に対して何らかの送信動作が行われていたことを確認する。
【００５７】
何らかの送信動作が行われていた場合には、次に、ステータスレジスタ２１のビット［９］の「送信正常終了の有無」の状態を調査し、ビット［９］が'０'であれば、送信動作が正常に終了していることになるが、一方、ビット［９］が'１'であれば、送信動作が何らかの異常により正常には実施できず異常終了していることを検出する。
【００５８】
送信動作が異常終了していた場合には、次に、ステータスレジスタ２１のビット［１０：１５］を調査する。ステータスレジスタ２１のビット［１０：１５］には、前述したように、送信動作の進捗段階ごとの異常の有無を、各ビットごとに格納している。つまり、ビット［１０］〜ビット［１５］のそれぞれは、送信動作の第１段階１〜第６段階に対応し、異常がない場合は'０'であるが、異常が発生している場合は'１'を格納している。
【００５９】
以上のように、ステータスレジスタ２１のビット［８］が'０'であれば、送信動作が実施されない何らかの異常が発生していることになり、また、ステータスレジスタ２１のビット［８］が'１'であっても、ビット［９：１５］の中に'１'が存在していれば、送信動作が異常終了していることになる。一方、ステータスレジスタ２１のビット［８］が'１'で、かつ、ビット［９：１５］の中に'１'が存在していなければ、送信動作は正常終了し、送信動作以外で異常が発生しているものと判断することができる。また、ＢＩＯＳ６１は、障害を検出したときの処理内容に基づいて、例えば、インターフェース回路５に関連するリンク初期設定用のコマンドを送信中であったか否かに基づいて、インターフェース回路５に関連するリンク障害か否かを決定することができる。
【００６０】
リンク障害と決定した場合であれば、ＢＩＯＳ６１は、ステータスレジスタ２１のビット［８：１５］の内容から送信動作が正常に行われたことが確認された場合には、インターフェース回路５の通信先のＣＰＵ１２を故障被疑部品として決定し、一方、ステータスレジスタ２１のビット［８：１５］の内容から送信動作に何らかの異常が発生したことが確認された場合には、ＣＰＵ１１自身を故障被疑部品として決定する。
【００６１】
かくのごとき異常判定処理結果に基づいて、ＢＩＯＳ６１は、図２に示したエラーコード表を参照し、当該ＢＩＯＳ６１が動作する処理対象の部品と、障害を検出したときの処理内容から決定したリンク障害の有無と、ステータスレジスタ２１のビット［８：１５］の内容から決定したリンク障害時の故障被疑部品とにより、処理対象部品８２、リンク障害８３、故障被疑部品８４を検索して、対応するエラーコードをエラーコード８１から抽出する。例えば、障害を検出した処理対象部品がＣＰＵ１１であり、ＣＰＵ１１が障害被疑部品となるリンク障害であった場合には、図２のエラーコード表に示すように、エラーコードは、'0x0000_0001'になる。また、障害を検出した処理対象部品がＣＰＵ１１であり、ＣＰＵ１１が障害被疑部品であっても、リンク障害ではない場合には、図２のエラーコード表に示すように、エラーコードは、'0x0000_1001'になる。
【００６２】
図５（Ａ）のステップＡ２における障害内容の分析処理を実施すると、次に、ＢＭＣ３へ障害の検出を通知する情報を設定するために、まず、ＢＩＯＳ６１は、インターフェース回路５に関するリンク初期設定中にリンク障害を検出していたか否かを判定する（ステップＡ３）。
【００６３】
リンク障害を検出していた場合は（ステップＡ３のｙｅｓ）、ステップＡ２において決定したエラーコードとインターフェース回路５を介した通信の通信先となる部品を示すコードとを付した障害検出通知をＢＭＣ３にインターフェース回路４１を介して送信する（ステップＡ４）。例えば、障害を検出した処理対象部品がＣＰＵ１１であり、ＣＰＵ１１が障害被疑部品となるリンク障害であった場合には、前述のように、エラーコードは'0x0000_0001'であり、かつ、通信先の部品を示すコードはＣＰＵ１２を示すコードとなり、障害検出通知を送信しようとするＢＭＣ３に対して、インターフェース回路５の通信先のＣＰＵ１２側のステータスレジスタ２２をさらに調査して、障害被疑部位を解析することを依頼することになる。
【００６４】
一方、リンク障害を検出していない場合は（ステップＡ３のｎｏ）、通信先となる部品を示すコードを含まないエラーコードのみからなる障害検出通知をＢＭＣ３にインターフェース回路４１を介して送信する（ステップＡ５）。例えば、障害を検出した処理対象部品がＣＰＵ１１であり、ＣＰＵ１１が障害被疑部品であっても、リンク障害ではない場合には、エラーコードが'0x0000_1001'であり、通信先の部品を示すコードとしてall'０'（通信先の部品すなわちＣＰＵ１２の調査が不要である旨を示すコード）を設定した障害検出通知を送信して、ＢＭＣ３に対して、該障害検出通知のみを用いて、障害被疑部位を解析することを依頼することになる。
【００６５】
ＢＩＯＳ６１からＢＭＣ３へ送信する障害検出通知のフォーマットの一例を、図６に示す。すなわち、図６は、図１に示す情報処理装置において障害を検出したＢＩＯＳ６１からＢＭＣ３に対して送信する障害検出通知フォーマットの一例を示すテーブルである。なお、ＣＰＵ１２上で動作するＢＩＯＳ６２が障害を検出した場合であっても、図６と同様のフォーマットを用いて、ＢＭＣ３に通知することができることは言うまでもない。
【００６６】
図６のＢｉｔ欄１１１に示すように、ＢＭＣ３へ通知する障害検出通知フォーマットは、例えば４８ビットからなっており、説明欄１１２、内容欄１１３に示すように、ビット［０：３１］には、ＢＩＯＳ６１において障害分析結果として決定したエラーコード（すなわち、障害を特定するためのコード）が設定され、ビット［３２：４７］には、通信先の部品を示す通信先の部品コードが設定される。ここで、通信先の部品コードは、各部品に１対１に対応して付されているものであり、内容欄１１３に示すように、リンク障害を検出していた場合には、調査対象となる通信先の部品を示す'0x0000'以外のコード（例えば、ＣＰＵ１２の場合は、'0x0002'、ＣＰＵ１１の場合は、'0x0001'）が設定され、リンク障害以外の障害を検出していた場合には、調査対象となる通信先を指定していないことを示すコードとしてall'０'の'0x0000'というコードが設定される。
【００６７】
なお、インターフェース回路４１を介した通信量を抑制するために、ＢＩＯＳ６１からＢＭＣ３へ送信する障害検出通知のフォーマットの図６とは異なる他の例として、図７に示すようなフォーマットを用いるようにしても良い。図７は、図１に示す情報処理装置において障害を検出したＢＩＯＳ６１からＢＭＣ３に対して送信する障害検出通知フォーマットの他の例を示すテーブルである。ここで、ＣＰＵ１２上で動作するＢＩＯＳ６２が障害を検出した場合であっても、図７と同様のフォーマットを用いて、ＢＭＣ３に通知することができることは言うまでもない。
【００６８】
図７のＢｉｔ欄１２１に示すように、ＢＭＣ３へ通知する障害検出通知フォーマットは、図６に比し情報量が少ない例えば３３ビットからなっており、説明欄１２２、内容欄１２３に示すように、ビット［０：３１］には、図６の場合と同様、エラーコードを設定するが、ビット［３２］には、図６の場合とは異なり、通信先の部品の調査を依頼するか否かを示す通信先調査依頼ビットを設定し、リンク障害を検出していた場合には、通信先の調査を依頼する旨を示す'１'（調査依頼識別子）が設定され、リンク障害以外の障害を検出していた場合には、通信先の調査を依頼していないことを示す'０'（調査不要識別子）が設定される。
【００６９】
ただし、図７のごとき障害検出通知フォーマットを用いる場合は、ＢＭＣ３上で動作するＢＭＣＦＷ７は、ＢＩＯＳ６１から受信した障害検出通知に通信先の調査を依頼する旨を示す'１'が設定されていた場合、当該障害検出通知に含まれているエラーコードに基づいて、調査対象となる通信先の部品を特定することができる通信先一覧表等を備えた構成としていることが前提になる。
【００７０】
次に、図６または図７に示すような障害検出通知をＢＩＯＳ６１から受信したＢＭＣ３のベースボード管理コントローラ用ファームウェアＢＭＣＦＷ７の動作について、その一例を、図５（Ｂ）のフローチャートを用いて説明する。
【００７１】
図５（Ｂ）に示すように、ＢＭＣ３上で動作するＢＭＣＦＷ７は、インターフェース回路４１を介して、ＢＩＯＳ６１から障害検出通知を受信すると（ステップＢ１）、故障部位を特定するための障害処理が起動され、ステップＢ２に移行する。
【００７２】
障害処理が起動されると、ＢＭＣＦＷ７は、受信した障害検出通知に含まれているエラーコードに基づいて、図４に示した障害表を参照して、該エラーコードに該当する障害被疑部品と障害被疑割合とを抽出する（ステップＢ２）。例えば、受信した障害検出通知に含まれているエラーコードが'0x0000_0001'であった場合は、図４の障害表の被疑部品１  １０２、被疑部品２  １０３、被疑割合１  １０４、被疑割合２  １０５に示すように、故障の部位を示す障害被疑部品がＣＰＵ１１である被疑割合が７０％であり、故障の部位を示す障害被疑部品がＣＰＵ１２である被疑割合が３０％であることを、故障部位の可能性を示す第１の被疑割合として抽出する。
【００７３】
次に、ＢＭＣＦＷ７は、受信した障害検出通知内のリンク障害か否かを示す情報（例えば、図６の場合は、ビット[３２：４７]、図７の場合は、ビット［３２］）を参照して、検出された障害がインターフェース回路５に関するリンク障害であったか否かをチェックし、インターフェース回路５の通信先の部品を調査する必要があるか否かを判定する（ステップＢ３）。ここで、障害検出通知が図６に示すようなフォーマットであれば、前述したように、ビット[３２：４７]には、リンク障害の場合、通信先の部品を示す'0x0000'以外のコードが設定されており、リンク障害ではない場合は、'0x0000'が設定されている。また、図７に示すようなフォーマットであれば、通信先の部品の調査依頼ビットであるビット[３２]にリンク障害の有無を示す情報が設定されている。
【００７４】
検出した障害が、リンク障害ではなく、通信先の部品を調査する必要がないと判定した場合には（ステップＢ３のｎｏ）、通信先の部品を調査することなく、直ちに、ＢＩＯＳ６１からの障害検出通知のみに基づいて、故障の被疑部位を指摘して処置するために、ステップＢ７に移行する。
【００７５】
一方、検出した障害が、インターフェース回路５に関するリンク障害であり、通信先の部品を調査する必要があると判定した場合には（ステップＢ３のｙｅｓ）、ステップＢ４に移行して、通信先の部品を特定して、該通信先の部品の状態を解析する（ステップＢ４）。
【００７６】
ここで、ＢＭＣＦＷ７は、ＢＩＯＳ６１からの障害検出通知が図６に示すようなフォーマットであれば、前述したように、受信した障害検出通知のビット[３２：４７]に設定されている通信先の部品コードに基づいて、通信先の部品を決定し、また、受信した障害検出通知が図７に示すようなフォーマットであれば、前述したように、該障害検出通知に含まれているエラーコードに基づいて通信先一覧表等を検索することにより、通信先の部品を決定する。しかる後、決定した通信先の部品にアクセスして、当該通信先の部品の状態を解析する。
【００７７】
例えば、図１に示す情報処理装置において障害検出通知として図６のようなフォーマットを用いている場合は、インターフェース回路５に関するリンク障害を検出したＣＰＵ１１のＢＩＯＳ６１からの障害検出通知に含まれる通信先の部品コードには、'0x0002'とＣＰＵ１２を特定するコードが設定されていることになり、ＢＭＣＦＷ７は、通信先の部品として、インターフェース回路４２を介して、ＣＰＵ１２のステータスレジスタ２２に直接アクセスして、ＣＰＵ１２の状態を読み取って、ＣＰＵ１２のインターフェース回路５に対する送受信状態を解析する。
【００７８】
次いで、ＢＭＣＦＷ７は、図３に示したような構成からなるＣＰＵ１２のステータスレジスタ２２のビット［０：７］を取り出して、ＣＰＵ１２が、相手のＣＰＵ１１からの受信動作を正常に行っているか否かを確認する。
【００７９】
まず、取り出したＣＰＵ１２のステータスレジスタ２２のビット［０］の「受信あり／なし」の状態を調査し、ビット［０］が'０'であれば、相手のＣＰＵ１１からは送信動作が行われているにも関わらず、ＣＰＵ１２においては何らかの異常により受信動作が行われなかったことを検出する。一方、ビット［０］が'１'であれば、インターフェース回路５を介してＣＰＵ１１からの何らかの受信動作が行われていたことを確認する。
【００８０】
何らかの受信動作が行われていた場合には、次に、ステータスレジスタ２２のビット［１］の「受信正常終了の有無」の状態を調査し、ビット［１］が'０'であれば、受信動作が正常に終了していることになるが、一方、ビット［１］が'１'であれば、受信動作が何らかの異常により正常には実施できず異常終了していることを検出する。
【００８１】
受信動作が異常終了していた場合には、次に、ステータスレジスタ２２のビット［２：７］を調査する。ステータスレジスタ２２のビット［２：７］には、前述したように、受信動作の進捗段階ごとの異常の有無を、各ビットごとに格納している。つまり、ビット［２］〜ビット［７］のそれぞれは、受信動作の第１段階１〜第６段階に対応し、異常がない場合は'０'であるが、異常が発生している場合は'１'を格納している。
【００８２】
以上のように、ステータスレジスタ２２のビット［０］が'０'であれば、相手のＣＰＵ１１からの送信動作があったにも関わらず、何らかの異常により受信動作ができなかったものと判断し、また、ステータスレジスタ２２のビット［０］が'１'であっても、ビット［１：７］の中に'１'が存在していれば、受信動作が異常終了していることになる。一方、ステータスレジスタ２２のビット［０］が'１'で、かつ、ビット［１：７］の中に'１'が存在していなければ、受信動作は正常終了しており、通信先のＣＰＵ１２には異常が発生していないものと判断することができる。
【００８３】
次に、ＢＭＣＦＷ７は、ＣＰＵ１２のステータスレジスタ２２のビット［８：１５］を取り出して、ＣＰＵ１２が、相手のＣＰＵ１１からの送信に対する応答を返送する動作として、相手のＣＰＵ１１への送信動作を正常に行っているか否かを確認する。
【００８４】
まず、取り出したＣＰＵ１２のステータスレジスタ２２のビット［８］の「送信あり／なし」の状態を調査し、ビット［８］が'０'であれば、ＣＰＵ１２が応答の送信動作を指示していたにも関わらず、何らかの異常により送信動作が行われていなかったことを検出する。一方、ビット［８］が'１'であれば、インターフェース回路５を介してＣＰＵ１１に対して何らかの送信動作が行われていたことを確認する。
【００８５】
何らかの送信動作が行われていた場合には、次に、ステータスレジスタ２２のビット［９］の「送信正常終了の有無」の状態を調査し、ビット［９］が'０'であれば、送信動作が正常に終了していることになるが、一方、ビット［９］が'１'であれば、送信動作が何らかの異常により正常には実施できず異常終了していることを検出する。
【００８６】
送信動作が異常終了していた場合には、次に、ステータスレジスタ２２のビット［１０：１５］を調査する。ステータスレジスタ２２のビット［１０：１５］には、前述したように、送信動作の進捗段階ごとの異常の有無を、各ビットごとに格納している。つまり、ビット［１０］〜ビット［１５］のそれぞれは、送信動作の第１段階１〜第６段階に対応し、異常がない場合は'０'であるが、異常が発生している場合は'１'を格納している。
【００８７】
以上のように、ステータスレジスタ２２のビット［８］が'０'であれば、何らかの異常により、相手のＣＰＵ１１への送信動作ができなかったものと判断し、また、ステータスレジスタ２２のビット［８］が'１'であっても、ビット［９：１５］の中に'１'が存在していれば、送信動作が異常終了していることになる。一方、ステータスレジスタ２２のビット［８］が'１'で、かつ、ビット［９：１５］の中に'１'が存在していなければ、送信動作は正常終了しているものと判断することができる。
【００８８】
次いで、ＢＭＣＦＷ７は、ステップＢ４における通信先の部品であるＣＰＵ１２の送受信状態の解析結果に基づいて、障害検出元のＣＰＵ１１の障害被疑部品と通信先のＣＰＵ１２の障害被疑部品との双方の被疑割合を、故障部位の可能性を示す第２の被疑割合として決定する（ステップＢ５）。
【００８９】
つまり、ステップＢ５においては、ＢＭＣＦＷ７は、ＣＰＵ１１のＢＩＯＳ６１からの障害検出通知として、該障害検出通知に含まれているエラーコードが例えば'0x0000_0001'であって、リンク障害の旨が通知されてきた場合において、通信先のＣＰＵ１２のステータスレジスタ２２を読み取り、ステータスレジスタ２２のビット［０］および［８］が'１'であり、通信先のＣＰＵ１２が、障害検出側の相手のＣＰＵ１１との間の何らかの送受信動作を行っていた場合であって、ステータスレジスタ２２のビット［１：７］およびビット［９：１５］には'１'が存在していないと認識した場合には、通信先のＣＰＵ１２は、略正常に動作しているものと判定する。
【００９０】
而して、ＢＭＣＦＷ７は、通信先のＣＰＵ１２の送受信状態の解析結果から、故障の被疑部品はＣＰＵ１１の可能性が高いものと判定し、障害検出元のＣＰＵ１１が障害被疑部品である被疑割合を例えば８０％とし、一方、通信先のＣＰＵ１２が障害被疑部品である被疑割合を例えば２０％と決定する。
【００９１】
一方、ＣＰＵ１１のＢＩＯＳ６１からの障害検出通知に含まれているエラーコードが例えば'0x0000_0001'であって、リンク障害の旨が通知されてきた場合において、通信先のＣＰＵ１２のステータスレジスタ２２のビット［０］または［８］が'０'であり、通信先のＣＰＵ１２が、障害検出側の相手のＣＰＵ１１と送受信動作を行うことができなかった場合、あるいは、ビット［０］および［１］が'１'であり、通信先のＣＰＵ１２が、障害検出側の相手のＣＰＵ１１と送受信動作を行うことができた場合であっても、ステータスレジスタ２２のビット［１：７］またはビット［９：１５］に'１'が存在していると認識した場合には、通信先のＣＰＵ１２は、正常に動作していないものと判定する。
【００９２】
而して、ＢＭＣＦＷ７は、通信先のＣＰＵ１２の送受信状態の解析結果から、故障の被疑部品はＣＰＵ１２の可能性が高いものと判定し、通信先のＣＰＵ１２が障害被疑部品である被疑割合を例えば７０％とし、一方、障害検出元のＣＰＵ１１が障害被疑部品である被疑割合を例えば３０％と決定する。
【００９３】
ここで、障害検出元のＣＰＵ１１が障害被疑部品と判定した場合について、ステップＢ５における障害被疑部品の被疑割合の数値（すなわち第２の被疑割合の数値）が、ステップＢ２における障害被疑部品の被疑割合の数値（すなわち第１の被疑割合の数値）と異なる要因は、次の点を考慮したからである。すなわち、ステップＢ２においては、インターフェース回路５のリンク障害検出時において、「障害検出元であるＣＰＵ１１から通信先のＣＰＵ１２に対するインターフェース回路５を介した送信動作が正しく実施できたか否か」を、送信元のＣＰＵ１１のＢＩＯＳ６１自身が判定した結果であるのに対して、ステップＢ５においては、インターフェース回路５のリンク障害検出時において、「通信先のＣＰＵ１２における障害検出元のＣＰＵ１１とのインターフェース回路５を介した送受信動作が正しく実施できたか否か」を、通信先のＣＰＵ１２のステータスレジスタ２２の読み取り結果に基づいて、ＢＭＣＦＷ７が判定した結果であることによるからである。つまり、ステップＢ５における解析結果の方が、ステップＢ２における解析結果よりも、障害解析に対する信頼度がより高いと想定されるからである。
【００９４】
しかる後、ステップＢ２において障害検出元のＣＰＵ１１からの障害検出通知に基づいて決定した障害被疑部品の被疑割合（すなわち第１の被疑割合）と、ステップＢ５において通信先のＣＰＵ１２のステータスレジスタ２２の読み取り結果に基づいて決定した障害被疑部品の被疑割合（すなわち第２の被疑割合）とを、あらかじめ定めた規則にしたがってマージして最終的な被疑割合を算出する（ステップＢ６）。ここで、マージを行うためのあらかじめ定めた規則としては、単純な例として、ステップＢ２における解析結果とステップＢ５における解析結果との双方の被疑割合を加算して、'２'で割った単純平均値を当該障害被疑部品の最終的な被疑割合とするようにしても良い。
【００９５】
例えば、第１番目の例として、ＣＰＵ１１から受信した障害検出通知に含まれているエラーコードが'0x0000_0001'であって、かつ、故障の可能性が高い部品がステップＢ２とステップＢ５とでいずれも障害検出元のＣＰＵ１１であった場合であり、前述のように、ステップＢ２の解析結果としてＣＰＵ１１が障害被疑部品である被疑割合が７０％、ＣＰＵ１２が障害被疑部品である被疑割合が３０％であり、一方、ステップＢ５の解析結果としてＣＰＵ１１が障害被疑部品である被疑割合が８０％、ＣＰＵ１２が障害被疑部品である被疑割合が２０％であった場合には、ステップＢ２の解析結果のＣＰＵ１１が障害被疑部品である被疑割合７０％とステップＢ５の解析結果のＣＰＵ１１が障害被疑部品である被疑割合８０％とを単純平均して、ＣＰＵ１１が障害被疑部品である最終的な被疑割合を７５％と決定する。また、ステップＢ２の解析結果のＣＰＵ１２が障害被疑部品である被疑割合３０％とステップＢ５の解析結果のＣＰＵ１２が障害被疑部品である被疑割合２０％とを単純平均して、ＣＰＵ１２が障害被疑部品である最終的な被疑割合を２５％と決定する。
【００９６】
また、第２番目の例として、故障の可能性が高い部品が、ステップＢ２とステップＢ５で、前述のＣＰＵ１１の場合とは逆に、いずれも、通信先のＣＰＵ１２であって、ステップＢ２の解析結果とステップＢ５の解析結果とのいずれも、ＣＰＵ１１が障害被疑部品である被疑割合が３０％、ＣＰＵ１２が障害被疑部品である被疑割合が７０％であった場合には、ステップＢ２の解析結果のＣＰＵ１１が障害被疑部品である被疑割合３０％とステップＢ５の解析結果のＣＰＵ１１が障害被疑部品である被疑割合３０％とを単純平均して、ＣＰＵ１１が障害被疑部品である最終的な被疑割合を３０％と決定する。また、ステップＢ２の解析結果のＣＰＵ１２が障害被疑部品である被疑割合７０％とステップＢ５の解析結果のＣＰＵ１２が障害被疑部品である被疑割合７０％とを単純平均して、ＣＰＵ１２が障害被疑部品である最終的な被疑割合を７０％と決定する。
【００９７】
また、第３番目の例として、故障の可能性が高い部品がステップＢ２とステップＢ５とで異なり、いずれも、状態の解析対象になった部品側が故障であるものと判定して、ステップＢ２の解析結果のＣＰＵ１１が障害被疑部品である被疑割合が７０％、ＣＰＵ１２が障害被疑部品である被疑割合が３０％であり、一方、ステップＢ５の解析結果のＣＰＵ１１が障害被疑部品である被疑割合が３０％、ＣＰＵ１２が障害被疑部品である被疑割合が７０％であった場合には、ステップＢ２の解析結果のＣＰＵ１１が障害被疑部品である被疑割合７０％とステップＢ５の解析結果のＣＰＵ１１が障害被疑部品である被疑割合３０％とを単純平均して、ＣＰＵ１１が障害被疑部品である最終的な被疑割合を５０％と決定する。また、ステップＢ２の解析結果のＣＰＵ１２が障害被疑部品である被疑割合３０％とステップＢ５の解析結果のＣＰＵ１２が障害被疑部品である被疑割合７０％とを単純平均して、ＣＰＵ１２が障害被疑部品である最終的な被疑割合を５０％と決定する。
【００９８】
また、第４番目の例として、故障の可能性が高い部品がステップＢ２とステップＢ５とで異なり、いずれも、ステータスレジスタ２１，２２に基づく解析をしていない相手の部品側が故障であるものと判定して、ステップＢ２の解析結果のＣＰＵ１１が障害被疑部品である被疑割合が３０％、ＣＰＵ１２が障害被疑部品である被疑割合が７０％であり、一方、ステップＢ５の解析結果の信頼性がステップＢ２の場合よりも高いものとして、ステップＢ５の解析結果のＣＰＵ１１が障害被疑部品である被疑割合が８０％、ＣＰＵ１２が障害被疑部品である被疑割合が２０％と設定した場合には、ステップＢ２の解析結果のＣＰＵ１１が障害被疑部品である被疑割合３０％とステップＢ５の解析結果のＣＰＵ１１が障害被疑部品である被疑割合８０％とを単純平均して、ＣＰＵ１１が障害被疑部品である最終的な被疑割合を５５％と決定する。また、ステップＢ２の解析結果のＣＰＵ１２が障害被疑部品である被疑割合７０％とステップＢ５の解析結果のＣＰＵ１２が障害被疑部品である被疑割合２０％とを単純平均して、ＣＰＵ１２が障害被疑部品である最終的な被疑割合を４５％と決定する。
【００９９】
つまり、第４番目の例に示すように、両者の被疑割合を単純平均した場合であっても、ステップＢ２とステップＢ５との被疑割合の設定基準を異なるようにし、解析結果の信頼性がより高いステップＢ５により大きな差異を持たせるように被疑割合を設定することにより、両者を単純平均してマージした場合であっても、例えば、ＣＰＵ１１の被疑割合が５５％、ＣＰＵ１２の被疑割合が４５％と、ステップＢ５における解析結果であるＣＰＵ１１が故障の可能性が高いとの結果を、マージ後の最終的な被疑割合として得ることができる。
【０１００】
従来の障害処理技術においては、インターフェース回路５に関するリンク障害が検出された場合であっても、図５（Ａ）のステップＡ２に示したように、ＢＩＯＳ６１により障害検出元の部品すなわちＣＰＵ１１の状態のみを解析し、かつ、故障の被疑部品として、図２の故障被疑部品８４に示したように、障害検出元のＣＰＵ１１か通信先のＣＰＵ１２かのいずれかしか指摘することができなかった。
【０１０１】
しかし、ＢＭＣ３に障害処理機能を備えた本実施形態においては、ステップＢ５において通信先の部品すなわちＣＰＵ１２の状態を解析することによって得られた解析結果と、ステップＢ２の解析結果とを、ステップＢ６においてマージ処理を行い、最終的な故障の被疑割合を決定するので、ＣＰＵ１１，１２の両方のＣＰＵについて故障の可能性の程度を示す被疑部位を、より精度良く指摘することができるようになる。
【０１０２】
また、前述の第４番目の例のように、ステップＢ２の解析結果においては、ＣＰＵ１２を故障の被疑部品としていた場合であっても、ステップＢ２の解析結果よりもより信頼度が高いステップＢ５の解析結果とマージすることによって、ステップＢ５における解析結果として故障の可能性が高いと判定したＣＰＵ１１を故障の被疑部品として指摘する最終的な被疑割合をより多くし、かつ、ＣＰＵ１２の最終的な被疑割合をより少なくすることができる。
【０１０３】
さらに、各ＣＰＵ１１，１２の状態を解析することにより、故障検出元のＣＰＵ１１だけで判断した障害被疑部品の被疑割合よりも、より多くのバリエーションで、障害被疑部品に関する被疑部位の指摘を行うことができるようになるので、故障部位の判定に関する信頼度と精度とを向上させることができる。
【０１０４】
なお、ステップＢ２の解析結果とステップＢ５の解析結果とのマージを行うためにあらかじめ定めた規則としては、前述したような単純平均を行う場合のみに限るものではない。例えば、両者の被疑割合の加重平均を行うことにより、より信頼度が高いステップＢ５における解析結果がより重み付けされた結果が得られるようにしても良い。
【０１０５】
図５（Ｂ）のフローチャートに戻って、最後に、ステップＢ６のマージ結果によって決定した障害被疑部品の最終的な被疑割合に応じて、故障の部位を決定して、決定した故障部品を指摘するとともに、当該故障部品に対する処置を実施する（ステップＢ７）。例えば、マージ結果として、障害検出元のＣＰＵ１１が障害被疑部品であるとする最終的な被疑割合が、通信先のＣＰＵ１２の最終的な被疑割合よりも大きい場合には、ＣＰＵ１１が故障の部品であると判定して、当該ＣＰＵ１１を、情報処理装置の運用系から切り離して、情報処理装置を再起動する。この結果、故障のＣＰＵ１１のＢＩＯＳ６１は、情報処理装置の立ち上げ中に動作することがなくなるので、ＢＩＯＳ６１が故障をさらに検出してしまうことがなくなり、立ち上げ動作を順調に進めることができるようになる。
【０１０６】
次に、インターフェース回路５に関するリンク障害以外の障害を検出した場合の動作についてさらに説明する。インターフェース回路５に関するリンク障害以外の障害とは、ＢＩＯＳ６１が、ＣＰＵ１１の初期化動作中であっても、インターフェース回路５を介して通信先のＣＰＵ１２との送受信動作を行う場面ではないＣＰＵ１１内部の初期設定動作中に、ＣＰＵ１１側の内部障害を検出した場合などである。
【０１０７】
まず、図５（Ａ）のフローチャートにおいて、ＣＰＵ１１の立ち上げ処理中に、かかるＣＰＵ１１側の内部障害を、ＣＰＵ１１上で動作するＢＩＯＳ６１が検出すると、前述したように、障害処理が起動されて(ステップＡ１)、障害を検出したときに処理対象だった部品、リンク障害であるか否か、故障の被疑部品に基づいて、図２に示すエラーコード表を参照して、該当するエラーコードを抽出する（ステップＡ２）。例えば、ＣＰＵ１１が処理対象の部品であり、インターフェース回路５を介した通信先のＣＰＵ１２との間の送受信動作に関するリンク障害でなく、ＣＰＵ１１側の内部処理中においてＣＰＵ１１側の内部障害を検出した場合、障害被疑部品はＣＰＵ１１であり、該当するエラーコードは、図２のエラーコード表に示すように、'0x0000_1001'になる。
【０１０８】
次いで、図５（Ａ）のステップＡ２における障害内容の分析処理として、リンク障害ではないことを分析しているので（ステップＡ３のｎｏ）、通信先となる部品を示すコードを含まないエラーコードのみからなる障害検出通知をＢＭＣ３にインターフェース回路４１を介して送信する（ステップＡ５）。例えば、障害を検出した処理対象部品がＣＰＵ１１であり、ＣＰＵ１１が障害被疑部品であり、リンク障害ではない場合には、前述のように、ビット［０：３１］のエラーコードが'0x0000_1001'であり、図６のフォーマットの場合にはビット［３２：４７］の通信先の部品コードがall'０'の'0x0000'を設定した障害検出通知を送信して、ＢＭＣ３に対して、障害被疑部位を解析することを依頼することになる。
【０１０９】
次に、図５（Ｂ）に示すように、ＢＭＣ３上で動作するＢＭＣＦＷ７が、インターフェース回路４１を介して、ＢＩＯＳ６１から障害検出通知を受信すると（ステップＢ１）、故障部位を特定するための障害処理が起動され、ＢＭＣＦＷ７は、受信した障害検出通知に含まれているエラーコードに基づいて、図４に示した障害表を参照して、該エラーコードに該当する障害被疑部品と障害被疑割合とを抽出する（ステップＢ２）。
【０１１０】
例えば、受信した障害検出通知に含まれているエラーコードが'0x0000_1001'であった場合は、図４の障害表の被疑部品１  １０２、被疑部品２  １０３、被疑割合１  １０４、被疑割合２  １０５に示すように、故障の部位を示す障害被疑部品がＣＰＵ１１である被疑割合が１００％であり、故障の部位を示す障害被疑部品がＣＰＵ１２である被疑割合が０％であることを、故障部位の可能性を示す第１の被疑割合として抽出する。
【０１１１】
次に、ＢＭＣＦＷ７は、受信した障害検出通知内のリンク障害か否かを示す情報を参照して、検出された障害がリンク障害であったか否かをチェックし、通信先の部品を調査する必要があるか否かを判定する（ステップＢ３）。ここで、障害検出通知が図６に示すようなフォーマットであれば、前述したように、ビット[３２：４７]には、リンク障害ではない場合には、'0x0000'が設定されている。
【０１１２】
検出した障害が、リンク障害ではなく、通信先の部品を調査する必要がないと判定した場合には（ステップＢ３のｎｏ）、通信先の部品を調査することなく、ＢＩＯＳ６１からの障害検出通知のみに基づいて、故障の被疑部位を指摘して処置するために、直ちにステップＢ７に移行し、ステップＢ２にて障害表から抽出した故障の被疑割合に応じて、故障の部品を決定して、決定した故障部品を指摘するとともに、当該故障部品に対する処置を実施する（ステップＢ７）。
【０１１３】
つまり、受信した障害検出通知に含まれているエラーコードが'0x0000_1001'であった場合には、ステップＢ２の解析結果として、ＣＰＵ１１が障害被疑部品の被疑割合が１００％になっているので、ＣＰＵ１１が故障の部品であると判定して、当該ＣＰＵ１１を、情報処理装置の運用系から切り離して、情報処理装置を再起動する。この結果、故障のＣＰＵ１１のＢＩＯＳ６１は、情報処理装置の立ち上げ中に動作することがなくなるので、ＢＩＯＳ６１が故障をさらに検出してしまうことがなくなり、立ち上げ動作を順調に進めることができるようになる。
【０１１４】
（本実施形態の効果の説明）
以上に詳細に説明したように、本実施形態においては次のような効果が得られる。
【０１１５】
従来の技術においては、情報処理装置の立ち上げ中に、ＣＰＵ１１のＢＩＯＳ６１が、インターフェース回路５に関するリンク障害を検出した場合、ＣＰＵ１２との通信が断絶状態に陥るため、ＣＰＵ１１側の情報のみに基づいて、障害部位の解析を行わなければならなかった。
【０１１６】
これに対して、本実施形態においては、リンク障害を検出したＣＰＵ１１のＢＩＯＳ６１が、ＢＭＣ３に対して障害検出通知を行う際に、障害の被疑部品の解析結果を示すエラーコードを通知する他に、通信先のＣＰＵ１２の状態の調査を依頼することにより、該調査依頼を受け取ったＢＭＣ３は、通信先のＣＰＵ１２にアクセスして、ＣＰＵ１１のＢＩＯＳ６１からはアクセスすることができなかった通信先のＣＰＵ１２の状態を解析することができるので、故障の被疑部品の判定結果に関する信頼度をより向上させることができる。
【０１１７】
また、本実施形態においては、障害検出元のＣＰＵ１１のＢＩＯＳ６１が自部品のＣＰＵ１１の状態を解析した結果とＢＭＣ３が通知先の部品のＣＰＵ１２の状態を解析した結果との双方を参照して適宜マージすることができるので、従来の技術よりも、高い信頼度で、故障の部位を指摘することができる。而して、検出した障害に関して、より詳細な被疑部位の指摘を行うことも可能となり、故障指摘精度を向上させることができる。
【０１１８】
つまり、本実施形態の効果を纏めると、次の通りである。
【０１１９】
第１の効果は、情報処理装置の立ち上げ中に、ＣＰＵ１１上で動作するＢＩＯＳ６１が検出したインターフェース回路５に関するリンク障害についても、精度良く故障の被疑部位を指摘することができることにある。その理由は、ＢＩＯＳ６１から障害検出通知を受信したＢＭＣ３が、ＢＩＯＳ６１が解析した障害被疑部品の情報のみならず、リンク障害が発生したインターフェース回路５の通信先の部品（例えばＣＰＵ１２）に直接アクセスして取得した通信先の部品の状態の解析結果から得られる障害被疑部品の情報をも用いて、故障部位の解析を行うことができるためである。
【０１２０】
第２の効果は、情報処理装置の立ち上げ中にＢＩＯＳ６１からはアクセスすることができない部品（例えばＣＰＵ１２）の状態を把握することができることにある。その理由は、ＢＩＯＳ６１が、ＢＭＣ３に対して、調査依頼として、アクセスしたい部品（例えばＣＰＵ１２）を通知するコードを障害検出通知に含めて送信し、該障害検出通知を受け取ったＢＭＣ３により、調査依頼があった部品（例えばＣＰＵ１２）に直接アクセスする仕組みを備えているためである。
【０１２１】
第３の効果は、情報処理装置の立ち上げ時間を短縮することができることにある。その理由は、情報処理装置の立ち上げ時に、インターフェース回路に関するリンク障害が検出された場合であっても、ＢＭＣ３において精度良く故障の被疑部位の指摘を行うことができるので、同じ障害に対して、切り離し処理とリブート動作とが繰り返されることを防止することができるためである。
【０１２２】
（本発明の他の実施形態）
次に、本発明による情報処理装置の構成として、図１に示した前述の実施形態とは異なる他の構成例について、図８を用いて説明する。図８は、本発明による情報処理装置のブロック構成の図１とは異なる他の例を示すブロック構成図である。図８に示す情報処理装置は、図１の場合とは異なり、情報処理装置を構成する部品として、ＣＰＵ１１，１２の２個のみではなく、複数個（図８の場合は４個）のＣＰＵと、複数個（図８の場合は２個）のＩＯ Ｈｕｂ（ＩＯ機器の接続用制御装置）と、複数個（図８の場合は２個）のＮＣ（Network Controller）とから構成され、各部品が、ベースボード管理コントローラＢＭＣにそれぞれのインターフェース回路を介して接続され、ベースボード管理コントローラＢＭＣが、各部品それぞれに備えているステータスレジスタに直接アクセスすることができる構成例を示している。
【０１２３】
つまり、図８に示す情報処理装置においては、ＣＰＵ１１とＣＰＵ１２とはインターフェース回路５１で接続されており、かつ、ＣＰＵ１１，１２それぞれは、インターフェース回路２２１，２２２で同一のＩＯ Ｈｕｂ２０１と接続され、かつ、インターフェース回路２３１，２３２で同一のＮＣ２１１と接続されている。同様に、ＣＰＵ１３とＣＰＵ１４とはインターフェース回路５２で接続されており、かつ、ＣＰＵ１３，１４それぞれは、インターフェース回路２２３，２２４で同一のＩＯ Ｈｕｂ２０２と接続され、かつ、インターフェース回路２３３，２３４で同一のＮＣ２１２と接続されている。
【０１２４】
また、ＩＯ Ｈｕｂ２０１とＮＣ２１１とはインターフェース回路５３で接続され、ＩＯ Ｈｕｂ２０２とＮＣ２１２とはインターフェース回路５４で接続されており、ＮＣ２１１とＮＣ２１２とはインターフェース回路５５で接続されている。
【０１２５】
また、ＣＰＵ１１，１２，１３，１４の各部品には、ＢＩＯＳ６１,６２,６３，６４がそれぞれ内蔵されている。さらに、ＣＰＵ１１，１２，１３，１４、ＩＯ Ｈｕｂ２０１，２０２、ＮＣ２１１，２１２の各部品には、ステータスレジスタ２１，２２，２３，２４，２５，２６，２７，２８がそれぞれ備えられている。また、ＣＰＵ１１，１２，１３，１４、ＩＯ Ｈｕｂ２０１，２０２、ＮＣ２１１，２１２の各部品は、それぞれ、インターフェース回路４１，４２，４３，４４，４５，４６，４７，４８でＢＭＣ３に接続されている。
【０１２６】
図８のごとき構成の情報処理装置において、例えば、ＣＰＵ１１上で動作するＢＩＯＳ６１は、情報処理装置の立ち上げ中に、インターフェース回路５１〜５５，２２１〜２２４，２３１〜２３４のリンクアップを行う。ここで、図８のごとき構成であっても、インターフェース回路５１〜５５，２２１〜２２４，２３１〜２３４のいずれかのリンクアップ中にインターフェース障害が発生した場合、該インターフェース障害に対して、前述した実施形態の場合と全く同様の障害処理を行うことによって、障害被疑部品の決定と最終的な被疑割合の決定とを行い、故障部位の特定を精度良く行うことができる。
【０１２７】
なお、本発明に係る情報処理装置は、図１のＣＰＵ１１，１２の２個の部品から情報処理装置が構成される場合や、図８のＣＰＵ１１，１２，１３，１４、ＩＯ Ｈｕｂ２０１，２０２、ＮＣ２１１，２１２の８個の部品から情報処理装置が構成される場合に限るものではなく、所望の任意の個数の部品からなる情報処理装置を対象とすることができる。
【０１２８】
さらに、情報処理装置の構成についても、ＣＰＵ１１，１２，１３，１４、ＩＯ Ｈｕｂ２０１，２０２、ＮＣ２１１，２１２等の各部品がＢＭＣ３と接続するためのインターフェース回路を有し、各部品に内蔵のＢＩＯＳ６１,６２,６３，６４，６５，６６，６７，６８がＢＭＣ３に内蔵のＢＭＣＦＷ７と連携して、各部品から前述の実施形態にて説明したような障害検出通知をＢＭＣ３に送信することが可能な構成であれば、図１の構成や図８の構成に限るものではない。
【０１２９】
また、以上の実施形態の説明においては、ＣＰＵ１１上で動作するＢＩＯＳ６１が情報処理装置の立ち上げを行う例を示したが、他のＣＰＵ上で動作するＢＩＯＳを用いて情報処理装置の立ち上げを行わせることも可能である。
【０１３０】
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【符号の説明】
【０１３１】
３        ＢＭＣ
５        インターフェース回路
７        ＢＭＣＦＷ
１１      ＣＰＵ
１２      ＣＰＵ
１３      ＣＰＵ
１４      ＣＰＵ
２１      ステータスレジスタ
２２      ステータスレジスタ
２３      ステータスレジスタ
２４      ステータスレジスタ
２５      ステータスレジスタ
２６      ステータスレジスタ
２７      ステータスレジスタ
２８      ステータスレジスタ
４１      インターフェース回路
４２      インターフェース回路
４３      インターフェース回路
４４      インターフェース回路
４５      インターフェース回路
４６      インターフェース回路
４７      インターフェース回路
４８      インターフェース回路
５１      インターフェース回路
５２      インターフェース回路
５３      インターフェース回路
５４      インターフェース回路
５５      インターフェース回路
６１      ＢＩＯＳ
６２      ＢＩＯＳ
６３      ＢＩＯＳ
６４      ＢＩＯＳ
８１      エラーコード
８２      処理対象部品
８３      リンク障害
８４      故障被疑部品
９１      Ｂｉｔ欄
９２      説明欄
９３      内容欄
１０１    エラーコード
１０２    被疑部品１
１０３    被疑部品２
１０４    被疑割合１
１０５    被疑割合２
１１１    Ｂｉｔ欄
１１２    説明欄
１１３    内容欄
１２１    Ｂｉｔ欄
１２２    説明欄
１２３    内容欄
２０１    ＩＯ Ｈｕｂ
２０２    ＩＯ Ｈｕｂ
２１１    ＮＣ
２１２    ＮＣ
２２１    インターフェース回路
２２２    インターフェース回路
２２３    インターフェース回路
２２４    インターフェース回路
２３１    インターフェース回路
２３２    インターフェース回路
２３３    インターフェース回路
２３４    インターフェース回路
【図１】
0005541519.tif 000002
【図２】
0005541519.tif 000003
【図３】
0005541519.tif 000004
【図４】
0005541519.tif 000005
【図５】
0005541519.tif 000006
【図６】
0005541519.tif 000007
【図７】
0005541519.tif 000008
【図８】
0005541519.tif 000009
【図９】
0005541519.tif 000010