(57)【要約】【課題】マルチプロセッサシステムにおける障害トレース取得の確実性を向上させる障害トレース装置を提供する。【解決手段】本願発明の障害トレース装置は、複数の中央処理装置の各々に対応して設けられ、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として出力するトレース手段と、前記トレース手段から出力された前記トレース情報を記憶する記憶手段と、を備える。【選択図】      図１
2014048785.tif 000002
【特許請求の範囲】
【請求項１】
複数の中央処理装置の各々に対応して設けられ、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として出力するトレース手段と、
前記トレース手段から出力された前記トレース情報を記憶する記憶手段と、
を備える障害トレース装置。
【請求項２】
前記トレース手段の各々は、対応する前記中央処理装置で発生した事象を契機として、当該中央処理装置の前記トレース情報を出力すると共に、他の全ての前記トレース手段に対して、前記トレース情報を出力するように指示し、また、他の前記トレース手段から当該指示を受けると、対応する前記トレース情報を出力する
請求項１の障害トレース装置。
【請求項３】
前記中央処理装置で発生する割り込みの一部について、前記割り込みの種別の一覧情報を格納した割り込み種別格納テーブルをさらに備え、
前記トレース手段は、前記中央処理装置で割り込みが発生した場合に、前記中央処理装置から前記割り込みの種別を受信し、前記割り込み種別格納テーブルを参照して、前記割り込みの種別が、前記割り込み種別格納テーブルに登録されている場合、前記トレース情報を出力する
請求項１乃至２の障害トレース装置。
【請求項４】
何れかの前記中央処理装置から障害発生の報告を受信して障害を検知した後、前記中央処理装置内のレジスタの値と、前記記憶手段に格納された前記トレース情報を抽出して、抽出した情報を基に障害解析を行うサービスプロセッサをさらに備える
請求項１乃至３の障害トレース装置。
【請求項５】
前記サービスプロセッサは、周期的に前記中央処理装置から発行された通信を受信し、何れかの前記中央処理装置に関して、最後に前記通信を受信してから、所定の時間内に前記通信を受信できない場合、当該中央処理装置の障害発生を検知する
請求項１乃至４の障害トレース装置。
【請求項６】
前記トレース手段は、前記トレース情報を周期的に出力し、
前記サービスプロセッサは、周期的に前記記憶手段を参照し、何れかの前記中央処理装置に関する前記トレース情報について、所定の期間更新されていない場合、当該中央処理装置の障害発生を検知する
請求項１乃至５の障害トレース装置。
【請求項７】
請求項１乃至６の障害トレース装置と、前記中央処理装置とを包含する障害トレースシステム。
【請求項８】
複数の中央処理装置の各々に対応して設けられたトレース手段が、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として記憶域に記憶する
障害トレース方法。
【請求項９】
複数の中央処理装置の各々に対応して設けられたトレース用プロセッサに、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として記憶域に記憶する記憶処理を実行させる
障害トレースプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、マルチプロセッサシステムにおける障害検出、障害解析を行うための障害トレース装置、障害トレースシステム、障害トレース方法、及び、障害トレースプログラムに関する。
【背景技術】
【０００２】
近年の情報処理装置は、高い情報処理能力へのユーザニーズを満たすため、マルチプロセッサの構成をとるものが増加してきている。また、高い情報処理能力に加えて、高可用性、高信頼性に対するユーザニーズも年々増加している。したがって、高可用性、高信頼性を実現したマルチプロセッサシステムを提供するための技術が、今後益々重要となる。
【０００３】
しかしながら、マルチプロセッサシステムにおいては、例えばプロセッサ間の通信経路において障害が発生した場合、あるいは、あるプロセッサの障害で発生したエラーデータが、別のプロセッサに伝播するような場合は、見かけ上、複数のプロセッサで障害が発生していることになり、実際にどのプロセッサで障害が発生したのかを特定することは容易ではない。障害プロセッサの特定に時間がかかると、システムを障害から復旧させる時間が増加することとなり、高可用性、高信頼性へのユーザニーズを満たすことが困難となる。したがって、マルチプロセッサシステムにおける障害トレースを、正確に行うことができるような技術が求められている。
【０００４】
このようなマルチプロセッサにおける障害トレースに関する関連技術として、特許文献１には、あるプロセッサＡで検出された他のプロセッサＢとのインタフェース回路に関するリンク障害について、ベースボード管理コントローラが、プロセッサＡ内のステータス情報のみならず、プロセッサＢ内のステータス情報も用いて障害部位の解析を行うための装置が公開されている。
【０００５】
また、特許文献２には、複数のコントローラ（入出力制御装置）を含むマルチプロセッサシステムにおいて、各コントローラが取得したトレースデータの時間的な相互関係を正しく把握できる時刻情報を、簡易な構成で得るためのシステムが公開されている。
【０００６】
また、特許文献３には、イベントドリブン型のデータ収集ツールにおいて、トレース事象の発生頻度、及び、トレースデータ量を観測し、このデータに基づいて、必要となるバッファ量を予測して確保するための方式が公開されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−０７９２６６号公報
【特許文献２】特開２００９−２８９１３１号公報
【特許文献３】特開昭６２−１５２０４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
マルチプロセッサシステムにおいて、例えば、障害検出、障害解析を行うためのトレースデータをプロセッサから採取するトレーサ自身に障害が発生した場合は、障害検出、障害解析を正確に行うことが困難となる。
【０００９】
前述の特許文献１乃至３は、上述の課題を解決するためのものではなく、マルチプロセッサシステムにおける障害トレース取得の確実性を向上させるための技術として十分なものであるとは言えない。
【００１０】
本願発明の目的は、上述の課題を解決した障害トレース装置、障害トレースシステム、障害トレース方法、及び、障害トレースプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本願発明の一実施形態の障害トレース装置は、複数の中央処理装置の各々に対応して設けられ、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として出力するトレース手段と、前記トレース手段から出力された前記トレース情報を記憶する記憶手段と、を備える。
【００１２】
本願発明の一実施形態の障害トレース方法は、複数の中央処理装置の各々に対応して設けられたトレース手段が、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として記憶域に記憶する。
【００１３】
本願発明の一実施形態の障害トレースプログラムは、複数の中央処理装置の各々に対応して設けられたトレース用プロセッサに、対応する前記中央処理装置の状態情報、及び、時刻をトレース情報として記憶域に記憶する記憶処理を実行させる。
【発明の効果】
【００１４】
本願発明は、マルチプロセッサシステムにおける障害トレース取得の確実性を向上させることができるようにする。
【図面の簡単な説明】
【００１５】
【図１】本願発明の第１の実施形態の障害トレースシステムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態におけるトレース部の動作を示すフローチャートである。
【図３】本願発明の第１の実施形態の動作を示すフローチャートである（ＣＰＵにおける割り込み発生で障害を検知するケース）。
【図４】本願発明の第１の実施形態の動作を示すフローチャートである（サービスプロセッサのＣＰＵ監視で障害を検知するケース）。
【図５】本願発明の第１の実施形態におけるＣＰＵストールが発生した場合の記憶部に記憶されたトレース情報の構成例である。
【図６】本願発明の第１の実施形態におけるサービスプロセッサでの障害解析例である。
【図７】本願発明の第２の実施形態の障害トレースシステムの構成を示すブロック図である。
【図８】本願発明の第２の実施形態の動作を示すフローチャートである
【図９】本願発明の第２の実施形態におけるＣＰＵストールが発生した場合の記憶部に記憶されたトレース情報の構成例である。
【図１０】本願発明の第３の実施形態の障害トレース装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
本願発明の第一の実施の形態について図面を参照して詳細に説明する。
【００１７】
図１は本実施形態の障害トレースシステムの構成を示すブロック図である。
【００１８】
本実施形態の障害トレースシステム１は、障害トレース装置１０と、ＣＰＵ２０乃至３０とを包含している。ＣＰＵ２０乃至３０は、演算処理を行うプロセッサであり、互いに通信を行う。
【００１９】
ＣＰＵ２０乃至３０においては、それぞれ、動作中にハードウェアやソフトウェアから様々な割り込みが発生する。割り込みの種類としては、ＣＰＵ２０乃至３０のハードウェアで発生した障害、システム内における部品のホットプラグ、ＣＰＵ２０乃至３０のＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ Ｓｙｓｔｅｍ）が設定した割り込み等がある。ＣＰＵ２０乃至３０は、割り込みが発生すると、割り込みの種別に対応した処理を実施して、割り込みが発生した時刻と、割り込みの種別の情報を、障害トレース装置１０へ送信する。
【００２０】
障害トレース装置１０は、トレース部１２０乃至１３０と、記憶部１２１乃至１３１と、ＩＯコントローラ１４０と、サービスプロセッサ１５０と、割り込み種別格納テーブル１６０とを包含している。
【００２１】
トレース部１２０乃至１３０は、それぞれ、ＣＰＵ２０乃至３０から、割り込み発生時刻と、割り込みの種別の情報を受信し、受信した割り込みの種別の情報が、割り込み種別格納テーブル１６０に登録されているか否かを確認する。割り込み種別格納テーブル１６０は、ＣＰＵ２０乃至３０で割り込みが発生した場合、後々の障害解析等のために、ＣＰＵ２０乃至３０における状態情報を採取して、トレース情報として記録する必要がある割り込みの種別の一覧を定義したテーブルである。
【００２２】
例えば、ＣＰＵ２０において割り込みが発生し、当該割り込みの種別の情報が、割り込み種別格納テーブル１６０に登録されている場合、トレース部１２０は、トレース情報を記録する必要がある割り込みが発生したことを、割り込み発生時刻の情報とともに、トレース部１３０に送信する。ＣＰＵ３０において、割り込み種別格納テーブル１６０に登録されている割り込みが発生した場合は、トレース部１３０が、トレース部１２０に対して同様の処理を行う。
【００２３】
トレース部１２０乃至１３０は同期して、それぞれ、ＣＰＵ２０乃至３０における状態情報をＣＰＵ２０乃至３０から採取して、割り込み発生時刻の情報とともに、トレース情報として、記憶部１２１乃至１３１に送信する。トレース部１２０乃至１３０は、記憶部１２１乃至１３０から、トレース情報記憶処理完了を受信した後、トレース情報記憶処理完了をＣＰＵ２０乃至３０へ送信する。
【００２４】
トレース部１２０乃至１３０の形態としては、ＣＰＵ２０乃至３０の近傍に配置されたＬＳＩ内の論理回路の場合もあれば、ＣＰＵ２０乃至３０と同一ＬＳＩ内に形成された論理回路の場合もあれば、ＣＰＵ２０乃至３０の近傍に配置された別のプロセッサのＲＯＭに格納されたプログラムの場合もあれば、ＣＰＵ２０乃至３０で実行されるプログラムの場合もある。
【００２５】
トレース部１２０の動作のフローチャートを図２に示す。
【００２６】
トレース部１２０は、ＣＰＵ２０から割り込みの発生を受信した場合（Ｓ００１でＹｅｓ）、割り込み種別格納テーブル１６０を参照して、ＣＰＵ２０から受信した割り込みの種別の情報が、登録されているか否かを確認する。ＣＰＵ２０から割り込みの発生を受信しない場合（Ｓ００１でＮｏ）、処理はＳ００６へ進む。
【００２７】
トレース部１２０は、割り込み種別格納テーブル１６０を参照して、ＣＰＵ２０から受信した割り込みの種別の情報が、登録されているか否かを確認する（Ｓ００２）。割り込みの種別の情報が登録されている場合（Ｓ００３でＹｅｓ）、トレース部１２０は、トレース情報の出力処理が必要な割り込みが発生したことを、割り込み発生時刻の情報とともに、トレース部１３０に送信する（Ｓ００４）。割り込みの種別の情報が登録されていない場合（Ｓ００３でＮｏ）、処理はＳ００１へ戻る。
【００２８】
トレース部１３０からトレース情報の採取了解を受信した場合（Ｓ００５でＹｅｓ）、トレース部１２０は、ＣＰＵ２０における状態情報を採取して、割り込み発生時刻の情報とともに、記憶部１２１に送信し（Ｓ００８）、全体の処理は終了する。トレース部１３０からトレース情報の採取了解を受信していない場合（Ｓ００５でＮｏ）、処理はＳ００５で待機する。
【００２９】
トレース部１２０は、トレース部１３０からトレース情報採取の指示を受信した場合（Ｓ００６でＹｅｓ）、トレース部１２０は、トレース情報の採取を了解したことを、トレース部１３０に送信し（Ｓ００７）、処理はＳ００８へ進む。トレース部１２０は、トレース部１３０からトレース情報採取の指示を受信していない場合（Ｓ００６でＮｏ）、処理はＳ００１へ戻る。
【００３０】
トレース部１３０の動作フローも、上述と同様である。
【００３１】
記憶部１２１乃至１３１は、それぞれ、トレース部１２０乃至１３０から受信したＣＰＵ２０乃至３０における状態情報を、割り込み発生時刻に対応付けて、トレース情報として記憶する。記憶部１２１乃至１３１は、トレース情報の記憶処理が完了すると、トレース情報記憶処理完了を、トレース部１２０乃至１３０へ送信する。
【００３２】
記憶部１２１乃至１３１の形態としては、ＣＰＵ２０乃至３０の近傍に配置された専用の不揮発性メモリの場合もあれば、ＣＰＵ２０乃至３０と同一ＬＳＩ内に形成されたメモリの場合もあれば、ＣＰＵ２０乃至３０がアクセスする主記憶の一部領域の場合もある。
【００３３】
ＩＯコントローラ１４０は、ＣＰＵ２０乃至３０から、サービスプロセッサ１５０、及び、ディスク装置等の周辺機器（図示せず）へのアクセスの制御を行う。ＩＯコントローラ１４０は、ＣＰＵ２０乃至３０からサービスプロセッサ１５０へのアクセスリクエストを受信して、サービスプロセッサへアクセスリクエストを送信する。
【００３４】
サービスプロセッサ１５０は、ＣＰＵ２０乃至３０において障害が発生した場合に、障害解析を行い、障害対応処理を実施するプロセッサである。サービスプロセッサ１５０は、ＣＰＵ２０乃至３０から、トレース情報が記憶部１２１乃至１３１に記憶された割り込みが発生したことを、割り込み発生時刻の情報とともに、ＩＯコントローラ１４０を介して受信する。
【００３５】
サービスプロセッサ１５０は、障害解析を行うため、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バス１７０を介して、ＣＰＵ２０乃至３０から内部レジスタの値を採取し、記憶部１２１乃至１３１から割り込み発生時刻でのＣＰＵ２０乃至３０における状態情報を採取する。サービスプロセッサ１５０は、上述で採取した情報を基に障害解析処理を行い、障害箇所が特定できた場合は、障害箇所の切り離し等の障害対応処理を実施する。
【００３６】
サービスプロセッサ１５０は、ＣＰＵ２０乃至３０におけるストールの発生を検知するために、ＩＯコントローラ１４０を介して、ＣＰＵ２０乃至３０へ周期的に通信し、通信後、所定の時間内にＣＰＵ２０乃至３０からの返信があるか否かを確認する。ＣＰＵ２０乃至３０からの返信が、所定の時間内に確認できない場合、サービスプロセッサ１５０は、Ｉ２Ｃバス１７０を介して、ＣＰＵ２０乃至３０から内部レジスタの値を採取し、記憶部１２１乃至１３１からＣＰＵ２０乃至３０における状態情報を採取する。サービスプロセッサ１５０は、上述と同様に、障害解析処理、障害対応処理を実施する。
【００３７】
上述の場合、返信が確認できないＣＰＵがストール状態となっている可能性が高い。ＣＰＵストールが発生した場合の記憶部１２１乃至１３１に記憶されたトレース情報の構成例を図５に示す。記憶部１２１内のトレース情報１２２、及び、記憶部１３１内のトレース情報１３２において、時刻の項目は、ＣＰＵ２０乃至３０のいずれかで、トレース情報の記録が必要な割り込みが発生した時刻、状態情報の項目は、対応する時刻でのＣＰＵ２０乃至３０における状態情報を示している。
【００３８】
ＣＰＵ２０乃至３０のいずれかでトレース情報の記録が必要な割り込みが発生した場合、トレース部１２０乃至１３０は同期してＣＰＵ２０乃至３０における状態情報を採取するため、同一時刻におけるＣＰＵ２０乃至３０での状態情報が、記憶部１２１乃至１２２に記憶されている。
【００３９】
時刻ｔ４以降にＣＰＵ２０がストール状態になると、時刻ｔ４以降はトレース部１２０がＣＰＵ２０から採取する状態情報は更新されなくなる。したがって、時刻ｔ５乃至ｔ７で、ＣＰＵ３０でトレース情報の記録が必要な割り込みが発生した場合、記憶部１３１内のトレース情報１３２における状態情報は更新を継続するが、記憶部１２１内のトレース情報１２２における状態情報は、時刻ｔ４での値と同じ値になる。
【００４０】
サービスプロサッサ１５０は、時刻ｔ４以降の記憶部１２１内のトレース情報１２２における状態情報が更新されていないことから、ＣＰＵ２０のストール状態を確認する。
【００４１】
サービスプロセッサ１５０における障害解析の例を図６に示す。サービスプロセッサ１５０における障害解析例１５１は、障害発生のケース毎の、サービスプロセッサ１５０の障害解析結果の一例をまとめたものである。
【００４２】
ケース１乃至２は、ＣＰＵ２０乃至３０のいずれかにおいて、障害に関わる割り込みが発生し、記憶部１２１乃至１３１のいずれにおいてもトレース情報の更新が継続して行われている場合である。この場合、サービスプロセッサ１５０は、障害に関わる割り込みが発生した方のＣＰＵを被疑部品と判定する。
【００４３】
ケース３乃至４は、ＣＰＵ２０乃至３０のいずれにおいても、障害に関わる割り込みが発生していなく、記憶部１２１乃至１３１のいずれかにおいて、トレース情報の更新が停止している場合である。この場合、トレース情報の更新が停止しているＣＰＵがストール状態となっている可能性が高く、サービスプロセッサ１５０は、トレース情報の更新が停止している方のＣＰＵを被疑部品と判定する。
【００４４】
ケース５乃至６は、ＣＰＵ２０乃至３０の両方において、障害に関わる割り込みが発生し、記憶部１２１乃至１３１のいずれかにおいて、トレース情報の更新が停止している場合である。この場合、ＣＰＵ２０乃至３０のいずれかで発生した障害の影響が、もう片方のＣＰＵに伝播して両方のＣＰＵで割り込みが発生し、障害の伝播の影響を受けたＣＰＵにおいてトレース情報の更新が停止している可能性がある。したがって、サービスプロセッサ１５０は、トレース情報の更新が停止している方のＣＰＵを被疑部品として特定はしないものの、当該ＣＰＵが被疑部品である可能性が高いと判定する。
【００４５】
次に図３、図４のフローチャートを参照して、本実施形態の動作について詳細に説明する。
【００４６】
図３は、ＣＰＵ２０における割り込み発生で、サービスプロセッサ１５０が障害を検知する場合のフローチャートである。
【００４７】
ＣＰＵ２０で割り込みが発生すると、ＣＰＵ２０は、割り込みが発生した時刻と、割り込みの種別の情報をトレース部１２０へ送信する（Ｓ１０１）。トレース部１２０は、割り込み種別格納テーブル１６０を参照して、ＣＰＵ２０から受信した割り込みの種別の情報が、登録されているか否かを確認する（Ｓ１０２）。割り込みの種別の情報が登録されている場合（Ｓ１０３でＹｅｓ）、トレース部１２０は、トレース情報の出力処理が必要な割り込みが発生したことを、割り込み発生時刻の情報とともに、トレース部１３０に送信する（Ｓ１０４）。割り込みの種別の情報が登録されていない場合（Ｓ１０３でＮｏ）、処理はＳ１０１へ戻る。
【００４８】
トレース部１２０乃至１３０は同期して、それぞれ、ＣＰＵ２０乃至３０における状態情報を採取して、割り込み発生時刻の情報とともに、記憶部１２１乃至１３１に送信する（Ｓ１０５）。記憶部１２１乃至１３１は、それぞれ、トレース部１２０乃至１３０から受信した状態情報を、割り込み発生時刻に対応付けて記憶し、トレース情報記憶処理完了をトレース部１２０乃至１３０へ送信する（Ｓ１０６）。トレース部１２０乃至１３０は、それぞれ、トレース情報記憶処理完了をＣＰＵ２０乃至３０へ送信する（Ｓ１０７）。
【００４９】
ＣＰＵ２０は、トレース情報が記憶部１２１に記憶された割り込みが発生したことを、割り込み発生時刻の情報とともに、ＩＯコントローラ１４０を介して、サービスプロセッサ１５０へ送信する（Ｓ１０８）。サービスプロセッサ１５０は、Ｉ２Ｃバス１７０を介して、ＣＰＵ２０乃至３０から内部レジスタの値を、記憶部１２１乃至１３１から割り込み発生時刻でのＣＰＵ２０乃至３０における状態情報を採取して、障害解析処理を行い、障害対応処理を実施して（Ｓ１０９）、全体の処理は終了する。
【００５０】
尚、ＣＰＵ３０における割り込み発生で、サービスプロセッサ１５０が障害を検知する場合の本実施形態の動作も同様である。
【００５１】
図４は、サービスプロセッサ１５０が、ＣＰＵ２０乃至３０を監視することで、障害を検知する場合のフローチャートである。
【００５２】
サービスプロセッサ１５０は、ＩＯコントローラ１４０を介して、ＣＰＵ２０乃至３０へ周期的に通信する（Ｓ２０１）。所定の時間内にＣＰＵ２０乃至３０から返信がある場合（Ｓ２０２でＹｅｓ）、処理はＳ２０１へ戻る。
【００５３】
所定の時間内にＣＰＵ２０乃至３０のいずれかから返信がない場合（Ｓ２０２でＮｏ）、サービスプロセッサ１５０は、Ｉ２Ｃバス１７０を介して、ＣＰＵ２０乃至３０から内部レジスタの値を、記憶部１２１乃至１３１からＣＰＵ２０乃至３０における状態情報を採取して、障害解析処理を行い、障害対応処理を実施して（Ｓ２０３）、全体の処理は終了する。
【００５４】
本実施形態には、マルチプロセッサシステムにおける障害トレース取得の確実性を向上させる効果がある。その第一の理由は、ＣＰＵ２０乃至３０の内部、もしくはその近傍に設けられたトレース部１２０乃至１３０が、ＣＰＵ２０乃至３０での割り込み発生を契機に、ＣＰＵ２０乃至３０における状態情報を採取するからである。
【００５５】
従来のマルチプロセッサシステムにおいては、障害解析のためのトレース部を、各ＣＰＵからアクセス可能なように、システム内の共用のハードウェア資産上に実装していたが、この場合、特にＣＰＵ数の多いシステムでは、トレース部からの距離が遠くなるＣＰＵも存在する。ＣＰＵとトレース部との距離が遠くなれば、通信経路で障害が発生する確率も高くなり、当該ＣＰＵに関するトレース情報の採取ができなくなる。
【００５６】
また、システム内においてトレース部が１つしかないため、トレース部に障害が発生した場合は、全てのＣＰＵに関するトレース情報の採取ができなくなる。
【００５７】
本実施形態では、各ＣＰＵの近傍もしくは内部の論理回路、あるいは、各ＣＰＵが実行するプログラムとしてトレース部を実装するため、上述の通信経路での障害発生の問題を回避することが可能となる。また、ＣＰＵ毎にトレース部を備えているため、いずれかのＣＰＵのトレース部に障害が発生し、当該ＣＰＵのトレース情報を採取できない状態になったとしても、当該ＣＰＵを除くＣＰＵのトレース部が採取したトレース情報を基に、サービスプロセッサが障害解析を行うことが可能となる。
【００５８】
さらに、上述の効果の第二の理由は、サービスプロセッサ１５０が、周期的にＣＰＵ２０乃至３０から通信を受信するようにすることで、ＣＰＵ２０乃至３０で発生したストール状態を検知するからである。
【００５９】
障害の発生によりＣＰＵがストール状態になった場合、ＣＰＵから障害報告が行われないため、サービスプロセッサが迅速に障害の検知を行うことは困難である。本実施形態では、サービスプロセッサが周期的にＣＰＵと通信し、所定の時間内にＣＰＵからの返信がない場合、サービスプロセッサがトレース情報を確認することで、確実かつ迅速に障害をトレースし、障害対応処理を行うことが可能となる。
＜第二の実施形態＞
次に、本願発明の第二の実施形態について図面を参照して詳細に説明する。
【００６０】
図７は本願発明の第二の実施形態の障害トレースシステムの構成を示すブロック図である。本実施形態の障害トレースシステム１は、第一の実施形態と同様に、障害トレース装置１０と、ＣＰＵ２０乃至３０とを包含している。
【００６１】
障害トレース装置１０は、第一の実施形態における割り込み種別格納テーブル１６０を備えていない点を除いては、第一の実施形態の障害トレース装置１０と同様の構成である。
【００６２】
トレース部１２０乃至１３０は同期して、それぞれ、ＣＰＵ２０乃至３０における状態情報を周期的に採取して、情報採取時刻の情報とともに、トレース情報として、記憶部１２１乃至１３１に送信する。記憶部１２１乃至１３１、及び、ＩＯコントローラ１４０の機能は、第一の実施形態と同様である。
【００６３】
サービスプロセッサ１５０は、周期的に記憶部１２１乃至１３１を参照し、所定の期間、トレース情報が更新されていない否かを確認する。サービスプロセッサ１５０は、トレース情報が所定の期間更新されていない場合、Ｉ２Ｃバス１７０を介して、ＣＰＵ２０乃至３０から内部レジスタの値を採取し、記憶部１２１乃至１３１からＣＰＵ２０乃至３０における状態情報を採取する。サービスプロセッサ１５０は、上述で採取した情報を基に障害解析処理を行い、障害箇所が特定できた場合は、障害箇所の切り離し等の障害対応処理を実施する。
【００６４】
本実施形態において、ＣＰＵストールが発生した場合の記憶部１２１乃至１３１に記憶されたトレース情報の構成例を図９に示す。
【００６５】
図９の例の場合、トレース部１２０乃至１３０は、１秒間隔でＣＰＵ２０乃至３０から状態情報を採取し、トレース情報として記憶部１２１乃至１３１に格納する。時刻ｔ１＋３からｔ１＋４の間で、ＣＰＵ２０がストール状態になった場合、時刻ｔ１＋４以降はトレース部１２０がＣＰＵ２０から採取する状態情報は更新されなくなる。
【００６６】
サービスプロセッサ１５０は、例えば、３秒以上トレース情報が更新されていない場合にＣＰＵストール発生と判定するのであれば、時刻ｔ１＋６になると、ＣＰＵ２０乃至３０の内部レジスタの値と、記憶部１２１乃至１３１におけるトレース情報の採取を行い、障害解析処理、及び、障害対応処理を実施する。
【００６７】
次に図８のフローチャートを参照して、本実施形態の動作について詳細に説明する。
【００６８】
トレース部１２０乃至１３０は同期して、それぞれ、ＣＰＵ２０乃至３０における状態情報を周期的に採取して、情報採取時刻の情報とともに、記憶部１２１乃至１３１に送信する（Ｓ３０１）。記憶部１２１乃至１３１は、それぞれ、トレース部１２０乃至１３０から受信した状態情報を、情報採取時刻に対応付けて記憶する（Ｓ３０２）。
【００６９】
サービスプロセッサ１５０は、周期的に記憶部１２１乃至１３１を参照して、トレース情報が所定の期間更新されていないか否かを確認する（Ｓ３０３）。所定の期間内でトレース情報が更新されている場合（Ｓ３０４でＮｏ）、処理はＳ３０３へ戻る。所定の期間トレース情報が更新されていない場合（Ｓ３０４でＹｅｓ）、サービスプロセッサ１５０は、Ｉ２Ｃバス１７０を介して、ＣＰＵ２０乃至３０から内部レジスタの値を、記憶部１２１乃至１３１からＣＰＵ２０乃至３０における状態情報を採取して、障害解析処理を行い、障害対応処理を実施して（Ｓ３０５）、全体の処理は終了する。
【００７０】
本実施形態には、第一の実施形態と同様に、マルチプロセッサシステムにおける障害トレース取得の確実性を向上させる効果がある。その理由は、トレース部１２０乃至１３０が、周期的にＣＰＵ２０乃至３０における状態情報を採取して、トレース情報として記憶部１２１乃至１３１に格納し、サービスプロセッサ１５が周期的にトレース情報の更新状況を確認して、所定の期間トレース情報が更新されていない場合は、障害トレースの処理を開始するからである。
【００７１】
第一の実施形態のように、サービスプロセッサがＣＰＵからの返信を確認して障害発生を判定する方式の場合、ＣＰＵの負荷状況によっては、返信が遅れるケースがあるため、サービスプロセッサが障害発生と判定するまでの時間をあまり短く設定することはできない。これに対して、本実施形態では、各ＣＰＵに対応するトレース部が、一定の時間間隔で採取したトレース情報の更新状況を基に、サービスプロセッサが障害発生を判定するため、サービスプロセッサは、第一の実施形態よりさらに確実かつ迅速に障害トレースを行うことが可能となる。
【００７２】
さらに、本実施形態では、トレース部が周期的にトレース情報を採取するため、第一の実施形態と比較して、トレース情報の情報量が多くなるため、サービスプロセッサ１５は、さらに確実な障害トレースを行うことが可能となる。
＜第三の実施形態＞
次に、本願発明の第三の実施形態について図面を参照して詳細に説明する。
【００７３】
図１０は本願発明の第三の実施形態の障害トレース装置の構成を示すブロック図である。
【００７４】
障害トレース装置１０は、トレース部１２０乃至１３０と、記憶部１２１乃至１３１とを包含し、ＣＰＵ２０乃至３０と接続されている。
【００７５】
トレース部１２０乃至１３０は、それぞれ、ＣＰＵ２０乃至３０に対応して設けられ、対応するＣＰＵの状態情報、及び、時刻をトレース情報として出力する。記憶部１２１乃至１３１は、トレース部１２０乃至１３０から出力されたトレース情報を記憶する。
【００７６】
本実施形態には、第一、第二の実施形態と同様に、マルチプロセッサシステムにおける障害トレース取得の確実性を向上させる効果がある。その理由は、ＣＰＵ２０乃至３０のそれぞれに対応するトレース部１２０乃至１３０が、トレース情報を採取するからである。
【００７７】
トレース部をＣＰＵ毎に装備することで、トレース部をＣＰＵ内部、もしくはＣＰＵ近傍に配置することができるため、ＣＰＵとトレース部との通信経路での障害発生によりトレース情報の採取ができなくなる問題を回避することが可能となる。また何れかのＣＰＵに対応するトレース部に障害が発生した場合は、当該ＣＰＵを除くＣＰＵに対応したトレース部が採取したトレース情報を基に、障害トレースを行うことが可能となる。
【００７８】
また、本実施形態における障害解析処理や障害対応処理は、第一、第二の実施形態におけるサービスプロセッサ１５の機能を持つ外部の装置が、記憶部１２１乃至１３１のトレース情報を基に実施する場合もあれば、システム管理者がトレース情報をコンソール画面や紙に出力して、人手で実施する場合もある。
【００７９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８０】
１    障害トレースシステム
１０    障害トレース装置
２０乃至３０    ＣＰＵ
１２０乃至１３０    トレース部
１２１乃至１３１    記憶部
１２２    記憶部１２１内のトレース情報
１３２    記憶部１３１内のトレース情報
１４０    ＩＯコントローラ
１５０    サービスプロセッサ
１５１    サービスプロセッサ１５０における障害解析例
１６０    割り込み種別格納テーブル
１７０    Ｉ２Ｃバス
【図１】
2014048785.tif 000003
【図２】
2014048785.tif 000004
【図３】
2014048785.tif 000005
【図４】
2014048785.tif 000006
【図５】
2014048785.tif 000007
【図６】
2014048785.tif 000008
【図７】
2014048785.tif 000009
【図８】
2014048785.tif 000010
【図９】
2014048785.tif 000011
【図１０】
2014048785.tif 000012