(57)【要約】      （修正有）【課題】サーバ内の部品の監視及び制御を行うプロセッサの処理負荷を軽減する技術を提供する。【解決手段】情報処理装置１（サーバ）は、プロセッサ１０００と、モジュール１０１〜１０５（部品）とコントローラ１１０（ＭＢＣ）を有するシステムボード１００と、を備える。プロセッサは、モジュールの異常を検出するための条件をコントローラに送信する。コントローラは、モジュールから情報を取得し、モジュールから取得した情報が条件を満たすか判断し、モジュールから取得した情報が条件を満たす場合、モジュールの異常を検出したことを示す情報をプロセッサに送信する。【選択図】図１
2016110162.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
モジュールと、
コントローラと、
を有し、
前記プロセッサは、
前記モジュールの異常を検出するための条件を前記コントローラに送信し、
前記コントローラは、
前記モジュールから情報を取得し、
前記モジュールから取得した情報が前記条件を満たすか判断し、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常を検出したことを示す情報を前記プロセッサに送信する、
情報処理装置。
【請求項２】
記憶装置
をさらに有し、
前記コントローラは、
前記モジュールから取得した情報を前記記憶装置に格納し、
前記プロセッサは、
前記モジュールの異常を検出したことを示す情報を前記プロセッサから受信した場合、前記記憶装置から前記モジュールから取得した情報を読み出し、前記モジュールから取得した情報が前記条件を満たすか判断し、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常に対処するための処理を実行する
請求項１記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの監視を停止することを要求する第１の要求を前記コントローラに送信し、
前記コントローラは、
前記第１の要求を前記プロセッサから受信した場合、前記モジュールの監視を停止する
請求項２記載の情報処理装置。
【請求項４】
前記プロセッサは、
前記モジュールの監視を停止することを要求する第１の要求と、前記条件を前記モジュールの異常を検出するための第２の条件に変更することを要求する第２の要求とを前記コントローラに送信し、
前記コントローラは、
前記第１の要求及び前記第２の要求を前記プロセッサから受信した場合、前記モジュールの監視を停止し、前記条件を前記第２の条件に変更する、
請求項１記載の情報処理装置。
【請求項５】
前記コントローラは、
前記モジュールの異常を検出したことを示す情報を割り込みによって前記プロセッサに送信する
請求項１記載の情報処理装置。
【請求項６】
プロセッサが、前記モジュールの異常を検出するための条件をコントローラに送信し、
前記コントローラが、前記モジュールから情報を取得し、
前記コントローラが、前記モジュールから取得した情報が前記条件を満たすか判断し、
前記コントローラが、前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常を検出したことを示す情報を前記プロセッサに送信する、
処理を実行する監視方法。
【請求項７】
第１の情報処理装置と、
第２の情報処理装置と、
を有し、
前記第１の情報処理装置は、
情報処理システム内のモジュールの異常を検出するための条件を前記第２の情報処理装置に送信し、
前記第２の情報処理装置は、
前記モジュールから情報を取得し、
前記モジュールから取得した情報が前記条件を満たすか判断し、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常を検出したことを示す情報を前記第１の情報処理装置に送信する、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの監視技術に関する。
【背景技術】
【０００２】
大規模なサーバには、サーバ内の部品を監視及び制御するための機構としてサービスプロセッサが設けられる。サービスプロセッサは、ＣＰＵ（Central Processing Unit）及びメモリ等を含む独立した処理ユニットであり、監視及び制御の対象となる部品はＣＰＵ、メモリ、ＨＤＤ（Hard Disk Drive）或いはＳＳＤ（Solid State Drive）、冷却ファン、及び温度センサ等である。サービスプロセッサを設けることで、サーバ内の部品において発生した異常を速やかに検出しサーバの管理者に通知できるようになる。
【０００３】
サービスプロセッサにおけるＣＰＵの処理負荷は、サーバ内の部品の数の増加に従って増加する。サービスプロセッサにおけるＣＰＵの処理負荷が増大すると、処理遅延が発生し、サーバ内の部品に発生した異常への対処が遅れるため好ましくない。しかし、装置の監視に関する従来の技術においては、サービスプロセッサにおけるＣＰＵの処理負荷を軽減することには着目していない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６０−７４１００号公報
【特許文献２】特開平８−１２５６２２号公報
【特許文献３】特開２０１２−２３０５９７号公報
【特許文献４】特開２０１４−０１６６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、本発明の目的は、１つの側面では、サーバ内の部品の監視及び制御を行うプロセッサの処理負荷を軽減するための技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、プロセッサと、モジュールと、コントローラとを有する。そして、上で述べたプロセッサは、モジュールの異常を検出するための条件をコントローラに送信し、コントローラは、モジュールから情報を取得し、モジュールから取得した情報が条件を満たすか判断し、モジュールから取得した情報が条件を満たす場合、モジュールの異常を検出したことを示す情報をプロセッサに送信する。
【発明の効果】
【０００７】
１つの側面では、サーバ内の部品の監視及び制御を行うプロセッサの処理負荷を軽減できるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、情報処理装置のハードウエア構成図である。
【図２】図２は、サービスプロセッサの機能ブロック図である。
【図３】図３は、バッファのデータ構造を説明するための図である。
【図４】図４は、コマンドリストの構造の一例を示す図である。
【図５】図５は、コマンドセットについて説明するための図である。
【図６】図６は、コマンド部及びデータ部のフォーマットを示す図である。
【図７】図７は、部品の接続形態の一例を示す図である。
【図８】図８は、結果Ｉ／Ｆ領域における判定結果格納領域のフォーマットを示す図である。
【図９】図９は、結果Ｉ／Ｆ領域におけるデータ格納領域のフォーマットを示す図である。
【図１０】図１０は、割り込みレジスタのフォーマットの一例を示す図である。
【図１１】図１１は、インターバルレジスタのフォーマットの一例を示す図である。
【図１２】図１２は、フィールド「ＩＮＴＥＲＶＡＬ」に格納される値及び監視周期の一例を示す図である。
【図１３】図１３は、実行レジスタのフォーマットの一例を示す図である。
【図１４】図１４は、部品の監視を開始する際にサービスプロセッサ及びＭＢＣが実行する処理の処理フローを示す図である。
【図１５】図１５は、監視処理の処理フローを示す図である。
【図１６】図１６は、監視処理の処理フローを示す図である。
【図１７】図１７は、割り込みを受信したサービスプロセッサが実行する処理の処理フローを示す図である。
【図１８】図１８は、所定のイベントの発生を検出したサービスプロセッサが実行する処理の処理フローを示す図である。
【図１９】図１９は、或る部品についての閾値を変更する際にサービスプロセッサ及びＭＢＣが実行する処理の処理フローを示す図である。
【発明を実施するための形態】
【０００９】
図１に、本実施の形態における情報処理装置１のハードウエア構成図を示す。情報処理装置１は、サービスプロセッサ１０００と、１又は複数のシステムボード１００とを有する。
【００１０】
サービスプロセッサ１０００は、ＣＰＵ１００１と、ＲＯＭ（Read Only Memory）１００２と、ＲＡＭ（Random Access Memory）１００３と、ＦＭＥＭ（Flash MEMory）１００４とを有する。
【００１１】
ＣＰＵ１００１は、ＲＯＭ１００２に格納された、本実施の形態の処理を実行するためのファームウェアをＲＡＭ１００３にロードして実行することにより、図２に示すような機能を実現する。図２に示すように、サービスプロセッサ１０００は、処理部１０１１と、設定データ格納部１０１０とを含む。設定データ格納部１０１０は、ＦＭＥＭ１００４に設けられる。設定データ格納部１０１０には、コマンドＩ／Ｆ（InterFace）領域１２１に格納される初期値及びレジスタ１３０に格納される初期値等が格納される。処理部１０１１は、設定データ格納部１０１０に格納されたデータに基づき処理を実行する。
【００１２】
図１の説明に戻り、システムボード１００は、ＭＢＣ（Maintenance Bus Controller）１１０と、バッファ１２０と、レジスタ１３０と、部品（モジュールとも呼ばれる）１０１乃至１０５と、１又は複数のＣＰＵ１０６と、ＲＡＭ１０７とを有する。ＭＢＣ１１０、バッファ１２０、及びレジスタ１３０は、例えばＦＰＧＡ（Field Programmable Gate Array）により実現される。部品１０１乃至１０５は、例えば電源ユニット、温度センサ、冷却ファン、及び水冷ポンプ等の部品である。図１においては部品の数は５であるが、数に限定は無い。
【００１３】
ＭＢＣ１１０は、実行制御部１１１と、バッファ管理部１１２と、ＪＴＡＧ（Joint Test Action Group）制御回路１１３と、Ｉ２Ｃ（Inter-Integrated Circuit）制御回路１１４とを有する。なお、本実施の形態においてはＪＴＡＧ及びＩ２Ｃを取り扱うが、これらのプロトコルに限られるわけではない。
【００１４】
実行制御部１１１は、バッファ１２０のコマンドＩ／Ｆ（InterFace）領域１２１に格納されたコマンドセットを実行することによりＪＴＡＧ制御回路１１３及びＩ２Ｃ制御回路１１４を制御する。ＪＴＡＧ制御回路１１３は、部品１０１及び１０２からデータを取得し、実行制御部１１１に出力する。Ｉ２Ｃ制御回路１１４は、部品１０３乃至１０５からデータを取得し、実行制御部１１１に出力する。バッファ管理部１１２は、バッファ１２０を管理する。
【００１５】
バッファ１２０は、コマンドＩ／Ｆ領域１２１と、結果Ｉ／Ｆ領域１２２とを含む。図３を用いて、バッファ１２０のデータ構造をより詳しく説明する。コマンドＩ／Ｆ領域１２１は、ヘッダ領域と、データ領域とを含む。ヘッダ領域は、リスト数を格納する領域と、各コマンドリストのアドレスを格納する領域とを含む。データ領域にはコマンドリストが格納される。結果Ｉ／Ｆ領域１２２は、判定結果格納領域と、データ格納領域とを含む。本実施の形態においては、バッファ１２０はサービスプロセッサ１０００及びＭＢＣ１１０が共用する記憶領域であるので、サービスプロセッサ１０００はバッファ１２０にアクセスすることができる。
【００１６】
図４に、コマンドリストの構造の一例を示す。コマンドリストは、１又は複数のコマンド（以下、コマンドセットと呼ぶ）と、閾値と、比較タイプを示す情報と、ＶＡＬＩＤフラグの値とが格納される。比較タイプが「範囲」である場合、部品から取得したデータが閾値によって定められる範囲内に有るか否かが判断される。比較タイプが「一致」である場合、部品から取得したデータが閾値と一致するか否かが判断される。なお、図４の例では、比較タイプが「範囲」であるため上限閾値及び下限閾値が格納されているが、比較タイプが「一致」である場合には１つの閾値が格納される。ＶＡＬＩＤフラグの値が「ＯＮ」である場合には異常が有るか判断する処理がＭＢＣ１１０によって実行され、ＶＡＬＩＤフラグの値が「ＯＦＦ」である場合には異常が有るか判断する処理は実行されない。
【００１７】
図５を用いて、コマンドセットについて説明する。コマンドセットに含まれる各コマンドは、コマンド部と、データ部とを含む。コマンド部のデータ長は８バイト（byte）であり、データ部のデータ長は１６バイトである。各コマンドに付された番号は実行の順番を表す。
【００１８】
図６に、コマンド部及びデータ部のフォーマットをより詳細に示す。図６において、"Byte0"の行から"Byte7"の行まではコマンド部のフォーマットを示しており、"Byte8-23"の行はデータ部のフォーマットを示している。図６に示すように、コマンド部には処理の種類等を規定する情報が含まれ、データ部には書込まれるデータ等を規定する情報が含まれる。
【００１９】
コマンド部は、データの取得対象である部品の指定を含む。例えば、部品の接続形態が図７に示すような形態であるとする。図７の例では、識別子がＩ２Ｃ＃０であるＩ２Ｃポートにアドレスが「１１００＿０００」であるＭＵＸ（ＭＵＸはマルチプレクサを表す）が接続され、そのＭＵＸにＡＤＣ（ＡＤＣはアナログデジタル変換器を表す）＃０及び＃１とＶＯＬ（ＶＯＬは電源装置）＃０乃至＃３とが接続される。識別子がＩ２Ｃ＃２であるＩ２Ｃポートにアドレスが「１１１０＿０００」であるＭＵＸが接続され、そのＭＵＸにＦＡＮＣ（ＦＡＮＣは冷却ファンのコントローラを表す）＃０及び＃１とＤＩＭＭ（Dual Inline Memory Module）＃０及び＃１とが接続される。識別子がＩ２Ｃ＃４であるＩ２Ｃポートには温度センサ＃０乃至＃２が接続される。識別子がＩ２Ｃ＃１であるＩ２Ｃポート及び識別子がＩ２Ｃ＃３であるＩ２Ｃポートには部品が接続されていない。このような場合においてＦＡＮＣ＃０からデータを取得する場合、コマンド部は、Ｉ２Ｃポートの識別子、マルチプレクサのアドレス、及びＦＡＮＣ＃０への接続線を表す情報等を含む。
【００２０】
図８に、結果Ｉ／Ｆ領域１２２における判定結果格納領域のフォーマットを示す。判定結果格納領域は、部品の識別情報と、部品から取得したデータと、ＭＢＣ１１０による判定の結果とが部品毎に格納される。
【００２１】
図９に、結果Ｉ／Ｆ領域１２２におけるデータ格納領域のフォーマットを示す。データ格納領域は、世代１についてのデータを格納する領域と、世代２についてのデータを格納する領域と、・・・、世代ｎ（ｎは３以上の自然数）についてのデータを格納する領域とを含む。各領域に格納されるデータは、部品の識別情報と、部品から取得したデータと、ＭＢＣ１１０による判定の結果とを部品毎に含む。このように、データ格納領域には過去の判定結果が格納され、処理部１０１１の処理に使用される。
【００２２】
図１の説明に戻り、レジスタ１３０は、割り込みレジスタ１３１と、インターバルレジスタ１３２と、実行レジスタ１３３とを含む。
【００２３】
図１０に、割り込みレジスタ１３１のフォーマットの一例を示す。図１０の例では、７ビット目に格納される値により異常検出についての割り込みの発生が制御される。０ビット目から６ビット目は予備領域である。割り込みレジスタ１３１の値がＯＮ（例えば１）である場合にはサービスプロセッサ１０００に割り込みが出力される。割り込みに対処するための処理が完了すると割り込みレジスタ１３１の値はＯＦＦ（例えば０）に設定される。
【００２４】
図１１に、インターバルレジスタ１３２のフォーマットの一例を示す。図１１の例では、０ビット目から６ビット目に格納される値により監視周期が決定される。７ビット目は予備領域である。図１２に、フィールド「ＩＮＴＥＲＶＡＬ」に格納される値及び監視周期の一例を示す。図１２の例では、「０００００００」が格納される場合は監視は停止され、「００００００１」が格納される場合は３０秒間隔で監視が行われ、「０００００１０」が格納される場合は１分間隔で監視が行われ、「００００１００」が格納される場合は２分間隔で監視が行われる。
【００２５】
図１３に、実行レジスタ１３３のフォーマットの一例を示す。図１３の例では、７ビット目に格納される値により監視の実行が制御される。０ビット目から６ビット目は予備領域である。実行レジスタ１３３の７ビット目の値がＯＮ（例えば１）である場合には部品１０１乃至１０５からデータを取得し、実行レジスタ１３３の７ビット目の値がＯＦＦ（例えば０）である場合には部品１０１乃至１０５からのデータの取得を停止する。
【００２６】
次に、図１４乃至図１９を用いて、情報処理装置１において行われる処理について説明する。まず、図１４乃至図１６を用いて、部品１０１乃至１０５の監視を開始する際にサービスプロセッサ１０００及びＭＢＣ１１０が実行する処理について説明する。
【００２７】
まず、サービスプロセッサ１０００における処理部１０１１は、設定データ格納部１０１０から、インターバルレジスタ１３２に設定すべき値を読み出す。そして、処理部１０１１は、読み出されたインターバルレジスタ１３２の値をシステムボード１００におけるＭＢＣ１１０に通知する（図１４：ステップＳ１）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、インターバルレジスタ１３２の値を処理部１０１１から受信し、インターバルレジスタ１３２に格納する（ステップＳ３）。
【００２８】
処理部１０１１は、設定データ格納部１０１０から、各部品についてのコマンドセット、閾値、比較タイプを示す情報、及びＶＡＬＩＤフラグの値（ここでは「ＯＮ」）を読み出す。そして、処理部１０１１は、読み出されたコマンドセット、閾値、比較タイプを示す情報、及びＶＡＬＩＤフラグの値をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ５）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、各部品についてのコマンドセット、閾値、比較タイプを示す情報、及びＶＡＬＩＤフラグの値を受信し、コマンドＩ／Ｆ領域１２１に格納する（ステップＳ７）。
【００２９】
処理部１０１１は、設定データ格納部１０１０から実行レジスタ１３３に設定すべき値（ここでは「ＯＮ」）を読み出す。そして、処理部１０１１は、読み出された実行レジスタ１３３の値をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ９）。これに応じ、ＭＢＣ１１０における実行制御部１１１は、実行レジスタ１３３の値を処理部１０１１から受信し、実行レジスタ１３３に格納する（ステップＳ１１）。
【００３０】
ＭＢＣ１１０における実行制御部１１１は、監視処理を実行する（ステップＳ１３）。監視処理については、図１５及び図１６を用いて説明する。
【００３１】
まず、実行制御部１１１は、部品１０１乃至１０５についてのコマンドリストの読み出しをバッファ管理部１１２に指示する。バッファ管理部１１２は、部品１０１乃至１０５についてのコマンドリストをバッファ１２０から読み出し、実行制御部１１１に出力する。これに応じ、実行制御部１１１は、各部品のコマンドセット（すなわち、１又は複数のコマンド）を順序どおりに実行することにより、ＪＴＡＧ制御回路１１３及びＩ２Ｃ制御回路１１４を制御し、各部品からデータを取得する（図１５：ステップＳ２１）。取得されるデータは、例えば、電源の電圧値、装置温度、外気温度、冷却ファン回転数、及び水冷ポンプ回転数等についてのデータを含む。
【００３２】
実行制御部１１１は、部品１０１乃至１０５から取得したデータをバッファ管理部１１２に出力する。これに応じ、バッファ管理部１１２は、部品１０１乃至１０５から取得したデータを結果Ｉ／Ｆ領域１２２に格納する（ステップＳ２３）。
【００３３】
バッファ管理部１１２は、コマンドＩ／Ｆ領域１２１から未処理のコマンドリストを１つ特定する（ステップＳ２５）。
【００３４】
バッファ管理部１１２は、ステップＳ２５において特定されたコマンドリストに含まれるＶＡＬＩＤフラグの値が「ＯＮ」であるか判定する（ステップＳ２７）。
【００３５】
ステップＳ２５において特定されたコマンドリストに含まれるＶＡＬＩＤフラグの値が「ＯＮ」ではない場合（ステップＳ２７：Ｎｏルート）、ＶＡＬＩＤフラグの値は「ＯＦＦ」である。従って、ステップＳ４５の処理に移行する。一方、ステップＳ２５において特定されたコマンドリストに含まれるＶＡＬＩＤフラグの値が「ＯＮ」である場合（ステップＳ２７：Ｙｅｓルート）、バッファ管理部１１２は、ステップＳ２５において特定されたコマンドリストに含まれる比較タイプを示す情報が「一致」を示しているか判定する（ステップＳ３１）。
【００３６】
比較タイプを示す情報が「一致」を示している場合（ステップＳ３１：Ｙｅｓルート）、バッファ管理部１１２は、ステップＳ２５において特定されたコマンドリストに含まれる閾値と、ステップＳ２５において特定されたコマンドリストに対応する部品から取得したデータとが一致するか判定する（ステップＳ３３）。
【００３７】
閾値と部品から取得したデータとが一致する場合（ステップＳ３３：Ｙｅｓルート）、バッファ管理部１１２は、結果Ｉ／Ｆ領域１２２の判定結果格納領域に、部品に異常が無い（すなわち、正常である）ことを示す判定結果を格納する（ステップＳ３５）。また、バッファ管理部１１２は、既に格納されている判定結果の世代を１インクリメントし、世代ｎ＋１についてのデータを削除し、判定結果を世代１についてのデータとして判定結果格納領域に格納する。そしてステップＳ４５の処理に移行する。
【００３８】
一方、比較タイプを示す情報が「一致」を示していない場合（ステップＳ３１：Ｎｏルート）、比較タイプは「範囲」である。従って、バッファ管理部１１２は、ステップＳ２５において特定されたコマンドリストに対応する部品から取得したデータが、ステップＳ２５において特定されたコマンドリストに含まれる上限閾値及び下限閾値で定められる範囲に含まれるか判定する（ステップＳ３７）。
【００３９】
部品から取得したデータが、上限閾値及び下限閾値で定められる範囲に含まれる場合（ステップＳ３７：Ｙｅｓルート）、バッファ管理部１１２は、結果Ｉ／Ｆ領域１２２の判定結果格納領域に、部品に異常が無い（すなわち、正常である）ことを示す判定結果を格納する（ステップＳ３９）。また、バッファ管理部１１２は、既に格納されている判定結果の世代を１インクリメントし、世代ｎ＋１についてのデータを削除し、判定結果を世代１についてのデータとして判定結果格納領域に格納する。そしてステップＳ４５の処理に移行する。
【００４０】
一方、部品から取得したデータが上限閾値及び下限閾値で定められる範囲に含まれない場合（ステップＳ３７：Ｎｏルート）及び閾値と部品から取得したデータとが一致しない場合（ステップＳ３３：Ｎｏルート）、バッファ管理部１１２は、結果Ｉ／Ｆ領域１２２の判定結果格納領域に、部品に異常が検出されたことを示す判定結果を格納する（ステップＳ４１）。
【００４１】
バッファ管理部１１２は、部品に異常が検出されたことを実行制御部１１１に通知する。これに応じ、実行制御部１１１は、割り込みレジスタ１３１の値を「ＯＮ」に設定し、割り込みをサービスプロセッサ１０００に送信する（ステップＳ４３）。なお、割り込みを受信したサービスプロセッサ１０００が実行する処理については後で説明する。
【００４２】
バッファ管理部１１２は、未処理のコマンドリストが有るか判定する（ステップＳ４５）。未処理のコマンドリストが有る場合（ステップＳ４５：Ｙｅｓルート）、バッファ管理部１１２は、未処理のコマンドリストを１つ特定し（ステップＳ２９）、ステップＳ２７の処理に戻る。一方、未処理のコマンドリストが無い場合（ステップＳ４５：Ｎｏルート）、バッファ管理部１１２は、現在時刻を前回の監視を実行した時刻としてＲＡＭ１０７に保存する。そして処理は端子Ａを介して図１６のステップＳ４７に移行する。
【００４３】
図１６の説明に移行し、実行制御部１１１は、インターバルレジスタ１３２の値を読み出す（ステップＳ４７）。そして、実行制御部１１１は、現時刻が実行タイミングであるか判定する（ステップＳ４９）。ステップＳ４９においては、前回監視を実行した時刻から、インターバルレジスタ１３２の値によって決定される時間が経過したか判定される。
【００４４】
現時刻が実行タイミングではない場合（ステップＳ４９：Ｎｏルート）、実行制御部１１１は、一定時間休止し、ステップＳ４９の処理に戻る。一方、現時刻が実行タイミングである場合（ステップＳ４９：Ｙｅｓルート）、実行制御部１１１は、実行レジスタ１３３の値は「ＯＮ」であるか判定する（ステップＳ５１）。
【００４５】
実行レジスタ１３３の値は「ＯＮ」である場合（ステップＳ５１：Ｙｅｓルート）、監視を継続するため、処理は端子Ｂを介して図１５のステップＳ２１の処理に戻る。一方、実行レジスタ１３３の値は「ＯＮ」ではない場合（ステップＳ５１：Ｎｏルート）、呼び出し元の処理に戻る。
【００４６】
以上のように、サービスプロセッサ１０００は複数の部品についてのコマンドリストを一括してＭＢＣ１１０に送信し、ＭＢＣ１１０によって異常が検出された場合にのみサービスプロセッサ１０００に通知が行われる。よって、ＣＰＵ１００１の処理負荷を軽減し、処理遅延が発生することを抑制できるようになる。また、上で述べたようにすれば、たとえ部品の数が増えたとしてもＣＰＵ１００１の負荷が増加しにくい。
【００４７】
また、本実施の形態においては、ハードウエアであるＭＢＣ１１０が単純な繰り返し処理や一括処理に向いている一方、複雑な分岐を含む処理には向いていないことに着目し、ＭＢＣ１１０に向いている処理をサービスプロセッサ１０００ではなくＭＢＣ１１０に実行させている。このようにすることで、情報処理装置１全体としてより効率的に処理を実行し、処理を高速化することが可能になる。
【００４８】
次に、図１７を用いて、割り込みを受信したサービスプロセッサ１０００が実行する処理について説明する。
【００４９】
まず、割り込みを受信したサービスプロセッサ１０００の処理部１０１１は、判定結果格納領域から、異常が検出された部品を特定する（図１７：ステップＳ６１）。ステップＳ６１においては、判定結果格納領域内の結果を格納する領域に異常が検出されたことを示す情報が格納された部品が特定される。
【００５０】
処理部１０１１は、判定結果格納領域に格納されたデータと閾値とを比較し（ステップＳ６３）、ＭＢＣ１１０による判定が正しいか判定する（ステップＳ６５）。ＭＢＣ１１０による判定が正しくない場合（ステップＳ６５：Ｎｏルート）、処理部１０１１は、エラーログをＦＭＥＭ１００４に保存する（ステップＳ６７）。エラーログは、例えば、ＭＢＣ１１０による判定が誤っていることを示す情報等を含む。なお、サービスプロセッサ１０００はエラーログを表示装置等に出力してもよい。
【００５１】
処理部１０１１は、ＭＢＣ１１０の再起動を実行する（ステップＳ６９）。そして処理を終了する。
【００５２】
一方、ＭＢＣ１１０による判定が正しい場合（ステップＳ６５：Ｙｅｓルート）、処理部１０１１は、異常の検出が所定回数連続しているか判定する（ステップＳ７１）。例えば所定回数が３である場合、世代１の判定結果、世代２の判定結果、及び世代３の判定結果がそれぞれ、異常が検出されたことを示しているか判定される。
【００５３】
異常の検出が所定回数連続していない場合（ステップＳ７１：Ｎｏルート）、異常が発生していないと推定されるため、処理を終了する。一方、異常の検出が所定回数連続している場合（ステップＳ７１：Ｙｅｓルート）、処理部１０１１は、エラーログをＦＭＥＭ１００４に保存する（ステップＳ７３）。エラーログは、例えば、ステップＳ６１において特定された部品の識別情報等を含む。
【００５４】
処理部１０１１は、実行レジスタ１３３の値（ここでは「ＯＦＦ」）をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ７５）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、実行レジスタ１３３の値を処理部１０１１から受信し、実行レジスタ１３３に格納する。
【００５５】
また、処理部１０１１は、ＶＡＬＩＤフラグの値（ここでは「ＯＦＦ」）及び特定された部品の識別情報をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ７７）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、ＶＡＬＩＤフラグの値及び特定された部品の識別情報を処理部１０１１から受信し、ＶＡＬＩＤフラグの値を、コマンドＩ／Ｆ領域１２１の特定された部品についての領域に格納する。そして処理を終了する。これにより、特定された部品について再び割り込みが送信されることを防ぐことができる。
【００５６】
以上のような処理を実行すれば、割り込みを受信したサービスプロセッサ１０００が異常への対処を迅速に行えるようになる。また、ＭＢＣ１１０による判定に誤りが無いか確認できるので、本来は異常が発生していないのに異常への対処を行うことを抑制できるようになる。さらに、異常への対処中（例えば或る部品の保守中）には全部品についてデータの取得を停止するので、異常への対処中であることが原因で不正なデータが取得されるのを防止できるようになる。
【００５７】
次に、図１８を用いて、所定のイベントの発生を検出したサービスプロセッサ１０００が実行する処理について説明する。
【００５８】
まず、処理部１０１１は、所定のイベントが発生したことを検出する（図１８：ステップＳ８１）。所定のイベントとは、例えば、部品交換、情報処理装置１の電源の切断指示、及び監視停止の指示等である。
【００５９】
処理部１０１１は、実行レジスタ１３３の値（ここでは「ＯＦＦ」）をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ８３）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、実行レジスタ１３３の値を処理部１０１１から受信し、実行レジスタ１３３に格納する。
【００６０】
また、処理部１０１１は、ＶＡＬＩＤフラグの値（ここでは「ＯＦＦ」）及びイベントに関連する部品の識別情報をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ８５）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、ＶＡＬＩＤフラグの値及びイベントに関連する部品の識別情報を処理部１０１１から受信し、ＶＡＬＩＤフラグの値を、コマンドＩ／Ｆ領域１２１のイベントに関連する部品についての領域に格納する。そして処理を終了する。これにより、イベントに関連する部品について再び割り込みが送信されることを防ぐことができる。
【００６１】
以上のような処理を実行すれば、イベントの発生に合わせて適切に監視を停止できるようになる。
【００６２】
次に、図１９を用いて、或る部品についての閾値を変更する際にサービスプロセッサ１０００及びＭＢＣ１１０が実行する処理について説明する。
【００６３】
例えば外気の温度が上昇したことに伴い、情報処理装置１の管理者が冷却ファンの回転数を上げるための設定を行ったとする。
【００６４】
これに応じ、サービスプロセッサ１０００の処理部１０１１は、ＶＡＬＩＤフラグの値（ここでは「ＯＦＦ」）及び部品（ここでは冷却ファン）の識別情報をシステムボード１００におけるＭＢＣ１１０に通知する（図１９：ステップＳ９１）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、ＶＡＬＩＤフラグの値及び部品の識別情報を受信し、コマンドＩ／Ｆ領域１２１における対象部品（ここでは冷却ファン）についての領域に格納する（ステップＳ９３）。
【００６５】
処理部１０１１は、変更後の設定に従って新たな閾値を生成する。例えば冷却ファンの回転数を１０００ｒｐｍ（revolution per minute）から１５００ｒｐｍに変更する場合、上限閾値を１１００ｒｐｍから１６００ｒｐｍに変更し、下限閾値を９００ｒｐｍから１４００ｒｐｍに変更する。そして、処理部１０１１は、新たな閾値をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ９５）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、閾値を受信し、コマンドＩ／Ｆ領域１２１における対象部品（ここでは冷却ファン）についての領域に格納する（ステップＳ９７）。
【００６６】
一定時間が経過した後、処理部１０１１は、ＶＡＬＩＤフラグの値（ここでは「ＯＮ」）及び部品（ここでは冷却ファン）の識別情報をシステムボード１００におけるＭＢＣ１１０に通知する（ステップＳ９９）。これに応じ、ＭＢＣ１１０におけるバッファ管理部１１２は、ＶＡＬＩＤフラグの値及び部品の識別情報を受信し、コマンドＩ／Ｆ領域１２１の対象部品（ここでは冷却ファン）についての領域に格納する（ステップＳ１０１）。
【００６７】
ＭＢＣ１１０における実行制御部１１１は、監視処理を実行する（ステップＳ１０３）。監視処理については図１５及び図１６を用いて説明したとおりであるので、ここでは詳細な説明を省略する。
【００６８】
以上のような処理を実行すれば、ハードウエアの設定等が変更された場合には異常検出用の閾値を動的に変更し、監視を適切に継続できるようになる。
【００６９】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したサービスプロセッサ１０００の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７０】
また、上で説明した各データ保持構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７１】
なお、波及故障が発生するような場合には、例えば特許文献４に記載された技術に基づき、故障の原因である部品を特定したうえで本実施の形態の処理を実行してもよい。これにより、本来は故障していない部品を交換することを防止できるようになる。
【００７２】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００７３】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）プロセッサと、（Ｂ）モジュールと、（Ｃ）コントローラとを有する。そして、上で述べたプロセッサは、（ａ１）モジュールの異常を検出するための条件をコントローラに送信し、コントローラは、（ｃ１）モジュールから情報を取得し、（ｃ２）モジュールから取得した情報が条件を満たすか判断し、（ｃ３）モジュールから取得した情報が条件を満たす場合、モジュールの異常を検出したことを示す情報をプロセッサに送信する。
【００７４】
このようにすれば、異常が検出された場合にのみプロセッサに通知が行われるようになり、またコントローラに向いている単純な処理をコントローラに実行させることができるので、プロセッサの処理負荷を軽減し、全体として処理を高速化できるようになる。
【００７５】
また、本情報処理装置は、（Ｄ）記憶装置をさらに有してもよい。そして、上で述べたコントローラは、（ｃ４）モジュールから取得した情報を記憶装置に格納し、プロセッサは、（ａ２）モジュールの異常を検出したことを示す情報をプロセッサから受信した場合、記憶装置からモジュールから取得した情報を読み出し、モジュールから取得した情報が条件を満たすか判断し、（ａ３）モジュールから取得した情報が条件を満たす場合、モジュールの異常に対処するための処理を実行してもよい。これにより、コントローラによって検出された異常に誤りが無いか確認できるようになる。なお、コントローラによって検出された異常についてのみプロセッサが確認をするので、プロセッサの処理負荷が増大することを抑制できる。
【００７６】
また、上で述べたプロセッサは、（ａ４）モジュールから取得した情報が条件を満たす場合、モジュールの監視を停止することを要求する第１の要求をコントローラに送信し、上で述べたコントローラは、（ｃ５）第１の要求をプロセッサから受信した場合、モジュールの監視を停止してもよい。このようにすれば、モジュールの異常を検出したことが何度もプロセッサに通知されることを防止できるようになる。
【００７７】
また、上で述べたプロセッサは、（ａ５）モジュールの監視を停止することを要求する第１の要求と、条件をモジュールの異常を検出するための第２の条件に変更することを要求する第２の要求とをコントローラに送信し、コントローラは、（ｃ６）第１の要求及び第２の要求をプロセッサから受信した場合、モジュールの監視を停止し、条件を第２の条件に変更してもよい。このようにすれば、条件の変更が原因で検出されるべきでない異常が検出されることを抑制できるようになる。
【００７８】
また、上で述べたコントローラは、（ｃ７）モジュールの異常を検出したことを示す情報を割り込みによってプロセッサに送信してもよい。このようにすれば、プロセッサが処理を迅速に開始できるようになる。
【００７９】
本実施の形態の第２の態様に係る監視方法は、（Ａ）プロセッサが、モジュールの異常を監視するコントローラに、モジュールの異常を検出するための条件を送信し、（Ｂ）コントローラが、モジュールから情報を取得し、（Ｃ）コントローラが、モジュールから取得した情報が条件を満たすか判断し、（Ｄ）コントローラが、モジュールから取得した情報が条件を満たす場合、モジュールの異常を検出したことを示す情報をプロセッサに送信する処理を含む。
【００８０】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００８１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８２】
（付記１）
プロセッサと、
モジュールと、
コントローラと、
を有し、
前記プロセッサは、
前記モジュールの異常を検出するための条件を前記コントローラに送信し、
前記コントローラは、
前記モジュールから情報を取得し、
前記モジュールから取得した情報が前記条件を満たすか判断し、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常を検出したことを示す情報を前記プロセッサに送信する、
情報処理装置。
【００８３】
（付記２）
記憶装置
をさらに有し、
前記コントローラは、
前記モジュールから取得した情報を前記記憶装置に格納し、
前記プロセッサは、
前記モジュールの異常を検出したことを示す情報を前記プロセッサから受信した場合、前記記憶装置から前記モジュールから取得した情報を読み出し、前記モジュールから取得した情報が前記条件を満たすか判断し、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常に対処するための処理を実行する
付記１記載の情報処理装置。
【００８４】
（付記３）
前記プロセッサは、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの監視を停止することを要求する第１の要求を前記コントローラに送信し、
前記コントローラは、
前記第１の要求を前記プロセッサから受信した場合、前記モジュールの監視を停止する
付記２記載の情報処理装置。
【００８５】
（付記４）
前記プロセッサは、
前記モジュールの監視を停止することを要求する第１の要求と、前記条件を前記モジュールの異常を検出するための第２の条件に変更することを要求する第２の要求とを前記コントローラに送信し、
前記コントローラは、
前記第１の要求及び前記第２の要求を前記プロセッサから受信した場合、前記モジュールの監視を停止し、前記条件を前記第２の条件に変更する、
付記１記載の情報処理装置。
【００８６】
（付記５）
前記コントローラは、
前記モジュールの異常を検出したことを示す情報を割り込みによって前記プロセッサに送信する
付記１記載の情報処理装置。
【００８７】
（付記６）
プロセッサが、前記モジュールの異常を検出するための条件をコントローラに送信し、
前記コントローラが、前記モジュールから情報を取得し、
前記コントローラが、前記モジュールから取得した情報が前記条件を満たすか判断し、
前記コントローラが、前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常を検出したことを示す情報を前記プロセッサに送信する、
処理を実行する監視方法。
【００８８】
（付記７）
第１の情報処理装置と、
第２の情報処理装置と、
を有し、
前記第１の情報処理装置は、
情報処理システム内のモジュールの異常を検出するための条件を前記第２の情報処理装置に送信し、
前記第２の情報処理装置は、
前記モジュールから情報を取得し、
前記モジュールから取得した情報が前記条件を満たすか判断し、
前記モジュールから取得した情報が前記条件を満たす場合、前記モジュールの異常を検出したことを示す情報を前記第１の情報処理装置に送信する、
情報処理システム。
【符号の説明】
【００８９】
１  情報処理装置    １０１，１０２，１０３，１０４，１０５  部品
１０６  ＣＰＵ    １０７  ＲＡＭ
１００  システムボード    １１０  ＭＢＣ
１１１  実行制御部    １１２  バッファ管理部
１１３  ＪＴＡＧ制御回路    １１４  Ｉ２Ｃ制御回路
１２０  バッファ    １２１  コマンドＩ／Ｆ領域
１２２  結果Ｉ／Ｆ領域    １３０  レジスタ
１３１  割り込みレジスタ    １３２  インターバルレジスタ
１３３  実行レジスタ    １０００  サービスプロセッサ
１００１  ＣＰＵ    １００２  ＲＯＭ
１００３  ＲＡＭ    １００４  ＦＭＥＭ
【図１】
2016110162.tif 000003
【図２】
2016110162.tif 000004
【図３】
2016110162.tif 000005
【図４】
2016110162.tif 000006
【図５】
2016110162.tif 000007
【図６】
2016110162.tif 000008
【図７】
2016110162.tif 000009
【図８】
2016110162.tif 000010
【図９】
2016110162.tif 000011
【図１０】
2016110162.tif 000012
【図１１】
2016110162.tif 000013
【図１２】
2016110162.tif 000014
【図１３】
2016110162.tif 000015
【図１４】
2016110162.tif 000016
【図１５】
2016110162.tif 000017
【図１６】
2016110162.tif 000018
【図１７】
2016110162.tif 000019
【図１８】
2016110162.tif 000020
【図１９】
2016110162.tif 000021