(57)【特許請求の範囲】
【請求項１】
複数のプロセッサがバスを介して接続されるマルチプロセッサシステムの障害処理方式であって、
障害履歴情報を、プロセッサ毎に保存する複数のプロセッサ情報保存部と、
前記複数のプロセッサの障害を検出し、前記障害が発生したプロセッサが特定可能な場合、前記障害が発生したプロセッサに対応する前記プロセッサ情報保存部へ障害種別毎の障害履歴情報を保存し、前記障害が発生したプロセッサの特定が不可能な場合、前記複数のプロセッサ情報保存部に保存した障害履歴情報に基づいて、障害が発生したプロセッサを絞り込む診断プロセッサと、を備える障害処理方式。
【請求項２】
前記プロセッサ情報は、障害履歴情報として、障害種別毎に、障害発生回数を保存し、
前記診断プロセッサは、前記障害が発生したプロセッサが特定可能な場合、障害種別毎に、障害発生回数を加算することによって前記障害履歴情報を更新し、前記障害が発生したプロセッサの特定が不可能な場合、前記障害履歴情報の障害種別に基づいて、障害が発生したプロセッサを絞り込むことを特徴とする請求項１記載の障害処理方式。
【請求項３】
前記診断プロセッサは、前記障害が発生したプロセッサが特定できない場合、前記障害履歴情報の障害種別、及び、複数のプロセッサに関して計数された障害種別毎の障害発生回数が多い順のうちの少なくとも一つによって、障害が発生したプロセッサを絞り込むことを特徴とする請求項１または２記載の障害処理方式。
【請求項４】
前記診断プロセッサは、障害履歴情報として、搭載装置号機番号とプロセッサ搭載位置情報とを、更に保存することを特徴とする請求項１乃至３のいずれか一項に記載の障害処理方式。
【請求項５】
前記プロセッサ情報保存部は、前記複数のプロセッサそれぞれに配置されていることを特徴とする請求項１乃至４のいずれか一項に記載の障害処理方式。
【請求項６】
複数のプロセッサがバスを介して接続されるマルチプロセッサシステムの障害処理方法であって、
前記複数のプロセッサに、障害履歴情報を保存するプロセッサ情報保存部を配置し、
障害を検出したときに前記障害が発生したプロセッサが特定可能な場合、前記障害が発生したプロセッサに対応するプロセッサ情報保存部へ障害種別毎の障害履歴情報を保存し、
障害を検出したときに前記障害が発生したプロセッサの特定が不可能な場合、前記複数のプロセッサ情報保存部に保存した障害履歴情報に基づいて、障害が発生したプロセッサを絞り込む障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサがバスを介し接続されるマルチプロセッサシステムにおいて、複数プロセッサが障害発生の被疑部品となる場合の障害処理に関する。
【背景技術】
【０００２】
プロセッサ、またはプロセッサコントローラが検出した障害で、障害を検出したリクエストの発信元（プロセッサ）が判別不可となる障害の場合、障害情報からは被疑部品の特定が困難であった。従って、被疑部品が特定できない場合、被疑部品交換時には、プロセッサコントローラを搭載したカードと、同一カード上（同一バス上）に搭載された全プロセッサを交換していた。
【０００３】
また、障害が発生した被疑部品を特定する場合、障害発生以前の過去の障害発生履歴から人手により被疑部品を絞り込む手法を用いられていた。このような場合、過去に発生した障害ログを全て解析し被疑を絞り込む必要があったため、障害発生から解析結果を確定させるまでに時間がかかっていた。
【０００４】
例えば、特許文献１には、ＣＰＵ（Central Processing Unit）のキャッシュメモリの障害処理に多様化を持たせる技術が開示されている。また、特許文献２には、マルチプロセッサ情報処理システムにおいて、異常状態をシステムダウンに到るまで放置することなく検出し、固定点再開、保守者への通報などを可能とする技術が開示されている。しかしながら、これらの技術では、障害が発生した被疑部品の絞り込みを容易にすることができなかった。
【特許文献１】特開平０６−００４３３６号公報
【特許文献２】特開昭５７−０５５４６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、複数のプロセッサがバスで接続されるマルチプロセッサシステムにおいて、被疑部品が特定できない障害が発生した場合に、被疑部品の判断を容易にする障害処理方式及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る障害処理方式の一態様は、複数のプロセッサがバスを介して接続されるマルチプロセッサシステムの障害処理方式であって、障害履歴情報を、プロセッサ毎に保存する複数のプロセッサ情報保存部と、前記複数のプロセッサの障害を検出し、前記障害が発生したプロセッサが特定可能な場合、前記障害が発生したプロセッサに対応する前記プロセッサ情報保存部へ障害種別毎の障害履歴情報を保存し、前記障害が発生したプロセッサの特定が不可能な場合、前記複数のプロセッサ情報保存部に保存した障害履歴情報に基づいて、障害が発生したプロセッサを絞り込む診断プロセッサと、を備える。
【０００７】
また、本発明に係る障害処理方法の一態様は、複数のプロセッサがバスを介して接続されるマルチプロセッサシステムの障害処理方法であって、前記複数のプロセッサに、障害履歴情報を保存するプロセッサ情報保存部を配置し、障害を検出したときに前記障害が発生したプロセッサが特定可能な場合、前記障害が発生したプロセッサに対応するプロセッサ情報保存部へ障害種別毎の障害履歴情報を保存し、障害を検出したときに前記障害が発生したプロセッサの特定が不可能な場合、前記複数のプロセッサ情報保存部に保存した障害履歴情報に基づいて、障害が発生したプロセッサを絞り込む。
【発明の効果】
【０００８】
本発明によれば、複数のプロセッサがバスで接続されるマルチプロセッサシステムにおいて、被疑部品ができない障害が発生した場合に、被疑部品の判断を容易にする障害処理方式及び方法を提供することが可能となる。これにより、障害発生時に交換する部品を削減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明を省略する。
【００１０】
本発明は、複数のプロセッサがバスで接続されるマルチプロセッサシステムに適用できる障害処理方法及び方法である。具体的には、障害ログを複数のプロセッサ毎に保存し、被疑部品が特定できない障害が発生したときに、保存したログに基づいて、被疑部品を特定しようとするものである。
【００１１】
実施形態１
図１は、本発明の障害処理機能を有するマルチプロセッサシステムの構成例を示すブロック図である。図１に示すマルチプロセッサシステムは、複数のプロセッサ１〜４、プロセッサコントローラ５、及び、診断プロセッサ６から構成されている。各プロセッサ１〜４及びプロセッサコントローラ５は、診断インターフェース１８を介し、診断プロセッサ６と接続されている。また、各プロセッサ１〜４とプロセッサコントローラ５とは、プロセッサバス１９によって接続されている。
【００１２】
プロセッサ１は、プロセッサの演算部／制御部８、内蔵のキャッシュ（キャッシュメモリ）１０〜１２、プロセッサ情報保存部７を有し、バスコントローラ１３からプロセッサバス１９を介し他プロセッサ、またはプロセッサコントローラ５と接続されている。キャッシュ１０〜１２はそれぞれ異なるレベル（１／２／３）である。また、プロセッサ２〜４それぞれもプロセッサ１と同様の構成を備える。プロセッサ情報保存部７は、各プロセッサそれぞれのプロセッサ情報を保存するメモリであり、不揮発性メモリ、例えば、不揮発性ＲＯＭ(Read Only Memory)で構成される。プロセッサ情報保存部７については後述する。
【００１３】
プロセッサコントローラ５は、診断制御部１４とバスコントローラ１５とを備える。診断制御部１４は、障害が発生したときに、被疑部品（プロセッサ１〜４）を診断する。
【００１４】
診断プロセッサ６は、診断制御部１６とログ収集部１７とを備える。診断制御部１６は、マルチプロセッサシステム内の障害の検出と障害発生時のログ採取を行う。ログ収集部１７は、診断制御部１６が採取したログを保管する。
【００１５】
ここで、プロセッサ情報保存部７について説明する。図２は、プロセッサ内のプロセッサ情報に保持されるプロセッサ情報フォーマット例を示すブロック図である。図２では、プロセッサ情報保存部７は、プロセッサ情報を保持する不揮発性メモリ（例えば、ＥＥＰＲＯＭ: Electronically Erasable and Programmable Read Only Memory）である一例を示す。図２に示すようにプロセッサ情報保存部７は１２８Ｂｙｔｅで構成され、共通情報エリア２０、個体情報エリア２１、障害情報エリア２２の３つに分かれている。
【００１６】
共通情報エリア２０には、各情報までのオフセット値が書き込まれている。個体情報エリア２１には、装置ベンダ名、製造年月日、プロセッサ種別、部品番号、製造番号が書き込まれている。
【００１７】
障害情報エリア２２には、発生した障害に関する次の障害履歴情報が書き込まれる。
１）搭載装置号機番号（１６Ｂｙｔｅ）
２）プロセッサ搭載位置情報（２Ｂｙｔｅ）
３）演算部／制御部障害発生回数（２Ｂｙｔｅ）
４）キャッシュ（レベル１）発生回数（２Ｂｙｔｅ）
５）キャッシュ（レベル２）発生回数（２Ｂｙｔｅ）
６）キャッシュ（レベル３）発生回数（２Ｂｙｔｅ）
７）バス障害発生回数（２Ｂｙｔｅ）
８）プロセッサコントローラ検出障害（２Ｂｙｔｅ）
【００１８】
障害履歴情報は、プロセッサ障害発生時に障害履歴情報が障害情報エリア２２に診断プロセッサ６（診断制御部１６）によって書き込まれる。診断プロセッサ６は、障害発生時に、プロセッサ情報の障害情報エリア２２に、搭載装置号機番号、プロセッサ搭載位置情報を書き込む。搭載している装置からプロセッサを取外した後でも、障害プロセッサが搭載されていた装置と実装位置を容易に特定することができる。また、診断プロセッサ６は、障害種別ごとに障害が発生した回数を更新する。これにより、プロセッサ毎及び障害種別毎に各障害の発生回数を計数することになる。
【００１９】
また、図１の構成では、プロセッサ情報は、各プロセッサ１〜４に配置されるプロセッサ情報保存部７に保存蓄積される。このため、プロセッサの実装位置が変更されても、プロセッサ毎の障害履歴情報の継続を保証することが可能になる。
【００２０】
次に本発明の障害処理方式の動作例について、図を参照して説明する。発生する障害には、被疑部品が特定可能な訂正可能障害と、被疑部品が特定できない訂正不可障害とに分けられる。図３、図４は、運用中に訂正可能障害が発生した場合の処理について示している。図３は、プロセッサにおいて障害を検出した場合の訂正可能障害発生時の処理の動作例を示すフローチャートである。図４は、プロセッサコントローラにおいて障害を検出した場合の訂正可能障害発生時の処理の動作例を示すフローチャートである。
図６、図７は、訂正不可障害発生時の被疑判断処理の動作例をフローチャートである。
【００２１】
まず、プロセッサにおいて障害を検出した場合の動作について図３を用いて説明する。図３では、プロセッサ１で障害が発生した例を示している。プロセッサにおいて訂正可能障害が発生した場合（Ｓ１１）、診断プロセッサ６（診断制御部１６）は、障害の発生を検出後、プロセッサのログを採取する（Ｓ１２）。診断プロセッサ６は、プロセッサ情報保存部７に保存されているプロセッサ情報も全て採取する。診断プロセッサ６は、採取したログから障害の種別を解析し、解析した結果を、演算部／制御部障害、キャッシュ（レベル１／２／３）障害、バス障害の項目に分類し、プロセッサ情報の対応する項目に発生回数（累積値）を加算する（Ｓ１３）。診断プロセッサ６は、プロセッサ内のプロセッサ情報保存部７が保持するプロセッサ情報へ分類した情報を書き込む（Ｓ１４）。同時にプロセッサ情報のうち、１）搭載装置号機番号、２）プロセッサ搭載位置情報もプロセッサ情報へ書き込む。このようにして、診断プロセッサ６によって、障害が発生したプロセッサ（図３ではプロセッサ１）において、プロセッサ情報の障害情報エリア２２が更新される（Ｓ１５）。訂正可能障害が発生するたびにステップＳ１１〜Ｓ１５の処理が実行される。
【００２２】
次に、プロセッサコントローラ５でプロセッサ１〜４のいずれかが被疑部品となる訂正可能障害（プロセッサバス障害）が検出された場合の動作について図４を用いて説明する。図４では、プロセッサコントローラ５がプロセッサ３で発生した障害を検出した例を示している。プロセッサコントローラ５において、プロセッサの訂正可能障害が発生したことを検出すると（Ｓ２１）、診断プロセッサ６は、プロセッサコントローラ５の診断制御部１４から障害情報を採取する（Ｓ２２）。診断プロセッサ６は、図３のステップ１３と同様に採取した情報を解析／分類する（Ｓ２３）。診断プロセッサ６は、障害情報を分類した結果、被疑プロセッサが特定できる障害であれば、該当プロセッサの障害情報エリア２２を更新する（Ｓ２４）。このようにして、診断プロセッサ６によって、被疑となるプロセッサ（図４ではプロセッサ３）のプロセッサ情報保存部７に保持されている障害情報エリア２２のプロセッサコントローラ検出障害へ障害履歴情報が反映される（Ｓ２５）。
【００２３】
なお、図４のステップ２４において、被疑プロセッサが特定できない障害については、図５，６の動作を実施する。
【００２４】
続いて、訂正不可障害が発生した場合の動作について図５、図６を用いて説明する。図５では、プロセッサコントローラ５で訂正不可障害が発生した例を示している。プロセッサ１〜４、またはプロセッサコントローラ５で、訂正不可障害が検出された場合（Ｓ３１）、診断プロセッサ６は、プロセッサ１〜４、プロセッサコントローラ５のそれぞれから障害ログを採取する（Ｓ３２、３３）。診断プロセッサ６は、採取したログから、被疑部品（プロセッサ１〜４のいずれか、またはプロセッサコントローラ５）を判断する（Ｓ３４）。被疑部品が特定できた場合（Ｓ３５でＹｅｓ）、診断プロセッサ６は、判断結果に基づいて被疑部品を表示し（Ｓ３６）、処理を終了する。
【００２５】
訂正不可障害の障害ログから、被疑部品が特定できない場合（Ｓ３５でＮｏ）、診断プロセッサ６は、各プロセッサ１〜４が有するプロセッサ情報保存部７からプロセッサ情報の障害情報エリア２２に格納されている障害履歴情報を読み出す（Ｓ３７、Ｓ３８−１〜Ｓ３８−４）。診断プロセッサ６は、過去の障害履歴情報に過去に障害を検出した履歴があるかを判断する（Ｓ３９）。過去に障害を検出した履歴がない場合（Ｓ３９でＮｏ）、診断プロセッサ６は、全プロセッサを被疑部品として決定して表示し（Ｓ４０）、処理を終了する。過去に障害を検出した履歴がある場合、診断プロセッサ６は、障害分析処理を実施する（Ｓ４１）。続いて、障害分析処理について図６を用いて説明する。
【００２６】
診断プロセッサ６は、障害情報エリア２２から読み出した過去の障害履歴情報を解析する（Ｓ５１）。プロセッサコントローラ５が検出した障害履歴がある場合（Ｓ５２でＹｅｓ）、または、一つのプロセッサのみに内部障害履歴がある場合（Ｓ５３でＹｅｓ）、診断プロセッサ６は、該当プロセッサを第一被疑部品として表示し（Ｓ５４）、処理を終了する。本実施形態では、ステップＳ５１において、プロセッサコントローラ検出の障害履歴があるプロセッサが複数ある場合、複数のプロセッサを第一被疑部品としている。
【００２７】
プロセッサコントローラ５が検出した障害履歴がない場合（Ｓ５２でＮｏ）であり、一つのプロセッサのみに内部障害履歴がある場合に該当しないとき（Ｓ５３でＮｏ）、診断プロセッサ６は、複数のプロセッサに内部障害履歴があるかを判断する（Ｓ５５）。
【００２８】
複数プロセッサに内部障害履歴がある場合（Ｓ５５でＹｅｓ）、診断プロセッサ６は、プロセッサ情報の障害発生回数を比較する（Ｓ５６）。診断プロセッサ６は、障害発生回数順に、被疑部品を表示し（Ｓ５７）、処理を終了する。具体的には、診断プロセッサ６は、過去にプロセッサの内部障害（演算部／制御部障害、またはキャッシュ障害）が発生していたプロセッサがあれば、障害発生回数に従い、プロセッサの被疑の重み付けを増やし、重み付けに従った被疑指摘を行う。
【００２９】
例えば、プロセッサコントローラ５によるプロセッサ１〜４が判別可能な障害、プロセッサ内部障害（演算部／制御部障害、またはキャッシュ障害）を検出した履歴のあるプロセッサ１〜４は被疑の重み付けを高く、プロセッサバス障害のみの検出であれば被疑の重み付けを低くする。具体的には、プロセッサ１〜４から読み出したプロセッサ情報が、プロセッサ１でキャッシュ障害を３回検出、プロセッサ３でプロセッサバス障害を１回検出、プロセッサ２／４でキャッシュ障害を１回ずつ検出していた場合には、プロセッサ１を第一被疑、プロセッサ２／４を第二被疑、プロセッサ３を第三被疑とする。
【００３０】
複数プロセッサに内部障害履歴がない場合（Ｓ５５でＮｏ）、すなわち、プロセッサ内部障害がなく、バス障害にのみ障害がある場合であり、診断プロセッサ６は、バス障害の履歴のみであることを確認し（Ｓ５８）、バス障害のみの場合、全プロセッサが被疑部品であると表示し（Ｓ５９）、処理を終了する。
【００３１】
診断プロセッサの被疑指摘に従い、保守員が障害発生時に被疑部品の交換を行う。
【００３２】
なお、図１では、プロセッサ情報保存部７を各プロセッサに配置される例を示したが、必ずしもこれに限られるわけではない。例えば、診断プロセッサ６内のログ収集部１７に、各プロセッサに対応する複数のプロセッサ情報保存部７が配置される場合であってもよい。各プロセッサとプロセッサ情報保存部との対応づけをする等の工夫によって、実装位置を変更した場合であっても、障害履歴情報の継続を維持することが可能となる。
【００３３】
以上のように、本発明の好適な実施形態によれば、複数のプロセッサがバスで接続されるマルチプロセッサシステムにおいて、被疑判断不可となるような障害が発生した場合に、診断プロセッサが過去の障害履歴情報より、被疑部品の絞り込みを行うことで被疑部品判断を容易化することができる。これにより、交換部品点数の削減、交換点数の削減によるシステム停止時間の短縮が可能となる。
【００３４】
例えば、以前の技術では図５のステップＳ３５において、障害発生時の情報から被疑部品を判断し、被疑部品を判断できない場合、プロセッサ全部を被疑部品としていた。これに対して、本発明では上記のように被疑部品を絞りこむことにより、交換部品の点数を削減することが可能となる。特に、システムダウンに至る障害発生時に、被疑部品が複数のプロセッサとなる場合の被疑判断を容易化し、交換部品点数の削減を実現することができる。
【００３５】
また、障害発生時、プロセッサ情報に、搭載装置号機番号、プロセッサ搭載位置情報を書き込むことによって、プロセッサを装置から取外した後でも、障害プロセッサが搭載されていた装置と実装位置を容易に特定することができる。
【００３６】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【図面の簡単な説明】
【００３７】
【図１】本発明の障害処理機能を有するマルチプロセッサシステムの構成例を示すブロック図である。
【図２】プロセッサ情報保存部に保持されるプロセッサ情報フォーマット例を示すブロック図である。
【図３】プロセッサにおいて障害を検出した場合の訂正可能障害発生時の処理の動作例を示すフローチャートである。
【図４】プロセッサコントローラにおいて障害を検出した場合の訂正可能障害発生時の処理の動作例を示すフローチャートである。
【図５】訂正不可障害発生時の被疑判断処理の動作例をフローチャートである。
【図６】訂正不可障害発生時の被疑判断処理における障害分析処理の詳細な動作例を示すフローチャートである。
【符号の説明】
【００３８】
１〜４  プロセッサ
５  プロセッサコントローラ
６  診断プロセッサ
７  プロセッサ情報保存部
８  演算部／制御部
１０〜１２  キャッシュ１０〜１２
１３、１５  バスコントローラ
１４  診断制御部
１５  バスコントローラ
１６  診断制御部
１７  ログ収集部
１８  診断インターフェース
１９  プロセッサバス
２０  共通情報エリア
２１  個体情報エリア
２２  障害情報エリア
【図１】
0004716197.tif 000002
【図２】
0004716197.tif 000003
【図３】
0004716197.tif 000004
【図４】
0004716197.tif 000005
【図５】
0004716197.tif 000006
【図６】
0004716197.tif 000007