(57)【要約】【課題】拡張カードを有する情報処理装置において、拡張カードにデータを読み書きする際にエラーが発生した場合、エラーの原因を特定して、復旧不可能な重大な傷害に発展する前に処置できる、高い信頼性と可用性を保障する。【解決手段】情報処理装置は、外部で検出されたエラー情報が書き込まれるエラー格納領域、および内部で検出されたエラー情報が書き込まれるエラーレジスタを備えた拡張カードと、前記拡張カードにデータを読み書きする際にエラーを検出すると、前記拡張カードのエラー格納領域にエラー情報を書き込み、該エラーを外部に通知するプロセッサと、前記プロセッサからエラーが通知されると、前記拡張カードのエラー格納領域に書き込まれたエラー情報、および前記拡張カードのエラーレジスタに書き込まれたエラー情報を採取して記録する保守プロセッサを有する。【選択図】図１
2010122873.tif 000002
【特許請求の範囲】
【請求項１】
外部で検出されたエラー情報が書き込まれるエラー格納領域、および内部で検出されたエラー情報が書き込まれる第１のエラーレジスタを備えた拡張カードと、
前記拡張カードにデータを読み書きする際にエラーを検出すると、前記拡張カードのエラー格納領域にエラー情報を書き込み、該エラーを外部に通知するプロセッサと、
前記プロセッサからエラーが通知されると、前記拡張カードのエラー格納領域に書き込まれたエラー情報、および前記拡張カードの第１のエラーレジスタに書き込まれたエラー情報を採取して記録する保守プロセッサと、
を有する情報処理装置。
【請求項２】
データ転送中に検出したエラー情報を書き込み、前記保守プロセッサによって該エラー情報が読み出される第２のエラーレジスタを備えた、前記プロセッサと前記拡張カードのデータ転送を制御するバスコントローラをさらに有する請求項１記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記拡張カードにデータを読み書きする際にエラーを所定回数検出すると、前記拡張カードのエラー格納領域にエラー情報を書き込み、前記保守プロセッサにエラーを通知する請求項１または２記載の情報処理装置。
【請求項４】
前記保守プロセッサは、
前記プロセッサからエラーが通知されると、前記拡張カードのエラー格納領域に書き込まれたエラー情報を採取し、該エラー情報に関連する前記第１のエラーレジスタまたは前記第２のエラーレジスタの少なくとも一方に書き込まれたエラー情報を採取する請求項２または３記載の情報処理装置。
【請求項５】
外部で検出されたエラー情報が書き込まれるエラー格納領域、および内部で検出されたエラー情報が書き込まれる第１のエラーレジスタを備えた拡張カードと、
該拡張カードにデータを読み書きする際にエラーを検出すると、該拡張カードのエラー格納領域にエラー情報を書き込み、該エラーを外部に通知するプロセッサと、
保守プロセッサと、
を有する情報処理装置の前記保守プロセッサによるエラー情報採取方法であって、
前記保守プロセッサが、
前記プロセッサからエラーが通知されると、前記拡張カードのエラー格納領域に書き込まれたエラー情報、および前記拡張カードの第１のエラーレジスタに書き込まれたエラー情報を採取し、
前記拡張カードのエラー格納領域に書き込まれたエラー情報、および前記拡張カードの第１のエラーレジスタに書き込まれたエラー情報を記録するエラー情報採取方法。
【請求項６】
前記情報処理装置は、
データ転送中に検出したエラー情報を書き込み、前記保守プロセッサによって該エラー情報が読み出される第２のエラーレジスタを備えた、前記プロセッサと前記拡張カードのデータ転送を制御するバスコントローラを有し、
前記保守プロセッサが、
前記プロセッサからエラーが通知されると、前記バスコントローラの第２のエラーレジスタに書き込まれたエラー情報を採取する請求項５記載のエラー情報採取方法。
【請求項７】
前記保守プロセッサが、
前記プロセッサからエラーが通知されると、前記拡張カードのエラー格納領域に書き込まれたエラー情報に関連する前記第１のエラーレジスタまたは前記第２のエラーレジスタの少なくとも一方に書き込まれたエラー情報を採取する請求項６記載のエラー情報採取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張カードを備えた情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置でエラーを検出した場合、利用者は早急にエラーの原因を特定してその原因を取り除き、情報処理装置を復旧させて処理を再開する必要がある。
【０００３】
情報処理装置は、ハードディスクやフレキシブルディスクなどの記憶装置にデータを書き込み、記憶装置からデータを読み出す。記憶装置にデータを書き込む際、あるいは記憶装置からデータを読み出す際、情報処理装置は、記憶装置の性能に応じた所定の時間内にデータを転送できなかったり、記憶装置の劣化のためにデータを読み出せなかったりする場合がある。このとき、記憶装置のコントローラが処理をリトライすることにより情報処理装置は復旧する場合がある。処理のリトライに成功すると、記憶装置のコントローラは情報処理装置のプロセッサにエラーの発生を通知しない。このため、情報処理装置はエラーが発生したことを認識しないまま継続して動作する。一方、処理のリトライに失敗すると、記憶装置のコントローラは、プロセッサにエラーの発生を通知する。このとき、プロセッサは記憶装置へのデータの書き込みあるいは記憶装置からのデータの読み出しをリトライする。プロセッサがリトライに成功すると、情報処理装置はエラーの原因が不明なまま継続して動作する。
【０００４】
また、情報処理装置では、機能を拡張するために、あるいは本体に装備されていない機能を追加するために、拡張カードが用いられる。拡張カードには、さまざまな周辺機器にデータの書き込みあるいは周辺機器からデータの読み出しを行うためのＳＣＳＩカードのようなインタフェースカードなどがある。情報処理装置が拡張カードを経由してデータ転送を行う際、データ転送に失敗すると、拡張カードは周辺機器を再起動してからデータ転送をリトライする。処理のリトライに成功すると、拡張カードは情報処理装置のプロセッサにエラーの発生を通知しない。このため、情報処理装置はエラーが発生したことを認識しないまま継続して動作する。一方、処理のリトライに失敗すると、拡張カードは、プロセッサにエラーの発生を通知する。このとき、プロセッサは拡張カードを再初期化してからデータ転送をリトライする。プロセッサがリトライに成功すると、情報処理装置はエラーの原因が不明なまま継続して動作する。
【０００５】
特許文献１では、記憶装置の予防保守交換時期を推測するために、記憶装置からエラー情報を採取する方法が提示されている。
【０００６】
また、特許文献２では、記憶装置が故障する前にユーザがあらかじめ対策を講じることができるように、記憶装置にアクセスした回数およびエラーした回数をカウントして記憶装置の状態を把握する方法が提示されている。
【特許文献１】特開２００２−２２９９２３号公報
【特許文献２】特開２００８−１７１２１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したような背景技術の情報処理装置ではエラーの発生が認識されなかったり、エラーの原因が不明なままだったりするため、エラーの原因を特定できない。このため、エラーの原因箇所を交換しないまま情報処理装置を継続して動作させて、復旧不可能な重大な障害に発展するおそれがある。
【０００８】
本発明の目的は、拡張カードにデータを読み書きする際にエラーが発生した場合、エラーの原因を特定して、復旧不可能な重大な傷害に発展する前に処置できる、高い信頼性と可用性を保障する情報処理装置を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の情報処理装置は、外部で検出されたエラー情報が書き込まれるエラー格納領域、および内部で検出されたエラー情報が書き込まれるエラーレジスタを備えた拡張カードと、前記拡張カードにデータを読み書きする際にエラーを検出すると、前記拡張カードのエラー格納領域にエラー情報を書き込み、該エラーを外部に通知するプロセッサと、前記プロセッサからエラーが通知されると、前記拡張カードのエラー格納領域に書き込まれたエラー情報、および前記拡張カードのエラーレジスタに書き込まれたエラー情報を採取して記録する保守プロセッサを有する。
【発明の効果】
【００１０】
本発明によれば、情報処理装置の拡張カードにデータを読み書きする際にエラーが発生した場合、エラーの原因を特定するための情報を採取でき、高い信頼性と可用性を保障できる。
【発明を実施するための最良の形態】
【００１１】
次に本発明について図面を参照して詳細に説明する。
【００１２】
図１は本発明の一実施形態における情報処理装置の構成を示すブロック図である。
【００１３】
図１に示すように、本実施形態の情報処理装置２０は、プロセッサ１、バスコントローラ２、メモリ４、拡張カード５、保守プロセッサ９および保守メモリ１０を有する。
【００１４】
プロセッサ１は、拡張カード５を制御する拡張カードドライバをはじめ、情報処理装置２０の所定の機能を提供するプログラムにしたがって処理を実行する。
【００１５】
バスコントローラ２は、プロセッサ１、メモリ４および拡張カード５のデータ転送を制御する。バスコントローラ２は、データ転送中に検出されたエラー情報を記憶するエラーレジスタ３を有する。エラーレジスタ３にはバスコントローラ２によってエラー情報が書き込まれ、保守プロセッサ９によってそのエラー情報が読み出される。なお、エラー情報には、復旧不可能な致命的エラー、ハードウェアが自動的に誤りを訂正できる訂正可能エラーおよび再度データ転送することで処理を継続できるリトライ可能エラーなどがある。
【００１６】
メモリ４は、情報処理装置２０の所定の機能を提供するプログラムおよびデータを記憶するための記憶装置である。
【００１７】
拡張カード５は、情報処理装置本体に装備されていない所定の機能を提供する。拡張カード５は、拡張カードドライバにしたがってプロセッサ１により制御される。提供する機能によって、周辺装置８が用いられ、拡張カード５と周辺装置８はケーブル３２を介して接続される。拡張カード５は、検出されたエラー情報を記憶するエラーレジスタ７を有する。エラーレジスタ７には拡張カード５によってエラー情報が書き込まれ、保守プロセッサ９によってそのエラー情報が読み出される。さらに、拡張カード５は、プロセッサ１が拡張カードにアクセスする際に検出したエラー情報を記憶するエラー格納領域６を有する。エラー格納領域６にはプロセッサ１によってエラー情報が書き込まれ、保守プロセッサ９によってそのエラー情報が読み出される。
【００１８】
保守プロセッサ９は、情報処理装置２０の保守で用いるエラー情報を管理する。保守プロセッサ９はプロセッサ１が停止しても稼動できる。保守プロセッサ９は、情報処理装置２０でエラーが発生すると、保守パス３３を介してバスコントローラ２のエラーレジスタ３からエラー情報を採取し、保守パス３４を介して拡張カード５のエラー格納領域６およびエラーレジスタ７からエラー情報を採取する。また、保守プロセッサ９は、採取したエラー情報を保守メモリ１０に書き込む。
【００１９】
保守メモリ１０は、保守プロセッサ９が実行するプログラムおよび保守プロセッサ９が採取したエラー情報を記憶するための記憶装置である。
【００２０】
システムバス３０は、プロセッサ１とバスコントローラ２およびバスコントローラ２とメモリ４を接続するために用いられる。システムバス３０を介してプロセッサ１とメモリ４はデータを送受信する。
【００２１】
ＩＯバス３１は、バスコントローラ２と拡張カード５を接続するために用いられる。ＩＯバス３１を介してバスコントローラ２と拡張カード５はデータを送受信する。ＩＯバスの規格にはＰＣＩあるいはＰＣＩ−Ｅｘｐｒｅｓｓなどがある。
【００２２】
保守パス３３は、バスコントローラ２と保守プロセッサ９を接続するために用いられる。保守パス３３を介してバスコントローラ２と保守プロセッサ９はデータを送受信する。保守パスの規格にはＳＭＢｕｓなどがある。
【００２３】
保守パス３４は、拡張カード５と保守プロセッサ９を接続するために用いられる。保守パス３４を介して拡張カード５と保守プロセッサ９はデータを送受信する。
【００２４】
システムバス３５は、保守プロセッサ９と保守メモリ１０を接続してデータを通信する。
【００２５】
なお、プロセッサ１および保守プロセッサ９は、一般的に使用されるＣＰＵである。バスコントローラ２は一般的にＬＳＩとして提供されるコントローラである。
【００２６】
次に図１に示した情報処理装置のプロセッサ１の処理手順について図２のフローチャートを参照して説明する。
【００２７】
プロセッサ１はメモリ４に保存されたプログラムにしたがって以下に記載する処理を実行する。
【００２８】
プロセッサ１は、処理を開始すると（ステップＳ１）、まず、拡張カード５に所定のデータを書き込みまたは拡張カード５から所定のデータを読み出すためのＩＯ処理を実行する（ステップＳ２）。ＩＯ処理実行後、ＩＯ処理が正常に実行できたか否かを判別し（ステップＳ３）、ＩＯ処理が正常に実行できた場合は処理を終了する（ステップＳ１２）。ＩＯ処理が正常に実行できなかった場合、特定の復旧処理を実行することによって情報処理装置２０の復旧が可能か否かを判断する（ステップＳ４）。特定のハードウェアに不具合があり、情報処理装置２０の復旧が不可能であると判断する場合、情報処理装置２０の交換が必要になるため、所定のエラー処理を実行し（ステップＳ１１）、処理を終了する（ステップＳ１２）。一方、周辺装置８の媒体不良によるエラーあるいはＩＯバス３１で発生したリトライ可能エラーのようなエラーが発生していて、周辺装置８あるいは拡張カード５の再起動によって情報処理装置２０の復旧が可能であると判断する場合は、ステップＳ５へ移行する。
【００２９】
ステップＳ５でプロセッサ１は、拡張カード５のエラー格納領域６にエラー情報を書き込むか否かを判別する。プロセッサ１は、拡張カード５のエラー格納領域６にエラー情報を書き込み、保守プロセッサ９にエラーの発生を通知すると、保守プロセッサ９がエラー情報を採取する間、ＩＯ処理を停止しなければならない。このため、情報処理装置２０の処理性能が低下する可能性がある。そこで、プロセッサ１は、性能低下を低減するために、あらかじめ設定された所定回数以上のリトライ可能エラーを検出すると、拡張カード５のエラー格納領域６にエラー情報を書き込み、保守プロセッサ９にエラーの発生を通知する。
【００３０】
エラー情報を書き込む場合、プロセッサ１は、拡張カード５のエラー格納領域６にエラー情報を書き込み（ステップＳ６）、エラー発生通知を保守プロセッサ１１に送信する（ステップＳ７）。その後、保守プロセッサ１１からエラー発生通知の応答を受信するまで待機する（ステップＳ８）。
【００３１】
プロセッサ１は、保守プロセッサ９からエラー発生通知に対する応答を受けた場合あるいはステップＳ７で拡張カード５のエラー格納領域６にエラー情報を書き込まなかった場合、情報処理装置２０の復旧を試みる（ステップＳ９）。例えば、エラーの原因が周辺装置８の媒体不良によるエラーである場合、周辺装置８にリセット信号を入力して周辺装置８を再起動する。また、エラーの原因が拡張カード５とバスコントローラ２を接続するＩＯバス３１で発生したリトライ可能エラーである場合、拡張カード５にリセット信号を入力して拡張カード５を再起動する。
【００３２】
プロセッサ１は、復旧処理の結果、情報処理装置２０が復旧したか否かを判別する（ステップＳ１０）。情報処理装置２０が復旧しないと判別すると、情報処理装置２０の交換が必要になるため、所定のエラー処理を実行し（ステップＳ１１）、処理を終了する（ステップＳ１２）。情報処理装置２０が復旧したと判別すると、再度ＩＯ処理を実行する（ステップＳ２）。
【００３３】
次に図１に示した情報処理装置の保守プロセッサ９の処理手順について図３のフローチャートを参照して説明する。
【００３４】
保守プロセッサ９は保守メモリ１０に保存されたプログラムにしたがって以下に記載する処理を実行する。
【００３５】
保守プロセッサ９は、動作を開始すると（ステップＳ２０）、プロセッサ１からエラー発生通知を受信するまで待機する（ステップＳ２１）。
【００３６】
保守プロセッサ９は、プロセッサ１からエラー発生通知を受信すると、保守パス３４を介して拡張カード５のエラー格納領域６に書き込まれているエラー情報を読み出す（ステップＳ２２）。
【００３７】
保守プロセッサ９は、拡張カード５のエラー格納領域６から読み出したエラー情報を解析し、拡張カード５のエラーであるか否かを判別する（ステップＳ２３）。当該エラーが拡張カード５のエラーである場合、保守プロセッサ９は保守パス３４を介して拡張カード５のエラーレジスタ７に書き込まれているエラー情報を採取する（ステップＳ２４）。一方、当該エラーが拡張カード５のエラーでない場合、エラー情報を採取せずにステップＳ２５へ移行する。
【００３８】
次に、保守プロセッサ９は、拡張カード５のエラー格納領域６から読み出したエラー情報を解析し、バスコントローラ２に関するエラーであるか否かを判別する（ステップＳ２５）。当該エラーがバスコントローラ２に関するエラーである場合、保守プロセッサ９は保守パス３３を介してバスコントローラ２のエラーレジスタ３に書き込まれているエラー情報を採取する（ステップＳ２６）。一方、当該エラーがバスコントローラ２に関するエラーでない場合、エラー情報を採取せずにステップＳ２７へ移行する。
【００３９】
保守プロセッサ９は、拡張カード５のエラー格納領域６およびエラーレジスタ７から採取したエラー情報ならびにバスコントローラ２のエラーレジスタ３から採取したエラー情報を、システムバス３５を介して保守メモリ１０に書き込む（ステップＳ２７）。
【００４０】
最後に、保守プロセッサ９は、ステップＳ２１で受信したエラー発生通知に対する応答をプロセッサ１に送信し（ステップＳ２８）、プロセッサ１から次のエラー発生通知を受信するまで待機する（ステップＳ２１）。
【００４１】
従来の情報処理装置では、拡張カードで検出されたエラー情報を採取できなかった。本実施形態の保守プロセッサは、ＯＳを修正することなく、拡張カードで検出されたエラー情報を採取できる。また、エラーを検出したときに情報処理装置の復旧のために拡張カードおよび周辺装置を再起動してエラー情報を消去する前に保守プロセッサはエラー情報を採取できる。情報処理装置は、採取したエラー情報をプロセッサが検出したエラー情報とあわせて記録できる。そのため利用者は、エラーの原因を特定しやすくなり、システム停止のような重大な障害に発展する前に処置できる。また、記録したエラー情報を解析することにより、処理のリトライによる性能低下がないか否かを確認できる。これにより、情報処理装置の可用性および信頼性が向上する。
【００４２】
また、本実施形態の保守プロセッサはプロセッサによって検出されたエラー情報および拡張カードで検出されたエラー情報に加えて、バスコントローラでデータ転送中に検出されたエラー情報を採取できる。情報処理装置は広範囲なエラー情報を記録できるため、利用者はさらにエラー原因を特定しやすくなる。
【００４３】
また、情報処理装置でエラーが発生すると、保守プロセッサがエラー情報を採取する間、プロセッサはＩＯ処理を停止しなければならない。このため、エラーが頻繁に発生すると情報処理装置の処理性能が低下するおそれがある。本実施形態のプロセッサは、エラーを検出するたびに保守プロセッサにエラーの発生を通知せず、エラーを所定回数検出したときに保守プロセッサにエラーの発生を通知する。これにより、エラーが頻繁に発生したときのエラー情報採取による性能の低下が抑制される。
【００４４】
また、情報処理装置でエラーが発生すると、保守プロセッサは、まず、拡張カードのエラー格納領域に書き込まれたエラー情報を解析し、発生したエラーに関連するモジュールのエラーレジスタのみからエラー情報を採取する。保守プロセッサはエラー情報を解析することにより、発生したエラーに関係ないモジュールのエラーレジスタからエラー情報を採取する必要がなくなる。これにより、情報処理装置の負荷が低減する。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態における情報処理装置の構成を示すブロック図である。
【図２】図１に示したプロセッサの処理手順を示すフローチャートである。
【図３】図１に示した保守プロセッサの処理手順を示すフローチャートである。
【符号の説明】
【００４６】
１  プロセッサ
２  バスコントローラ
３  エラーレジスタ
４  メモリ
５  拡張カード
６  エラー格納領域
７  エラーレジスタ
８  周辺装置
９  保守プロセッサ
１０  保守メモリ
２０  情報処理装置
３０  システムバス
３１  ＩＯバス
３２  ケーブル
３３  保守パス
３４  保守パス
３５  システムバス
【図１】
2010122873.tif 000003
【図２】
2010122873.tif 000004
【図３】
2010122873.tif 000005