(57)【要約】【課題】  装置が備えるオペレーティングシステムが正常に機能しない状態においても、当該装置の異常を検出し、異常に関する情報を装置の外部に退避させることができる情報処理装置、メモリダンプシステムおよびメモリダンプ方法を提供する。【解決手段】  実施形態によれば、ウォッチドッグタイマのタイムアップにより情報処理装置１０の異常を検出した場合、情報処理装置１０のＢＭＣコントローラ１１０はＳＭＩ／ＳＣＩ割り込みを発生し、複数のＣＰＵのうち動作する１つのＣＰＵを選択し、選択された１つのＣＰＵと協働してメモリダンプデータをネットワーク１１に接続されているメモリダンプ受信サーバ３０に送信する。【選択図】      図４
2011070655.tif 000002
【特許請求の範囲】
【請求項１】
メモリダンプデータ収集装置に接続される情報処理装置であって、
複数のＣＰＵと、
前記複数のＣＰＵに接続される主メモリと、
前記複数のＣＰＵに接続されるベースボードマネージメントコントローラとを具備し、
前記ベースボードマネージメントコントローラは前記情報処理装置の異常を検出すると前記複数のＣＰＵをシステムマネージメントモードに設定し、システムマネージメントモードにおいて動作するＣＰＵからのコマンドに基づいて前記主メモリの記憶内容を前記メモリダンプデータ収集装置に送信する情報処理装置。
【請求項２】
前記ベースボードマネージメントコントローラはバッファメモリを具備し、前記情報処理装置の異常を検出すると前記主メモリの記憶内容を前記バッファメモリにコピーし、ＣＰＵからのコマンドに基づいて前記バッファメモリの内容を前記メモリダンプデータ収集装置に送信する請求項１記載の情報処理装置。
【請求項３】
前記ベースボードマネージメントコントローラはバッファメモリと該バッファメモリよりも大容量の共有メモリとを具備し、前記情報処理装置の異常を検出すると前記主メモリの記憶内容を前記共有メモリにコピーし、ＣＰＵからのコマンドに基づいて前記共有メモリの内容を前記メモリダンプデータ収集装置に送信する請求項１記載の情報処理装置。
【請求項４】
情報処理装置のクロックをカウントするウォッチドッグタイマをさらに具備し、
前記ウォッチドッグタイマがタイムアップすると前記ベースボードマネージメントコントローラは情報処理装置の異常を検出する請求項１記載の情報処理装置。
【請求項５】
情報処理装置から定期的に送信されるハートビートを受信する監視装置をさらに具備し、
前記監視装置によるハートビートの受信が一定時間以上中断されると前記ベースボードマネージメントコントローラは情報処理装置の異常を検出する請求項１記載の情報処理装置。
【請求項６】
複数のＣＰＵと、前記複数のＣＰＵに接続される主メモリと、前記複数のＣＰＵに接続されるベースボードマネージメントコントローラとを具備する情報処理装置と、
前記情報処理装置に接続されるメモリダンプデータ収集装置と、
を具備するメモリダンプシステムであって、
前記ベースボードマネージメントコントローラは前記情報処理装置の異常を検出すると前記複数のＣＰＵをシステムマネージメントモードに設定し、システムマネージメントモードにおいて動作するＣＰＵからのコマンドに基づいて前記主メモリの記憶内容を前記メモリダンプデータ収集装置に送信するメモリダンプシステム。
【請求項７】
前記ベースボードマネージメントコントローラはバッファメモリを具備し、前記情報処理装置の異常を検出すると前記主メモリの記憶内容を前記バッファメモリにコピーし、ＣＰＵからのコマンドに基づいて前記バッファメモリの内容を前記メモリダンプデータ収集装置に送信する請求項６記載のメモリダンプシステム。
【請求項８】
前記ベースボードマネージメントコントローラはバッファメモリと該バッファメモリよりも大容量の共有メモリとを具備し、前記情報処理装置の異常を検出すると前記主メモリの記憶内容を前記共有メモリにコピーし、ＣＰＵからのコマンドに基づいて前記共有メモリの内容を前記メモリダンプデータ収集装置に送信する請求項６記載のメモリダンプシステム。
【請求項９】
情報処理装置のクロックをカウントし、タイムアップすると情報処理装置の異常を検出するウォッチドッグタイマをさらに具備する請求項６記載のメモリダンプシステム。
【請求項１０】
情報処理装置から定期的に送信されるハートビートを受信し、ハートビートの受信が一定時間以上中断されると情報処理装置の異常を検出する監視装置をさらに具備する請求項６記載のメモリダンプシステム。
【請求項１１】
複数のＣＰＵと、前記複数のＣＰＵに接続される主メモリと、前記複数のＣＰＵに接続されるベースボードマネージメントコントローラとを具備する情報処理装置のメモリダンプ方法であって、
前記ベースボードマネージメントコントローラは前記情報処理装置の異常を検出すると前記複数のＣＰＵをシステムマネージメントモードに設定し、システムマネージメントモードにおいて動作するＣＰＵからのコマンドに基づいて前記主メモリの記憶内容をメモリダンプデータ収集装置に送信するメモリダンプ方法。
【請求項１２】
前記ベースボードマネージメントコントローラはバッファメモリを具備し、前記情報処理装置の異常を検出すると前記主メモリの記憶内容を前記バッファメモリにコピーし、ＣＰＵからのコマンドに基づいて前記バッファメモリの内容を前記メモリダンプデータ収集装置に送信する請求項１１記載のメモリダンプ方法。
【請求項１３】
前記ベースボードマネージメントコントローラはバッファメモリと該バッファメモリよりも大容量の共有メモリとを具備し、前記情報処理装置の異常を検出すると前記主メモリの記憶内容を前記共有メモリにコピーし、ＣＰＵからのコマンドに基づいて前記共有メモリの内容を前記メモリダンプデータ収集装置に送信する請求項１１記載のメモリダンプ方法。
【請求項１４】
前記情報処理装置は情報処理装置のクロックをカウントするウォッチドッグタイマをさらに具備し、
前記ウォッチドッグタイマがタイムアップすると前記ベースボードマネージメントコントローラは情報処理装置の異常を検出する請求項１１記載のメモリダンプ方法。
【請求項１５】
前記情報処理装置は情報処理装置により定期的に送信されるハートビートを受信する監視装置をさらに具備し、
前記監視装置によるハートビートの受信が一定時間以上中断されると前記ベースボードマネージメントコントローラは情報処理装置の異常を検出する請求項１１記載のメモリダンプ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、メモリダンプシステムおよびメモリダンプ方法に関する。
【背景技術】
【０００２】
一般に、情報処理装置にあっては、ソフト的あるいはハード的な問題によってオペレーティングシステム（ＯＳ）パニック等の障害が発生した場合に、主メモリの内容を磁気ディスクへ退避（メモリダンプ）し、ディスクへ退避したメモリ情報を後から解析し、障害の発生原因を調査することがある。
【０００３】
このようなメモリダンプを行うシステムとして、例えば、特許文献１に記載のクラスタシステムがある。特許文献１のメモリダンプ方法は、複数のノード間を通信経路によって相互に接続したクラスタシステムにおいて、第１のノードが障害発生時に第１のノードのメモリ内容を第2のノードと共有の記憶装置へ退避するメモリダンプ方法であって、第１のノードにおける記憶装置へのアクセスパスがアクセス可能であるか否かを判断するステップと、アクセスパスがアクセス不可能な場合には、通信経路を使用して第１のノードから第2のノードへメモリ内容を送信するステップと、第2のノードにおける記憶装置へのアクセスパスを使用して記憶装置へメモリ内容を書き込むステップと、を含む。
【０００４】
このため、ＯＳパニック時のメモリ内容の記憶装置への退避処理において、記憶装置へのアクセス経路が障害となった場合であっても、ノード間のデータ転送経路を使って、他方のノードへ送信し、他方のノードにおける記憶装置のアクセス経路を使用することで、ＯＳパニック時のメモリ内容を記憶装置へ退避させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３３４６６８号公報  （段落０００８、００１３）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載されたクラスタシステムでは、ＯＳパニック等の異常検出時にメモリダンプコマンドを出す主体は各ノードであり、メモリダンプ処理はオペレーティングシステムに依存している。すなわち、各ノードのオペレーティングシステムが何らかの原因で動かなくなった場合、メモリダンプを実行することができない。
【０００７】
本発明は、オペレーティングシステムが正常に機能しない状態においても、情報処理装置の異常を検出し、メモリ内容を装置の外部に退避させることができる情報処理装置、メモリダンプシステムおよびメモリダンプ方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、メモリダンプデータ収集装置に接続される情報処理装置であって、複数のＣＰＵと、前記複数のＣＰＵに接続される主メモリと、前記複数のＣＰＵに接続されるベースボードマネージメントコントローラとを具備し、前記ベースボードマネージメントコントローラは前記情報処理装置の異常を検出すると前記複数のＣＰＵをシステムマネージメントモードに設定し、システムマネージメントモードにおいて動作するＣＰＵからのコマンドに基づいて前記主メモリの記憶内容を前記メモリダンプデータ収集装置に送信する。
【０００９】
本発明の他の態様によれば、複数のＣＰＵと、前記複数のＣＰＵに接続される主メモリと、前記複数のＣＰＵに接続されるベースボードマネージメントコントローラとを具備する情報処理装置と、前記情報処理装置に接続されるメモリダンプデータ収集装置と、を具備するメモリダンプシステムであって、前記ベースボードマネージメントコントローラは前記情報処理装置の異常を検出すると前記複数のＣＰＵをシステムマネージメントモードに設定し、システムマネージメントモードにおいて動作するＣＰＵからのコマンドに基づいて前記主メモリの記憶内容を前記メモリダンプデータ収集装置に送信する。
【００１０】
本発明のさらに他の態様によれば、複数のＣＰＵと、前記複数のＣＰＵに接続される主メモリと、前記複数のＣＰＵに接続されるベースボードマネージメントコントローラとを具備する情報処理装置のメモリダンプ方法であって、前記ベースボードマネージメントコントローラは前記情報処理装置の異常を検出すると前記複数のＣＰＵをシステムマネージメントモードに設定し、システムマネージメントモードにおいて動作するＣＰＵからのコマンドに基づいて前記主メモリの記憶内容をメモリダンプデータ収集装置に送信する。
【発明の効果】
【００１１】
本発明は、情報処理装置のオペレーティングシステムが正常に機能しない状態においても、情報処理装置の異常を検出し、メモリ内容を装置の外部に退避させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る情報処理装置を含むメモリダンプシステムの構成の一例を示す図。
【図２】同実施形態に係る情報処理装置の構成の一例を示すブロック図。
【図３】同実施形態に係る情報処理装置の構成の他の例を示すブロック図。
【図４】同実施形態に係るメモリダンプ処理の一例を模式的に示す図。
【図５】同実施形態に係るメモリダンプ方法の一例を示すフローチャート。
【図６】同実施形態の第１の変形例に係るＢＭＣコントローラの構成を示す図。
【図７】第１の変形例に係るメモリダンプ方法の一例を示すフローチャート。
【図８】同実施形態の第２の変形例に係るＢＭＣコントローラの構成を示す図。
【図９】同実施形態の第２の変形例に係るＢＭＣコントローラの他の動作例を示す図。
【図１０】本発明の第２実施形態に係る情報処理装置を含むメモリダンプシステムの構成の一例を示す図。
【図１１】第２実施形態に係るメモリダンプ処理の一例を模式的に示す図。
【図１２】第２実施形態に係るメモリダンプ方法の一例を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、実施の形態について図面を参照しながら説明する。
【００１４】
（第１実施形態）
図１を参照して、第１実施形態に係る情報処理装置を含むメモリダンプシステムの構成の一例を説明する。本実施形態のメモリダンプシステムはネットワーク１１と、ネットワーク１１に接続可能な情報処理装置１０及びメモリダンプ受信サーバ３０とから構成される。情報処理装置１０は、例えば、データベースを備えており、各種アプリケーションプログラムを実行するサーバからなる。ネットワーク１１は２種類のネットワークからなり、通常の情報通信のためのシステムＬＡＮ１１Ａと後述するメモリダンプ制御のためのＢＭＣ(Baseboard Management Controller)専用のＬＡＮ１１Ｂとを含む。メモリダンプ受信サーバ３０は記憶部３１を備える。情報処理装置１０はメモリダンプの必要が生じると、主メモリの内容（メモリダンプデータ）をネットワーク１１（のＢＭＣ用ＬＡＮ１１Ｂ）を経由してメモリダンプ受信サーバ３０に送信する。メモリダンプ受信サーバ３０は受信したメモリダンプデータを記憶部３１に記憶する。
【００１５】
図２は情報処理装置１０の構成の一例を示すブロック図である。情報処理装置１０のマザーボード上には複数の制御部、この場合は４つのＣＰＵ１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄが設けられている。ＣＰＵ１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄはポイントツーポイント方式で互いに接続されている。各ＣＰＵ１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄは主メモリ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｄに接続される。いずれかのＣＰＵ、ここではＣＰＵ１０２ＤがＱＰＩ(Quick Path Interface)バス１０６に接続される。ＱＰＩバス１０６がプロトコル変換部１０８に接続される。プロトコル変換部１０８にはＢＭＣコントローラ１１０、ＲＡＩＤ(Redundant Arrays of Independent Disks)１１２、ＬＣＤ１１４、キーボード１１６、ＬＡＮ  Ｉ／Ｆ１１８も接続される。プロトコル変換部１０８は入力されたデータの形式を通信先のデバイスのプロトコルに従った形式に変換して出力するものである。
【００１６】
プロトコル変換部１０８とＢＭＣコントローラ１１０との間は、ＩＰＭＩ(Intelligent Platform Management Interface)で規定されたＢＭＣコントローラのインターフェースであるＫＣＳ(Keyboard Controller Style)／ＳＭＩＣ(Server Management Interface Chip)／ＢＴ(Block Transfer)インターフェース１２６が接続される。ＫＣＳ／ＳＭＩＣ／ＢＴインターフェース１２６にはフラッシュメモリ等からなり、ＢＩＯＳを格納するＢＩＯＳメモリ１２８が接続される。
【００１７】
ＢＭＣコントローラ１１０は不揮発性メモリ（ＮＶＭ：Non Volatile Memory）１２０、センサ１２２、ＬＡＮ  Ｉ／Ｆ１２４が接続される。
【００１８】
ＣＰＵ１０２Ａ〜１０２Ｄはマイクロプロセッサなどによって実現される。主メモリ１０４Ａ〜１０４Ｄはオペレーティングシステム（ＯＳ）、デバイスドライバ、実行対象のアプリケーションプログラム及び処理データなどを格納するメモリデバイスであり、例えば複数のデュアル・インライ・メモリ・モジュール（以下、ＤＩＭＭと称す。）によって構成される。主メモリ１０４Ａ〜１０４Ｄはマザーボード上に予め実装されているシステムメモリと、ユーザによって必要に応じて装着される拡張メモリとから構成される。これらシステムメモリ及び拡張メモリを構成するＤＩＭＭとしては、シンクロナスＤＲＡＭやＲａｍｂｕｓ等のバンク毎にメモリクロックの供給が必要な高速メモリが利用される。ＬＣＤ１１４は画像データを表示する。
【００１９】
ＲＡＩＤ１１２は、アレイ状に構成された複数のハードディスクドライブ（以下、ＨＤＤと称す。）と、それらを制御するＲＡＩＤコントローラとを含む。ＲＡＩＤコントローラは、ＨＤＤの故障対策として、元のデータを修復するための冗長情報をアレイ構成のＨＤＤに記憶する。さらに、ＲＡＩＤ１１２はコンピュータシステムのオペレーティングシステムやアプリケーションプログラム及びデータを記憶する。オペレーティングシステムやアプリケーションプログラムは、コンピュータシステム起動時、ＲＡＩＤ１１２から主メモリ１０４Ａ〜１０４Ｄにロードされ、実行される。
【００２０】
ＬＡＮ  Ｉ／Ｆ１１８はシステムＬＡＮ１１Ａに接続される。
【００２１】
ＬＡＮ  Ｉ／Ｆ１２４はパケットデータの非同期データ転送（１００Ｍｂｐｓ／１Ｇｐｂｓ）を制御する。ＬＡＮ  Ｉ／Ｆ１２４は、例えばＲＪ４５接続口を介してＢＭＣ専用のＬＡＮ１１Ｂに接続される。
【００２２】
ＮＶＭ１２０には、ＦＲＵ（Field-Replaceable Unit）、ＳＤＲ（Sensor Data Records）およびＳＥＬ（System Event Log）が内蔵されている。ＦＲＵは、シリアルバス接続タイプのＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）またはフラッシュメモリであり、コンピュータを構成する各モジュールの情報（マザーボードや各種デバイスの種類）を記述する為、メーカ番号やシリアル番号等のベンダＩＤとデバイスＩＤを表す情報が製造時に記憶される。ＳＤＲは、シリアルバス接続タイプのＥＥＰＲＯＭまたはフラッシュメモリであり、ＢＭＣコントローラ１１０が管理しているセンサの種類（温度や電圧等）や、異常を識別する為の閾値などを製造時記憶する。ＳＥＬは、シリアルバスタイプのＥＥＰＲＯＭまたはフラッシュメモリであり、例えばＢＭＣコントローラ１１０により情報処理装置の異常を検出した場合、又はセンサ１２２で閾値を超えるエラーを検出した場合、メモリダンプデータが記憶される。
【００２３】
センサ１２２は、ＣＰＵ１０２Ａ〜１０２Ｄで発行されたシステムエラー信号(ＳＥＲＲ信号)／パリティエラー信号(ＰＥＲＲ信号)の発行やＣＰＵの温度等を監視する。センサ１２２は、ＢＭＣコントローラ１１０により、所定間隔毎にポーリングされる。
【００２４】
ＢＭＣコントローラ１１０はコンピュータ（サーバ）のマザーボード上に配置され、ＩＰＭＩ(Intelligent Platform Management Interface)アーキテクチャに基づく特殊なマイクロコントローラであり、ＣＰＵ（ＯＳ）が動作していなくても、電源さえあれば動作する。ＢＭＣコントローラ１１０はシステム管理ソフトウェアとプラットフォームハードウェアとの間のインターフェースを管理する。図示しないコンピュータに内蔵された異なるタイプのセンサは、温度、冷却ファン回転速度、電源状態、ＯＳ状態等に関するパラメータをＢＭＣコントローラ１１０に報告する。ＢＭＣコントローラ１１０はセンサを監視し、いずれかのパラメータが許容範囲外となると、システムの動作不良の可能性をネットワークを介してシステム管理者に通知するものである。
【００２５】
ＢＭＣコントローラ１１０はデータを一時記憶するためのバッファメモリ（後述する）を内蔵する。ＢＭＣコントローラ１１０は、情報処理装置１０の異常が検出され、情報処理装置のオペレーティングシステムが正常に動作しなくなった場合、ＣＰＵ１０２Ａ〜１０２Ｄのうちのいずれか１つのＣＰＵと協働して、メモリダンプデータをＬＡＮ  Ｉ／Ｆ１２４からＢＭＣ専用のＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信する。また、ＢＭＣコントローラ１１０は情報処理装置１０の異常が検出された場合、ＳＭＩ(System Management Interrupt)／ＳＣＩ(System Control Interrupt)を発生・終了させる処理等も行う。
【００２６】
図３は情報処理装置１０の構成の他の例を示すブロック図である。マザーボード上に、ホストバス２００、ＰＣＩバスまたはＰＣＩ−Ｅｘｐｒｅｓｓバス（以下、総称してＰＣＩバス称す。）２０２、２０４、メモリバス２０６、ＩＳＡ（Industry Standard Architecture）バス２０８、及びIPMI（Intelligent Platform Management Interface）仕様に規定されたマザーボード管理コントローラ（ＢＭＣ）のインターフェースであるKCS（キーボードコントローラースタイル）/SMIC（サーバーマネージメントインターフェースチップ）/BT（ブロックトランスファー）インターフェース２１０が配線される。
【００２７】
情報処理装置１０は、４つのＣＰＵ１０２Ａ〜１０２Ｄ、ＣＰＵ−ＰＣＩブリッジ装置（以下、ノースブリッジと称す。）２１２、主メモリ１０４、ＬＣＤ１１４、ＲＡＩＤ１１２、ＬＡＮ  Ｉ／Ｆ１１８、ＰＣＩ−ＩＳＡブリッジ装置（以下、サウスブリッジと称す。）２１４、ＢＩＯＳメモリ１２８、キーボード１１６、マウス１１６Ｂ、ＢＭＣ１１０、センサ１２２、ＮＶＭ１２０、ＬＡＮ  Ｉ／Ｆ１２４などが設けられている。
【００２８】
ＣＰＵ１０２Ａ〜１０２Ｄの入出力ピンに直結されているホストバス２００は、例えば１３３Ｍｈｚのバンド幅を有する６４ビット幅のデータバスを有する。主メモリ１０４は、専用のメモリバス２０６を介してノースブリッジ２１２に接続される。メモリバス２０６のデータバスとしては、ホストバス２００のデータバスを利用することも出来る。この場合、メモリバス２０６は、アドレスバスと各種メモリ制御信号線とから構成される。
【００２９】
ノースブリッジ２１２は、ホストバス２００とＰＣＩバス２０２、２０４との間を繋ぐブリッジデバイスであり、ＰＣＩバス２０２、２０４のバスマスタの１つとして機能する。ノースブリッジ２１２は、ＰＣＩバス２０２、２０４に接続されたデバイス間のバス調停回路、ホストバス２００とＰＣＩバス２０２、２０４との間で、データ及びアドレスを含むバスサイクルを双方向で変換する機能、及びメモリバス２０６を介して主メモリ１０４をアクセス制御する機能などを有する。
【００３０】
ＰＣＩバス２０２、２０４はクロック同期型の入出力バスであり、ＰＣＩバス２０２、２０４上の全てのバスサイクルはバスクロックに同期して行われている。ＰＣＩバス２０２、２０４は、すべてのメモリにアクセス可能である。ビデオＲＡＭ１１４Ｂを介してＰＣＩバス２０２に接続されたＬＣＤ１１４は画像データを表示する。
【００３１】
ＬＡＮ  Ｉ／Ｆ１１８、ＲＡＩＤ１１２はＰＣＩバス２０２に接続される。
【００３２】
サウスブリッジ２１４は、ＰＣＩバス２０４とＩＳＡバス２０８との間を繋ぐブリッジデバイスである。サウスブリッジ２１４には、ＩＳＡバス２０８が接続され、各種バス間のインターフェースとして機能する。サウスブリッジ２１４は、ＰＣＩバス２０２、２０４上のＰＥＲＲ（パリティエラー）信号やＳＥＲＲ（システムエラー）信号の検出に伴い、ＳＭＩ／ＳＣＩ（System Management Interrupts／System Control Interrupt）信号をＣＰＵ１０２Ａ〜１０２Ｄに発行する回路を内蔵する。
【００３３】
ＩＳＡバス２０８には、キーボード１１６、マウス１１６Ｂ、ＢＩＯＳメモリ１２８等が接続されている。
【００３４】
サウスブリッジ２１４は、ＢＩＯＳメモリ１２８から読み出したＢＩＯＳの制御の下、ＢＭＣ１１０との間で通信を実行し、ＰＣＩバス２０２、２０４からの情報をＢＭＣ１１０に通知する。
【００３５】
図４は一例として図２に示す情報処理装置１０で処理される各種コマンドやデータの流れを模式的に示す図である。図３に示す情報処理装置１０で処理される各種コマンドやデータの流れも同様であるので、説明は省略する。
【００３６】
ＢＭＣコントローラ１１０は、データを一時記憶するための記憶部であるバッファメモリ４００を内蔵している。バッファメモリ４００は情報処理装置１０が標準的に備えているメモリデバイスであり、バッファメモリ４００の空き領域をメモリダンプデータの記憶のために利用する。メモリダンプデータを上述したバッファメモリ４００にコピーする手順としては、まず、情報処理装置１０の異常（エラー）が発生し、情報処理装置１０のオペレーティングシステムが正常に動作しない状態となる。例えば、ＲＡＩＤ１１２のＨＤＤ等のクラスタエラー（ハードウェアエラー）やアプリケーションの動作・応答エラー（ソフトウェアエラー）等が発生した場合、情報処理装置１０が異常であると判定できる。ＢＭＣコントローラ１１０は情報処理装置のクロックを計数するウオッチドッグタイマ４０２を具備し、ウオッチドッグタイマのタイムアップが検出された場合、情報処理装置１０が異常であると判別する。
【００３７】
情報処理装置１０のオペレーティングシステムが正常に動作しなくなった状態（ＢＩＯＳは正常に動作している状態）においては、メモリダンプデータは例えば主メモリ１０４Ｄに記憶されているとする。ＢＭＣコントローラ１１０は、ウオッチドッグタイマのタイムアップが検出された場合、ＳＭＩ／ＳＣＩ割り込み４０４を発生させて、複数のＣＰＵ１０２Ａ〜１０２Ｄに対して排他制御を行うことにより、いずれか１つのＣＰＵ、例えば１０２Ｄのみを動作可能とする。
【００３８】
動作可能とされたＣＰＵ１０２Ｄは、主メモリ１０４Ｄからメモリダンプデータ４０６をＢＭＣコントローラ１１０のバッファメモリ４００にコピーする。その後、ＢＭＣコントローラ１１０はＣＰＵ１０２Ｄからのメモリダンプ送信コマンド４０８に応答してバッファメモリ４００に記憶されたメモリダンプデータをＬＡＮ  Ｉ／Ｆ１２４からＢＭＣ用ＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信する。
【００３９】
図５は本実施形態のメモリダンプ方法を示すフローチャートである。
【００４０】
情報処理装置１０が起動されると、ＢＭＣコントローラ１１０はウォッチドッグタイマがタイムアップしたか否かを判定する（ブロックＢ１０２）。情報処理装置１０が正常に動作している限りは、ウォッチドッグタイマは常にリセットされ、タイムアップしない。しかし、ＯＳが動作しない等の情報処理装置１０の異常状態となると、ウォッチドッグタイマはタイムアップする。ウォッチドッグタイマがタイムアップすると、ＳＭＣコントローラ１１０はＳＭＩ(System Management Interrupt)／ＳＣＩ(System Control Interrupt)割り込みを発生する（ブロックＢ１０４）。ＳＭＩ／ＳＣＩ割り込みが発生されると、ＣＰＵは排他制御によりいずれか１つのみ動作する状態になり、残りのＣＰＵは動作しない。ここでは、メモリダンプデータを格納している主メモリ（ここでは、主メモリ１０４Ｄ）に対応するＣＰＵ１０２Ｄが動作状態とされる。
【００４１】
動作状態のＣＰＵ１０２Ｄは主メモリ１０４Ｄ内のメモリダンプデータをＢＭＣコントローラ１１０のバッファメモリ４００にコピー（記憶）する（ブロックＢ１０６）。続いて、ＣＰＵ１０２Ｄはメモリダンプデータ送信コマンドをＢＭＣコントローラ１１０に送信する（ブロックＢ１０８）。メモリダンプデータ送信コマンドは、例えば、ＩＰＭＩ仕様に規定されたＢＭＣコントローラ１１０のインターフェースであるＫＣＳ／ＳＭＩＣ／ＢＴインターフェースを利用してメモリダンプデータを送信するＯＥＭ（拡張）コマンドである。
【００４２】
ＢＭＣコントローラ１１０のバッファメモリ４００に記憶されたメモリダンプデータはＢＭＣ用ＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信される（ブロックＢ１１０）。なお、メモリダンプデータをバッファメモリ４００に一時記憶させる際メモリダンプデータの容量がバッファメモリ４００の容量を超えてしまう場合は、バッファメモリ４００の容量を超えるメモリダンプデータを順次、メモリダンプ受信サーバ３０に送信するようにして処理を行う。
【００４３】
ＢＭＣコントローラ１１０は、メモリダンプデータをメモリダンプ受信サーバ３０に送信した後に、ＳＭＩ／ＳＣＩの処理の終了か否かを判定して（ブロックＢ１１２）、否の場合はブロックＢ１０６の動作に戻り、終了の場合は割り込みモードを解除して、情報処理装置１０を通常モードに復帰させる（ブロックＢ１１２）。
【００４４】
第１実施形態によれば、情報処理装置のオペレーティングシステムがハングアップして正常に機能しない（ＢＩＯＳは正常に機能している）状態においても、ＢＭＣコントローラ１１０が情報処理装置の異常を検出し、メモリダンプデータをバッファメモリ４００内にコピーし、動作状態のＣＰＵからの送信コマンドに応答してバッファメモリ４００からメモリダンプデータを情報処理装置の外部に退避させることができる。
【００４５】
第１実施形態の変形例を説明する。
【００４６】
図６は第１の変形例のＢＭＣコントローラ１１０を示す。上述した第１実施形態では、ＢＭＣコントローラ１１０にバッファメモリ４００を備えており、バッファメモリ４００の空き領域をメモリダンプデータの記憶に利用している。一方、図６の変形例では、バッファメモリ４００をメモリダンプデータの記憶のために利用せずに、ＢＭＣコントローラ１１０にバッファメモリ４００よりも容量の大きい共有メモリ（共有記憶部）４１２を設ける。
【００４７】
図７は第１の変形例のメモリダンプ方法を示すフローチャートのうち、図５と異なる部分のみを示す。ＢＭＣコントローラ１１０は図５のブロックＢ１０２と同様に情報処理装置１０の異常を検出すると、図５のブロックＢ１０４と同様にＳＭＩ／ＳＣＩ割り込みを発生する。
【００４８】
ブロックＢ１０６Ａでは、動作状態のＣＰＵ１０４Ｄは主メモリ１０２Ｄ内のメモリダンプデータをＢＭＣコントローラ１１０の共有メモリ４１２にコピー（記憶）する。続いて、ブロックＢ１０８ＡでＣＰＵ１０４Ｄは、共有メモリ送信コマンドをＢＭＣコントローラ１１０に送信する。共有メモリ送信コマンドは、ＢＭＣコントローラ１１０の共有メモリ４１２に記憶されたメモリダンプデータをＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信させるためのＯＥＭ（拡張）コマンドである。
【００４９】
ＢＭＣコントローラ１１０は、ブロックＢ１１０Ａで共有メモリ送信コマンドに基づいて、共有メモリ４１２に記憶されたメモリダンプデータを選択されたＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信する。
【００５０】
ＢＭＣコントローラ１１０は、メモリダンプデータをメモリダンプ受信サーバ３０に送信した後に、ＳＭＩ／ＳＣＩの処理の終了か否かを判定して（ブロックＢ１１２）、否の場合はブロックＢ１０６Ａの動作に戻り、終了の場合は割り込みモードを解除して、情報処理装置１０を通常モードに復帰させる（ブロックＢ１１２）。
【００５１】
第１変形例によれば、バッファメモリ４００よりも容量が大きい大容量の共有メモリ４１２をＢＭＣコントローラ１１０内に設けることにより、第１実施形態と比べて、メモリダンプデータをメモリダンプ受信サーバ３０に送信する処理速度を向上させることができる。
【００５２】
次に、第１実施形態の第２の変形例を説明する。
【００５３】
図８は第２の変形例のＢＭＣコントローラ１１０を示す。ＢＭＣコントローラ１１０にバスマスタＤＭＡコントローラ４２０を内蔵することにより、ＢＭＣコントローラ１１０がバスマスタとなり、ＢＭＣコントローラ１１０がメモリダンプデータを共有メモリ４１２に一時記憶する。
【００５４】
第２の変形例でのメモリダンプの手順としては、上述した第１の変形例と同様に、ＢＭＣコントローラ１１０は情報処理装置１０の異常を検出すると、ＳＭＩ／ＳＣＩ割り込みを発生する。
【００５５】
ＢＭＣコントローラ１１０はＳＭＩ／ＳＣＩ割り込みの発生後、バスマスタＤＭＡコントローラ４２０によってバスマスタとなる。バスマスタとなったＢＭＣコントローラ１１０は、主メモリ内のメモリダンプデータをＢＭＣコントローラ１１０の共有メモリ４１２にコピー（記憶）する。続いて、動作状態のＣＰＵは、共有メモリ送信コマンドをＢＭＣコントローラ１１０に送信する。共有メモリ送信コマンドは、ＢＭＣコントローラ１１０の共有メモリ４１２に記憶されたメモリダンプデータをＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信させるためのＯＥＭ（拡張）コマンドである。
【００５６】
ＢＭＣコントローラ１１０は、ブロックＢ１１０Ａで共有メモリ送信コマンドに基づいて、共有メモリ４１２に記憶されたメモリダンプデータを選択されたＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信する。
【００５７】
ＢＭＣコントローラ１１０は、メモリダンプデータをメモリダンプ受信サーバ３０に送信した後に、ＳＭＩ／ＳＣＩの処理を終了させて、情報処理装置１０を通常モードに復帰させる。
【００５８】
第２の変形例によれば、ＢＭＣをバスマスタとして機能させた場合においても第１の変形例と同様の効果を奏することができる。
【００５９】
図８のＢＭＣコントローラ１１０の他の動作を図９に示す。ブロックＢ１４２でＢＭＣコントローラ１１０は１つのＯＥＭコマンド（例えば、全てのメモリをダンプしなさい命令等）を受信するまで待機する。コマンドを受信すると、ブロックＢ１４４でＢＭＣコントローラ１１０は自立的にＤＭＡで主メモリをリードし、メモリダンプデータをＬＡＮ１１Ｂへ送信する。ブロックＢ１４６で終了が検出されるまで、メモリリード、データ送信が繰り返される。
【００６０】
（第２実施形態）
第１実施形態は情報処理装置１０の異常を情報処理装置内でＢＭＣコントローラ１１０が検出したが、第２実施形態では外部に設けた監視装置で情報処理装置１０の異常を検出する。図１０は第２実施形態のメモリダンプシステムの構成の一例を示す図である。図１と同じ部分は同じ参照数字を付して詳細な説明は省略する。
【００６１】
本実施形態のメモリダンプシステムはネットワーク１１と、ネットワーク１１に接続可能な情報処理装置１０、監視装置２０及びメモリダンプ受信サーバ３０とから構成される。監視装置２０は異常検出部２１および送信部２２を備える。監視装置２０の異常検出部２１は情報処理装置１０の状態をネットワーク１１を経由して監視し、異常を検出する。具体的には、異常検出部２１は情報処理装置１０から一定周期で出力されるハートビート信号を受信し、ハートビート信号が一定期間以上無信号の場合、情報処理装置１０の異常を検出する。監視装置２０は情報処理装置１０の異常を検出した場合は、送信部２２を介して情報処理装置１０にメモリダンプ実行コマンドを送信する。メモリダンプ実行コマンドもＩＰＭＩ仕様に規定されたＢＭＣコントローラ１１０のインターフェースであるＫＣＳ／ＳＭＩＣ／ＢＴインターフェースを利用してメモリダンプデータを送信するＯＥＭ（拡張）コマンドである。なお、メモリダンプ受信サーバ３０及び監視装置２０は、１つの装置内に配置され、一体的に構成されているようにしてもよい。
【００６２】
図１１は情報処理装置１０で処理される各種コマンドやデータの流れを模式的に示す図である。
【００６３】
メモリダンプデータをバッファメモリ４００にコピーする手順としては、まず、監視装置２０がハートビートが一定期間以上無信号の場合、情報処理装置１０の異常を検出し、メモリダンプ実行コマンドを情報処理装置１０に送信する。情報処理装置１０はメモリダンプ実行コマンド４２０を受信部１４で受信すると、ＢＭＣコントローラ１１０はＳＭＩ／ＳＣＩ割り込み４０４を発生させて、複数のＣＰＵ１０２Ａ〜１０２Ｄに対して排他制御を行うことにより、いずれか１つのＣＰＵ１０２Ｄのみを動作可能とする。
【００６４】
動作可能とされたＣＰＵ１０２Ｄは、主メモリ１０４Ｄからメモリダンプデータ４０６をＢＭＣコントローラ１１０のバッファメモリ４００にコピーする。その後、ＢＭＣコントローラ１１０はＣＰＵ１０２Ｄからのメモリダンプ送信コマンド４０８に応答してバッファメモリ４００に記憶されたメモリダンプデータをＬＡＮ  Ｉ／Ｆ１２４からＢＭＣ用ＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信する。
【００６５】
図１２は第２実施形態のメモリダンプ方法を示すフローチャートである。第１実施形態の動作と異なるのは、情報処理装置１０の異常検出であり、他は同じである。ブロックＢ１０２Ｂに示すように、監視装置２０からのメモリダンプ実行コマンド４２０が受信部１４で受信されたか否か判定される。メモリダンプ実行コマンド４２０が受信された場合は、情報処理装置１０の動作が異常である場合であり、以下、第１実施形態と同様に、主メモリ内のメモリダンプデータをＢＭＣコントローラのバッファメモリにコピーし、その後、メモリダンプデータ送信コマンドによりバッファメモリに記憶されたメモリダンプデータはＢＭＣ用ＬＡＮ１１Ｂを介してメモリダンプ受信サーバ３０に送信される。
【００６６】
第２実施形態によっても、情報処理装置のオペレーティングシステムがハングアップして正常に機能しない状態においても、情報処理装置の異常を検出し、メモリダンプデータをバッファメモリ４００内にコピーし、動作状態のＣＰＵからの送信コマンドに応答してバッファメモリ４００からメモリダンプデータを情報処理装置の外部に退避させることができる。
【００６７】
第２実施形態も第１実施形態と同様に第１、第２の変形例が可能である。
【００６８】
情報処理装置の異常の検出について２つの実施形態を説明したが、異常の検出はこれに限らず、様々なものを利用できる。例えば、図示しないメモリコントローラがメモリエラーを検出すると、情報処理装置の異常と判断できる。
【００６９】
第１、第２実施形態の情報処理装置はコンピュータ、サーバによって実現する例を示したが、これに限らずＣＰＵを含む様々なコンシューマ機器によって実現することもできる。
【００７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７１】
１０…情報処理装置、１１…ネットワーク、１１Ａ…システムＬＡＮ、１１Ｂ…ＢＭＣ用ＬＡＮ、２０…監視装置、２１…異常検出部、２２…送信部、３０…メモリダンプ受信サーバ、３１…記憶部、１０２Ａ、１０２Ｂ、１０２Ｃ、１０２Ｄ…ＣＰＵ、１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｄ…主メモリ、１０６…ＱＰＩバス、１０８…プロトコル変換部、１１０…ＢＭＣコントローラ、４００…バッファメモリ、４０２…ウォッチドッグタイマ、４０４…ＳＭＩ／ＳＣＩコマンド、４０６…メモリダンプデータ、４１２…共有メモリ、４２０…バスマスタ。
【図１】
2011070655.tif 000003
【図２】
2011070655.tif 000004
【図３】
2011070655.tif 000005
【図４】
2011070655.tif 000006
【図５】
2011070655.tif 000007
【図６】
2011070655.tif 000008
【図７】
2011070655.tif 000009
【図８】
2011070655.tif 000010
【図９】
2011070655.tif 000011
【図１０】
2011070655.tif 000012
【図１１】
2011070655.tif 000013
【図１２】
2011070655.tif 000014