(57)【要約】      （修正有）【課題】バスデバイス又は外部バスの障害発生時に、障害解析を的確且つ容易にする。【解決手段】内部バス３０と外部バス２０とに接続されたバスデバイス１０ａであって、第１データを記憶するローカルレジスタ１４と、内部バス制御部１１と、第２データを記憶するバスコンフィグレーションレジスタ１５と、バスインターフェース制御部１３と、データ転送制御部１２と、内部バスに対する内部バス制御部のアクセス履歴、ローカルレジスタに対する第１データの入出力履歴、バスコンフィグレーションレジスタに対する第２データの入出力履歴の少なくとも１つを内部バス制御部から収集するとともに、外部バスに対するバスインターフェース制御部のアクセス履歴とバスコンフィグレーションレジスタに対する第２データの入出力履歴をバスインターフェース制御部から収集し、履歴データを抽出して内部バスを介して外部記憶装置に出力するデータ収集部１６を備える。【選択図】図１
2008134838.tif 000002
【特許請求の範囲】
【請求項１】
内部バスと外部バスとに接続されたバスデバイスであって、
第１データを記憶する第１記憶手段と、
前記内部バスに対するアクセスを制御するとともに、前記内部バスの前記第１記憶手段に対する前記第１データの入出力を制御する内部バス制御部と、
第２データを記憶する第２記憶手段と、
前記外部バスに対するアクセスを制御するとともに、前記外部バス又は前記内部バスの前記第２記憶手段に対する第２データの入出力を制御するバスインターフェース制御部と、
前記内部バス制御部と前記バスインターフェース制御部とを中継して前記第２データの転送処理を制御するデータ転送制御部と、
前記内部バスに対する前記内部バス制御部のアクセス履歴、前記第１記憶手段に対する第１データの入出力履歴、及び前記第２記憶手段に対する第２データの入出力履歴の少なくとも一つを前記内部バス制御部から収集するとともに、前記外部バスに対する前記バスインターフェース制御部のアクセス履歴と前記第２記憶手段に対する第２データの入出力履歴を前記バスインターフェース制御部から収集して、収集された各履歴に基づく履歴データを抽出して前記内部バスを介して外部記憶装置に出力するデータ収集部と、
を備えることを特徴とするバスデバイス。
【請求項２】
前記データ収集部は、
前記外部バスに接続され、前記外部バスの情報を収集するための第１インターフェースと、
前記内部バスに接続され、前記内部バスの情報を収集するための第２インターフェースと、
を備えることを特徴とする請求項１記載のバスデバイス。
【請求項３】
前記バスインターフェース制御部は、前記外部バスとの通信時に前記外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第１警告信号を前記データ収集部に対して出力し、
前記データ収集部は、前記第１警告信号に基づき収集された各履歴の中から前記エラー発生のタイミングにおける履歴データを抽出することを特徴とする請求項１又は請求項２記載のバスデバイス。
【請求項４】
内部バスと外部バスとに接続されたバスデバイスであって、
第１データを記憶する第１記憶手段と、
前記内部バスに対するアクセスを制御するとともに、前記内部バスの前記第１記憶手段に対する前記第１データの入出力を制御する内部バス制御部と、
第２データを記憶する第２記憶手段と、
前記外部バスに対するアクセスを制御するとともに、前記外部バス又は前記内部バスの前記第２記憶手段に対する第２データの入出力を制御するバスインターフェース制御部と、
前記内部バス制御部と前記バスインターフェース制御部とを中継して前記第２データの転送処理を制御するデータ転送制御部と、
前記内部バスに対する前記内部バス制御部のアクセス履歴、前記第１記憶手段に対する第１データの入出力履歴、及び前記第２記憶手段に対する第２データの入出力履歴の少なくとも一つを前記内部バス制御部から収集して保持するコントローラトレーサと、
前記外部バスに対する前記バスインターフェース制御部のアクセス履歴と前記第２記憶手段に対する第２データの入出力履歴を前記バスインターフェース制御部から収集して保持するバストレーサと、
前記コントローラトレーサ及び前記バストレーサにより保持された各履歴に基づく履歴データを抽出して収集するデータ収集制御部と、
を備えることを特徴とするバスデバイス。
【請求項５】
前記コントローラトレーサと前記バストレーサとの少なくとも一方は、
前記各履歴の収集を行うトレース部と、
特定の順番のアクセスパターンを示す要注意パターンを保持する要注意パターン保持部と、
前記トレース部により収集された前記各履歴を前記要注意パターンと照合するパターン照合部とを備え、
前記パターン照合部は、前記トレース部により収集された前記各履歴と前記要注意パターンとが適合した場合に第２警告信号を前記データ収集制御部に対して出力することを特徴とする請求項４記載のバスデバイス。
【請求項６】
前記バスインターフェース制御部は、前記外部バスとの通信時に前記外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第３警告信号を前記バストレーサを介して前記データ収集制御部に対して出力することを特徴とする請求項４又は請求項５記載のバスデバイス。
【請求項７】
前記バストレーサは、前記外部バスに接続され前記外部バスの情報を収集するためのバストレーサ専用インターフェースを備えることを特徴とする請求項４乃至請求項６のいずれか１項記載のバスデバイス。
【請求項８】
前記コントローラトレーサは、前記内部バスに接続され前記内部バスの情報を収集するためのコントローラトレーサ専用インターフェースを備えることを特徴とする請求項４乃至請求項７のいずれか１項記載のバスデバイス。
【請求項９】
当該バスデバイスを搭載するシステムの電源部から当該バスデバイスへの電源供給状態を収集して保持する電源トレーサをさらに備え、
前記データ収集制御部は、さらに前記電源トレーサにより保持された電源供給状態に基づく電源データを抽出して収集することを特徴とする請求項４乃至請求項８のいずれか１項記載のバスデバイス。
【請求項１０】
当該バスデバイスを搭載するシステム内の割り込み信号を収集して保持するＩ／Ｏトレーサをさらに備え、
前記データ収集制御部は、さらに前記Ｉ／Ｏトレーサにより保持された割り込み信号に基づく割り込み信号データを抽出して収集することを特徴とする請求項４乃至請求項９のいずれか１項記載のバスデバイス。
【請求項１１】
前記データ収集制御部は、前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを抽出して収集する際に、前記第２警告信号と前記第３警告信号との少なくとも一方に基づきデータを抽出することを特徴とする請求項６乃至請求項１０のいずれか１項記載のバスデバイス。
【請求項１２】
前記データ収集制御部は、収集した前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを前記内部バスを介して外部記憶装置に出力することを特徴とする請求項４乃至請求項１１のいずれか１項記載のバスデバイス。
【請求項１３】
前記データ収集制御部により収集された前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを保存する内部メモリ回路をさらに備えることを特徴とする請求項４乃至請求項１１のいずれか１項記載のバスデバイス。
【請求項１４】
前記データ収集制御部は、収集した前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを周辺モジュール用内部バスを介して外部メモリ回路に出力することを特徴とする請求項４乃至請求項１１のいずれか１項記載のバスデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部バスの障害原因として当該バスデバイスへの入出力が関与している場合の障害解析を容易に行うバスデバイスに関する。
【背景技術】
【０００２】
ＰＣＩバスを始めとする外部バスを含むシステムにおいて、バスデバイスやバスに何らかの障害が生じた事が明らかになり、その原因を追究する必要が生じた場合、一般にはバスアナライザやロジックアナライザなどの外部機器を外部バスに接続するか、バスデバイスのコントローラＩＣに解析用の外部回路を接続することにより、障害原因の解析が行われる。しかし、これらのアナライザは高価である。また解析用の外部回路を使用する場合、基板上に取り付けスペースが必要となる。さらに重要な問題として、現場環境で発生した障害が、システム周辺環境の差異により、解析用の実験室環境では再現されない事が往々にして発生する。このような場合、上記のアナライザによる事後解析が困難なケースは、数多く存在する。
【０００３】
上述した課題（アナライザが高価、外部回路の取り付けが困難、事後解析での障害再現困難性）への対策として、様々な方法が提案されている。
【０００４】
特許文献１において、特別な測定機器を必要とせずＰＣＩバスの観測を行うＰＣＩバストレース回路が提案されている。このＰＣＩバストレース回路は、ＰＣＩバス解析回路を備え、バス上の全てのトランザクションを解析して、ＰＣＩバスのエラー要因を観測する。検出されたバスのエラー要因は、ＰＣＩデバイス中のＲＡＭに書き込まれる。このＰＣＩバストレース回路によれば、外部回路やアナライザ無しでバス情報をトレースすることができる。また実運用するデバイスに本回路を搭載することにより、現場環境で即座に障害情報を取得することができる。
【０００５】
また、特許文献２には、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）を用いてＰＣＩコントローラ回路を構成しているＰＣＩデバイスにおいて、ＦＰＧＡの論理回路構成を記憶している不揮発性メモリにＰＣＩバスのエラー情報を記録する情報処理装置が提案されている。この情報処理装置によっても、上述した課題の解決は可能である。
【０００６】
また、特許文献３には、データ収集指示に基づいてＰＣＩデバイス内部でデータを収集してＰＣＩバス上に送出するＰＣＩデバイスが記載されている。このＰＣＩデバイスによれば、ＰＣＩデバイス内に障害が検出されてＰＣＩバス関連の設定情報が失われたり正しく設定されていない場合においても、ＰＣＩデバイス内のデータ収集を確実に行うことができる。
【特許文献１】特開平１１−１４９４２１号公報
【特許文献２】特許３５５３００６号公報
【特許文献３】特許３５８４９７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、実際のトラブル解析時には、外部バス情報だけで外部バスの障害原因を解明する事が困難なケースが多く存在する。例えば、外部バスの障害直前まで問題無くシステムが稼動しており、突然何らかのバス異常が発生した場合、バスデバイスにより外部バス上にエラー発生を示す外部バス信号が伝送される。この外部バス信号は、エラーの種類のみを示す情報であり、何故そのエラーが発生したかなどの障害の背景、原因を示す情報ではない。したがって、この外部バス信号のみに基づいてエラーの解析を行うのは困難である。
【０００８】
上述した従来のバストレース技術によれば、ＰＣＩバスを始めとする外部バス側の動作状況を詳細に把握する事ができるが、障害が外部バス側以外の要因で発生する場合には、解析は困難である。例えば、内部バス経由でＣＰＵ命令がバスデバイス内のレジスタに書き込まれるタイミングと外部バス側の信号受信のタイミングが特定条件を満たす場合にのみバスデバイスエラーが発生すると仮定する。従来の技術では、単に結果として発生したバスデバイスエラー情報のみが保存されるに過ぎない。障害の真の発生条件は内部バス側の書き込み動作のタイミングに依存するものであるため、エラーの発生時における内部バス側の情報を確実に記録し保存する必要がある。
【０００９】
また、内部バスのみならず、電源や割り込み信号が障害発生要因にも成り得るため、それらの情報を確保する必要もある。
【００１０】
本発明は上述した従来技術の問題点を解決するもので、バスデバイス又は外部バスの障害発生時に、障害解析を的確且つ容易に行うことができるバスデバイスを提供することを課題とする。
【課題を解決するための手段】
【００１１】
本発明に係るバスデバイスは、上記課題を解決するために、請求項１記載の発明は、内部バスと外部バスとに接続されたバスデバイスであって、第１データを記憶する第１記憶手段と、前記内部バスに対するアクセスを制御するとともに、前記内部バスの前記第１記憶手段に対する前記第１データの入出力を制御する内部バス制御部と、第２データを記憶する第２記憶手段と、前記外部バスに対するアクセスを制御するとともに、前記外部バス又は前記内部バスの前記第２記憶手段に対する第２データの入出力を制御するバスインターフェース制御部と、前記内部バス制御部と前記バスインターフェース制御部とを中継して前記第２データの転送処理を制御するデータ転送制御部と、前記内部バスに対する前記内部バス制御部のアクセス履歴、前記第１記憶手段に対する第１データの入出力履歴、及び前記第２記憶手段に対する第２データの入出力履歴の少なくとも一つを前記内部バス制御部から収集するとともに、前記外部バスに対する前記バスインターフェース制御部のアクセス履歴と前記第２記憶手段に対する第２データの入出力履歴を前記バスインターフェース制御部から収集して、収集された各履歴に基づく履歴データを抽出して前記内部バスを介して外部記憶装置に出力するデータ収集部とを備えることを特徴とする。
【００１２】
請求項２記載の発明は、請求項１において、前記データ収集部は、前記外部バスに接続され、前記外部バスの情報を収集するための第１インターフェースと、前記内部バスに接続され、前記内部バスの情報を収集するための第２インターフェースとを備えることを特徴とする。
【００１３】
請求項３記載の発明は、請求項１又は請求項２において、前記バスインターフェース制御部は、前記外部バスとの通信時に前記外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第１警告信号を前記データ収集部に対して出力し、前記データ収集部は、前記第１警告信号に基づき収集された各履歴の中から前記エラー発生のタイミングにおける履歴データを抽出することを特徴とする。
【００１４】
請求項４記載の発明は、内部バスと外部バスとに接続されたバスデバイスであって、第１データを記憶する第１記憶手段と、前記内部バスに対するアクセスを制御するとともに、前記内部バスの前記第１記憶手段に対する前記第１データの入出力を制御する内部バス制御部と、第２データを記憶する第２記憶手段と、前記外部バスに対するアクセスを制御するとともに、前記外部バス又は前記内部バスの前記第２記憶手段に対する第２データの入出力を制御するバスインターフェース制御部と、前記内部バス制御部と前記バスインターフェース制御部とを中継して前記第２データの転送処理を制御するデータ転送制御部と、前記内部バスに対する前記内部バス制御部のアクセス履歴、前記第１記憶手段に対する第１データの入出力履歴、及び前記第２記憶手段に対する第２データの入出力履歴の少なくとも一つを前記内部バス制御部から収集して保持するコントローラトレーサと、前記外部バスに対する前記バスインターフェース制御部のアクセス履歴と前記第２記憶手段に対する第２データの入出力履歴を前記バスインターフェース制御部から収集して保持するバストレーサと、前記コントローラトレーサ及び前記バストレーサにより保持された各履歴に基づく履歴データを抽出して収集するデータ収集制御部とを備えることを特徴とする。
【００１５】
請求項５記載の発明は、請求項４において、前記コントローラトレーサと前記バストレーサとの少なくとも一方は、前記各履歴の収集を行うトレース部と、特定の順番のアクセスパターンを示す要注意パターンを保持する要注意パターン保持部と、前記トレース部により収集された前記各履歴を前記要注意パターンと照合するパターン照合部とを備え、前記パターン照合部は、前記トレース部により収集された前記各履歴と前記要注意パターンとが適合した場合に第２警告信号を前記データ収集制御部に対して出力することを特徴とする。
【００１６】
請求項６記載の発明は、請求項４又は請求項５において、前記バスインターフェース制御部は、前記外部バスとの通信時に前記外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第３警告信号を前記バストレーサを介して前記データ収集制御部に対して出力することを特徴とする。
【００１７】
請求項７記載の発明は、請求項４乃至請求項６のいずれか１項において、前記バストレーサは、前記外部バスに接続され前記外部バスの情報を収集するためのバストレーサ専用インターフェースを備えることを特徴とする。
【００１８】
請求項８記載の発明は、請求項４乃至請求項７のいずれか１項において、前記コントローラトレーサは、前記内部バスに接続され前記内部バスの情報を収集するためのコントローラトレーサ専用インターフェースを備えることを特徴とする。
【００１９】
請求項９記載の発明は、請求項４乃至請求項８のいずれか１項において、当該バスデバイスを搭載するシステムの電源部から当該バスデバイスへの電源供給状態を収集して保持する電源トレーサをさらに備え、前記データ収集制御部は、さらに前記電源トレーサにより保持された電源供給状態に基づく電源データを抽出して収集することを特徴とする。
【００２０】
請求項１０記載の発明は、請求項４乃至請求項９のいずれか１項において、当該バスデバイスを搭載するシステム内の割り込み信号を収集して保持するＩ／Ｏトレーサをさらに備え、前記データ収集制御部は、さらに前記Ｉ／Ｏトレーサにより保持された割り込み信号に基づく割り込み信号データを抽出して収集することを特徴とする。
【００２１】
請求項１１記載の発明は、請求項６乃至請求項１０のいずれか１項において、前記データ収集制御部は、前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを抽出して収集する際に、前記第２警告信号と前記第３警告信号との少なくとも一方に基づきデータを抽出することを特徴とする。
【００２２】
請求項１２記載の発明は、請求項４乃至請求項１１のいずれか１項において、前記データ収集制御部は、収集した前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを前記内部バスを介して外部記憶装置に出力することを特徴とする。
【００２３】
請求項１３記載の発明は、請求項４乃至請求項１１のいずれか１項において、前記データ収集制御部により収集された前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを保存する内部メモリ回路をさらに備えることを特徴とする。
【００２４】
請求項１４記載の発明は、請求項４乃至請求項１１のいずれか１項において、前記データ収集制御部は、収集した前記履歴データ、前記電源データ、及び前記割り込み信号データの少なくとも一つを周辺モジュール用内部バスを介して外部メモリ回路に出力することを特徴とする。
【発明の効果】
【００２５】
本発明の請求項１記載の発明によれば、データ収集部が内部バスに対する内部バス制御部のアクセス履歴、第１記憶手段に対する第１データの入出力履歴、及び第２記憶手段に対する第２データの入出力履歴の少なくとも一つを内部バス制御部から収集するとともに、外部バスに対するバスインターフェース制御部のアクセス履歴と第２記憶手段に対する第２データの入出力履歴をバスインターフェース制御部から収集するので、外部バス信号にエラー信号が発見された場合等のイベント発生時に様々な障害発生要因に対する解析を行うことが容易になる。また、システムの実稼動環境でしか障害を再現できない場合においても、容易にデータの収集が可能である。
【００２６】
本発明の請求項２記載の発明によれば、データ収集部が第１インターフェース及び第２インターフェースを備えているので、外部バス及び内部バスから直接情報を収集することができる。したがって、仮にバスインターフェース制御部や内部バス制御部に障害が発生したとしても、問題無く外部バス及び内部バスから情報を収集することができる。
【００２７】
本発明の請求項３記載の発明によれば、バスインターフェース制御部は、外部バスとの通信時に外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第１警告信号をデータ収集部に対して出力するので、データ収集部は、第１警告信号に基づき、エラー信号検出時の履歴データを抽出することができる。
【００２８】
本発明の請求項４記載の発明によれば、内部バス側の情報を収集して保持するコントローラトレーサと、外部バス側の情報を収集して保持するバストレーサと、コントローラトレーサ及びバストレーサにより保持された各履歴に基づく履歴データを抽出して収集するデータ収集制御部とを備えるので、イベント発生時に様々な障害発生要因に対する解析を行うことが容易になる。また、システムの実稼動環境でしか障害を再現できない場合においても、容易にデータの収集が可能である。
【００２９】
本発明の請求項５記載の発明によれば、特定の順番のアクセスパターンを示す要注意パターンと収集された各履歴とを照合するので、障害を起こしやすいアクセスパターン時の各履歴を収集することができる。
【００３０】
本発明の請求項６記載の発明によれば、バスインターフェース制御部は、外部バスとの通信時に外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第３警告信号をバストレーサを介してデータ収集制御部に対して出力するので、データ収集制御部は、エラーの種類及びエラー信号を検出したタイミングを知ることができる。
【００３１】
本発明の請求項７記載の発明によれば、バストレーサは、バストレーサ専用インターフェースを備えるので、外部バスから直接情報を収集することができる。したがって、仮にバスインターフェース制御部に障害が発生したとしても、問題無く外部バスから情報を収集することができる。
【００３２】
本発明の請求項８記載の発明によれば、コントローラトレーサは、コントローラトレーサ専用インターフェースを備えるので、内部バスから直接情報を収集することができる。したがって、仮に内部バス制御部に障害が発生したとしても、問題無く内部バスから情報を収集することができる。
【００３３】
本発明の請求項９記載の発明によれば、データ収集制御部は、電源トレーサから電源供給状態に基づく電源データを収集するので、電源が障害発生の要因となっている場合に、容易に解析を行うことができる。
【００３４】
本発明の請求項１０記載の発明によれば、データ収集制御部は、Ｉ／Ｏトレーサから割り込み信号データを収集するので、割り込み信号が障害発生の要因となっている場合に、容易に解析を行うことができる。
【００３５】
本発明の請求項１１記載の発明によれば、データ収集制御部は、第２警告信号又は第３警告信号に基づき、イベント発生時の各データを抽出することができるので、イベント発生時の動作解析を容易に行うことができる。
【００３６】
本発明の請求項１２記載の発明によれば、データ収集制御部は、収集したデータを内部バスを介して外部記憶装置に出力するので、必要なデータを適切に外部記憶装置に保存することができる。
【００３７】
本発明の請求項１３記載の発明によれば、データを保存するための内部メモリ回路を備えているので、内部バスを介して外部記憶装置に保存する必要がなく、内部バスに障害が発生している場合であっても、安全確実にデータを保存することができる。
【００３８】
本発明の請求項１４記載の発明によれば、データ収集制御部は、収集したデータを周辺モジュール用内部バスを介して外部メモリ回路に出力するので、内部バスを介して外部記憶装置に保存する必要がなく、内部バスに障害が発生している場合であっても、安全確実にデータを保存することができる。また、バスデバイスの実装上の制約により、十分な容量の内部メモリ回路をバスデバイス内に備えることができない場合であっても、十分な記憶容量を外部メモリ回路に確保することができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明のバスデバイスの実施の形態を、図面に基づいて詳細に説明する。
【実施例１】
【００４０】
以下、本発明の実施例について図面を参照しながら説明する。図１は、本発明の実施例１のバスデバイス１０ａ及びその周辺の構成を示すブロック図である。
【００４１】
まず、本実施の形態の構成を説明する。図１に示すように、バスデバイス１０ａは、外部バス２０と内部バス３０とに接続され、内部バス制御部１１、データ転送制御部１２、バスインターフェース制御部１３、ローカルレジスタ１４、バスコンフィグレーションレジスタ１５、及びデータ収集部１６を有する。
【００４２】
またバスデバイス１０ａ、ＣＰＵ３２、主メモリ３４、及び外部記憶装置３６は、内部バス３０を介して互いに接続されている。
【００４３】
上述した主メモリ３４、ＣＰＵ３２、外部記憶装置３６と内部バス３０との接続形態は、1つの例である。例えば内部バス３０上に接続された図示されないハブ・インターフェースを介して内部バス３０に接続される構成も採り得る。いずれにしても、バスデバイス１０ａから主メモリ３４、ＣＰＵ３２、及び外部記憶装置３６にアクセスするためには、内部バス３０を経由する必要がある。
【００４４】
内部バス制御部１１は、内部バス３０に対するバスデバイス１０ａのアクセスを制御し、内部バス３０側からバスデバイス１０ａに対して行われる操作を受け付ける。バスデバイス１０ａと内部バス３０との間でデータ転送が行われる場合は、以下の３つが挙げられる。１つ目は、ＣＰＵ３２がプログラムにより外部バス２０上の他のバスデバイスとのデータ転送を実行する場合である。２つ目は、バスデバイス１０ａがバスマスタとして外部バス２０を制御し、直接主メモリ３４にアクセスする場合である。３つ目は、他のバスデバイスがバスマスタになり、バスデバイス１０ａは、ターゲットデバイスとしてデータ転送を実行する場合である。
【００４５】
また内部バス制御部１１は、内部バス３０へのアクセスに対し、内部バス仕様に規定されるエラーの確認を行う。さらに内部バス制御部１１は、内部バス３０のローカルレジスタ１４に対する第１データの入出力を制御する。第１データについては、後述する。
【００４６】
バスインターフェース制御部１３は、外部バス２０に対するバスデバイス１０ａのアクセスを制御する。すなわちバスインターフェース制御部１３は、内部バス制御部１１と同様に、ＣＰＵ３２によるデータ転送の際や、バスマスタ転送時、ターゲット動作時の３つの場合に、バスデバイス１０ａと外部バス２０との間でデータ転送が行われる際のインターフェースとなる。
【００４７】
またバスインターフェース制御部１３は、外部バス２０との通信時に外部バス２０の仕様に規定されるエラー信号を検出する。バスインターフェース制御部１３は、エラー信号を検出した場合、エラーの種類及びエラー発生のタイミングに関する情報を示す第１警告信号をデータ収集部１６に対して出力する。
【００４８】
さらにバスインターフェース制御部１３は、外部バス２０又は内部バス３０のバスコンフィグレーションレジスタ１５に対する第２データの入出力を制御する。第２データについては後述する。
【００４９】
データ転送制御部１２は、内部バス制御部１１とバスインターフェース制御部１３とを中継して、バスデバイス１０ａの機能として必要なデータ（第２データを含む）の転送処理を制御する。バスデバイス１０ａの基本的な機能は、内部バス制御部１１、データ転送制御部１２、及びバスインターフェース制御部１３の構成により実行される。
【００５０】
ローカルレジスタ１４は、本発明の第１記憶手段に対応し、第１データを記憶する。ここで第１データは、バスデバイス１０ａの外部バス２０側機能、内部バス３０側機能の基本的な動作を制御する設定であり、例えば、外部バスデバイスとしての動作モード設定（ホスト動作可能か、ターゲット動作専用なのか等）、内部バス３０から見たメモリアドレス設定、外部バスクロック設定、パワーマネジメント設定、割り込み設定（割り込み信号の有無）等、多種存在する。
【００５１】
またローカルレジスタ１４は、内部バス制御部１１に接続され、内部バス制御部１１を介して内部バス３０との間でデータの入出力が行われる。また、ローカルレジスタ１４は、外部バス２０側から設定を書き込まれることは無い。
【００５２】
バスコンフィグレーションレジスタ１５は、本発明の第２記憶手段に対応し、第２データを記憶する。ここで第２データは、バスデバイス１０ａの外部バス２０側機能の詳細な設定であり、例えば、外部バスデバイスとしてのＩＤ、ベンダＩＤ、外部バス２０から見たメモリアドレス設定、レイテンシ設定、デバイス状態、占有メモリ空間設定、割り込み設定、機能の有効無効設定等、多種存在する。
【００５３】
またバスコンフィグレーションレジスタ１５は、バスインターフェース制御部１３に接続され、バスインターフェース制御部１３を介して外部バス２０又は内部バス３０との間でデータの入出力が行われる。
【００５４】
データ収集部１６は、内部バス３０に対する内部バス制御部１１のアクセス履歴、ローカルレジスタ１４に対する第１データの入出力履歴、及びバスコンフィグレーション１５に対する第２データの入出力履歴を内部バス制御部１１から収集する。本実施例においては、データ収集部１６は、全ての履歴を収集するが、必ずしも全ての履歴を収集する必要は無く、いずれか一つであってもよい。ここでバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴とは、内部バス制御部１１を介して内部バス３０との間で行われたものを指す。
【００５５】
またデータ収集部１６は、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴とバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴をバスインターフェース制御部１３から収集する。ここでバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴とは、バスインターフェース制御部１３を介して外部バス２０との間で行われたものを指す。
【００５６】
データ収集部１６は、収集した各履歴を所定の容量だけ記憶する。容量の制限まで各履歴を記憶した後、データ収集部１６は、最新の履歴を記憶する度に最古の履歴を削除する。
【００５７】
またデータ収集部１６は、収集された各履歴に基づく履歴データを抽出する。データ収集部１６は、履歴データを抽出する際に、第１警告信号に基づき、収集された各履歴の中からエラー発生のタイミングにおける履歴データを抽出する。
【００５８】
さらにデータ収集部１６は、外部バス２０に接続され外部バス２０の情報を収集するための第１インターフェース１６ａと、内部バス３０に接続され内部バス３０の情報を収集するための第２インターフェース１６ｂとを備える。これら２つのインターフェースは、必須ではない。仮にこれら２つのインターフェースが無い場合、データ収集部１６は、内部バス制御部１１を介して内部バス３０の情報を、またバスインターフェース制御部１３を介して外部バス２０の情報を、それぞれ収集する。
【００５９】
またデータ収集部１６は、抽出した障害原因解析のための履歴データを内部バス３０を介して、バスデバイス１０ａ外の外部記憶装置３６に出力する。
【００６０】
次に実施例１に係るバスデバイス１０ａの動作を説明する。通常の通信時において、バスデバイス１０ａは、一般的なバスデバイスとして動作する。バスデバイス１０ａのパワーオンリセット後、ＣＰＵ３２によりローカルレジスタ１４とバスコンフィグレーションレジスタ１５との値が初期化される。
【００６１】
バスデバイス１０ａは、これら両レジスタの設定内容に基づき、通常のバスデバイスとしての通信動作を行う。ここで述べる通常の通信動作とは、外部バスデバイスのアービトレーション機能（バスデバイス１０ａが外部バスのホストとして動作する場合に、各外部バスデバイスからのバス権要求に従い外部バスの制御権を与える機能）、バスマスタ動作、バスターゲット動作時のメモリリード機能、メモリライト機能、Ｉ／Ｏリード機能、Ｉ／Ｏライト機能等を示す。
【００６２】
上述した通常の通信に関する用語及び動作は、一般的なＰＣＩバス仕様のものと同じである。各動作において、データ転送制御部１２は、バスデバイス１０ａの通常の通信全体を制御する。内部バス制御部１１及びバスインターフェース制御部１３は、それぞれ内部バス３０とバスデバイス１０ａとの間及び外部バス２０とバスデバイス１０ａとの間のインターフェースとなり、外部バス２０と内部バス３０との間の通信を仲介する。
【００６３】
本発明に特徴的な作用は、以下に説明する外部バス２０の障害発生時、または外部バス２０の障害発生が疑われる場合の動作である。上述したように、データ収集部１６は、内部バス３０に対する内部バス制御部１１のアクセス履歴や外部バス２０に対するバスインターフェース制御部１３のアクセス履歴等を収集する。
【００６４】
その後、データ収集部１６は、収集された各履歴に基づく履歴データを抽出する。データ収集部１６が履歴データを抽出するタイミングは色々考えられるが、例えば、バスインターフェース制御部１３が外部バス２０との通信時に外部バス信号に外部バス仕様に規定されるエラー信号を検出した場合である。例として、ＰＣＩバス信号におけるＰＥＲＲ＃信号（パリティエラー信号）等が該当する。この場合、バスインターフェース制御部１３は、エラーの種類及びエラー発生のタイミングに関する情報を示す第１警告信号をデータ収集部１６に対して出力する。
【００６５】
第１警告信号を入力されたデータ収集部１６は、収集した各履歴に基づく履歴データを抽出する。その際、データ収集部１６は、第１警告信号に基づきエラー発生のタイミングと同タイミングの履歴データを、内部バス３０に対する内部バス制御部１１のアクセス履歴、ローカルレジスタ１４とバスコンフィグレーションレジスタ１５に対する第１データ及び第２データの入出力履歴、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴の各履歴から抽出する。
【００６６】
さらにデータ収集部１６は、抽出した履歴データ、エラーの種類、及びエラー発生のタイミングに関する情報を内部バス３０を介して外部記録装置３６に出力し、データの保存を行う。
【００６７】
エラー発生のタイミングと履歴の同期をとるための方法は色々あるが、例えばデータ収集部１６は、時刻情報を得ることができる時計を有しており、収集した履歴には常に時刻情報を付加しているものとすることができる。
【００６８】
上述のとおり、本発明の実施例１の形態に係るバスデバイス１０ａによれば、データ収集部１６が内部バス３０に対する内部バス制御部１１のアクセス履歴、ローカルレジスタ１４に対する第１データの入出力履歴、及びバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴を内部バス制御部１１から収集するとともに、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴とバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴をバスインターフェース制御部１３から収集するので、外部バス信号にエラー信号が発見された場合等のイベント発生時に様々な障害発生要因に対する解析を行うことが容易になる。
【００６９】
従来の技術では、外部バス２０側の情報のみが保存されていたのに対し、本実施例においては、外部バス２０側の情報だけでなく、障害の真の原因が内包されている可能性のある、内部バス３０側の情報が内部バス制御部１１を介してデータ収集部１６により保存される。したがって、外部バス２０側の情報だけでは原因を解明することが困難な障害や、内部バス３０側の動作が障害発生条件として関与している場合の障害の解析を容易に行うことができる。
【００７０】
またシステムの実稼動環境でしか障害が起こらず、実験室環境では障害が再現されないようなケースにおいても、データ収集環境の整備された実験室で障害を再現した場合と同様に、様々なデータから障害原因を解析する事が可能となる。
【００７１】
さらに、データ収集部１６が第１インターフェース１６ａ及び第２インターフェース１６ｂを備えているので、外部バス２０及び内部バス３０から直接情報を収集することができる。したがって、仮にバスインターフェース制御部１３や内部バス制御部１１に障害が発生したとしても、問題無く外部バス２０及び内部バス３０から情報を収集することができる。
【００７２】
また、バスインターフェース制御部１３は、外部バス２０との通信時に外部バス２０の仕様に規定されるエラー信号を検出した場合に、エラーの種類及びエラー発生のタイミングに関する情報を示す第１警告信号をデータ収集部１６に対して出力するので、データ収集部１６は、第１警告信号に基づき、収集された各履歴の中からエラー信号検出時の履歴データを抽出することができる。
【実施例２】
【００７３】
図２は、本発明の実施例２のバスデバイス１０ｂ及びその周辺の構成を示すブロック図である。実施例１の構成と異なる点としては、バスデバイス１０ｂは、データ収集部１６の代わりにバストレーサ１８、コントローラトレーサ１９、及びデータ収集制御部１７を備えている点である。
【００７４】
バストレーサ１８は、バスインターフェース制御部１３とデータ収集制御部１７とに接続され、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴とバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴をバスインターフェース制御部１３から収集して保持する。ここでバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴とは、バスインターフェース制御部１３を介して外部バス２０との間で行われたものを指す。
【００７５】
コントローラトレーサ１９は、内部バス制御部１１とデータ収集制御部１７とに接続され、内部バス３０に対する内部バス制御部１１のアクセス履歴、ローカルレジスタ１４に対する第１データの入出力履歴、及びバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴の少なくとも一つを内部バス制御部１１から収集して保持する。ここでバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴とは、内部バス制御部１１を介して内部バス３０との間で行われたものを指す。
【００７６】
データ収集制御部１７は、バストレーサ１８、コントローラトレーサ１９、及び内部バス３０に接続され、コントローラトレーサ１９及びバストレーサ１８により保持された各履歴に基づく履歴データを抽出して収集する。
【００７７】
またバスインターフェース制御部１３は、外部バス２０との通信時に外部バス２０の仕様に規定されるエラー信号を検出する。バスインターフェース制御部１３は、エラー信号を検出した場合、エラーの種類及びエラー発生のタイミングに関する情報を示す第３警告信号をバストレーサ１８を介してデータ収集制御部１７に対して出力する。
【００７８】
次にコントローラトレーサ１９及びバストレーサ１８の構成について、さらに詳しく説明する。図３は、本発明の実施例２のコントローラトレーサ１９の構成を示すブロック図である。また図４は、本発明の実施例２のバストレーサ１８の構成を示すブロック図である。図３に示すように、コントローラトレーサ１９は、トレース部４２ａ、パターン照合部４４ａ、要注意パターン保持部４６ａ、バス履歴保持バッファ４７ａ、及びレジスタ履歴保持バッファ４８ａを備えている。
【００７９】
トレース部４２ａは、パターン照合部４４ａ、バス履歴保持バッファ４７ａ、レジスタ履歴保持バッファ４８ａ、さらにデータ収集制御部１７、及び内部バス制御部１１に接続され、各履歴の収集を行う。
【００８０】
トレース部４２ａは、内部バス３０に対する内部バス制御部１１のアクセス履歴を内部バス制御部１１から収集して、バス履歴保持バッファ４７ａに出力する。バス履歴保持バッファ４７ａは、入力されたアクセス履歴を保持する。
【００８１】
またトレース部４２ａは、ローカルレジスタ１４に対する第１データの入出力履歴、及びバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴を内部バス制御部１１から収集して、レジスタ履歴保持バッファ４８ａに出力する。レジスタ履歴保持バッファ４８ａは、入力された各履歴を保持する。
【００８２】
要注意パターン保持部４６ａは、パターン照合部４４ａに接続され、予め設定された特定の順番のアクセスパターンを示す要注意パターンを保持する。本実施例において、要注意パターン保持部４６ａは、コントローラトレーサ１９内に設けられているが、コントローラトレーサ１９の外部に設けてもよい。
【００８３】
パターン照合部４４ａは、トレース部４２ａ及び要注意パターン保持部４６ａに接続され、トレース部４２ａが履歴情報を収集する都度、トレース部４２ａにより収集された各履歴を要注意パターンと照合する。さらにパターン照合部４４ａは、トレース部４２ａにより収集された各履歴と要注意パターンとが適合した場合に第２警告信号をトレース部４２ａを介してデータ収集制御部１７に対して出力する。
【００８４】
また図４に示すように、バストレーサ１８もコントローラトレーサ１９の構成と同じであり、重複した説明を省略する。ただし、必ずしもコントローラトレーサ１９とバストレーサ１８とを同じ構成にする必要は無く、例えばバストレーサ１８は、トレース部４２ｂとバス履歴保持バッファ４７ｂとレジスタ履歴保持バッファ４８ｂのみの構成にすることも可能である。  
トレース部４２ａ、パターン照合部４４ａは、半導体論理回路とレジスタ（揮発性ＲＡＭメモリ）として実装される。また、要注意パターン保持部４６ａは、フラッシュＲＯＭ等の不揮発性ＲＯＭメモリとして実装される。
【００８５】
またバス履歴保持バッファ４７ａ及びレジスタ履歴保持バッファ４８ａは、容量制限があり、履歴データの溢れを防ぐため、最新の履歴を保持する度に最古の履歴を削除する。またバス履歴保持バッファ４７ａ及びレジスタ履歴保持バッファ４８ａは、コントローラトレーサ１９の外部に設けることもできる。
【００８６】
図４に示すバストレーサ１８内のトレース部４２ｂは、図３に示すトレース部４２ａと異なる点があるため、トレース部４２ｂについて説明する。
【００８７】
トレース部４２ｂは、パターン照合部４４ｂ、バス履歴保持バッファ４７ｂ、レジスタ履歴保持バッファ４８ｂ、さらにデータ収集制御部１７、及びバスインターフェース制御部１３に接続され、各履歴の収集を行う。
【００８８】
トレース部４２ｂは、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴をバスインターフェース制御部１３から収集して、バス履歴保持バッファ４７ｂに出力する。バス履歴保持バッファ４７ｂは、入力されたアクセス履歴を保持する。
【００８９】
またトレース部４２ｂは、バスコンフィグレーションレジスタ１５に対する第２データの入出力履歴をバスインターフェース制御部１３から収集して、レジスタ履歴保持バッファ４８ｂに出力する。ここでバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴とは、バスインターフェース制御部１３を介して外部バス２０との間で行われたものを指す。レジスタ履歴保持バッファ４８ｂは、入力された入出力履歴を保持する。
【００９０】
次に実施例２に係るバスデバイス１０ｂの動作を説明する。実施例１と同様の動作については、重複した説明を省略する。本発明に特徴的な作用は、以下に説明する外部バス２０の障害発生時、または外部バス２０の障害発生が疑われる場合の動作である。上述したように、コントローラトレーサ１９とバストレーサ１８は、それぞれ内部バス３０に対する内部バス制御部１１のアクセス履歴等と外部バス２０に対するバスインターフェース制御部１３のアクセス履歴等を保持する。
【００９１】
その後、データ収集制御部１７は、以下に示すような３つの場合に収集された各履歴に基づく履歴データを抽出する。
【００９２】
１つ目の場合は、バスインターフェース制御部１３が外部バス２０との通信時に外部バス信号に外部バス仕様に規定されるエラー信号を検出した場合である。この場合、バスインターフェース制御部１３は、エラーの種類及びエラー発生のタイミングに関する情報を示す第３警告信号をバストレーサ１８を介してデータ収集制御部１７に対して出力する。その後の動作は、実施例１における第１警告信号を出力した場合の動作と同様なので、重複した説明を省略する。
【００９３】
エラー発生のタイミングと履歴の同期をとるための方法は色々あるが、例えばデータ収集制御部１７は、時刻情報を得ることができる時計を有しており、コントローラトレーサ１９及びバストレーサ１８は、データ収集制御部１７の有する時計を参照して、収集した履歴には常に時刻情報を付加しているものとすることができる。
【００９４】
２つ目の場合は、バストレーサ１８内のパターン照合部４４ｂが、トレース部４２ｂにより収集された各履歴と要注意パターンとを照合して、適合した場合である。バストレーサ１８内のパターン照合部４４ｂは、トレース部４２ｂを介してデータ収集制御部１７に対し第２警告信号を出力する。
【００９５】
ここで、第２警告信号は、適合した履歴の種類と、適合した要注意パターンの種類、及び適合の度合いに関する情報を含む。適合の度合いを示すものとして、２種類の適合が存在する。１つは、「厳密適合」であり、履歴と要注意パターンとが完全一致する部分が存在する。もう１つは、「順番適合」であり、完全一致するわけではないが履歴中に要注意パターンと同じの信号の順番が現れる。すなわち、「順番適合」においては、全体として信号の順番が同じであれば足り、個々の信号間に要注意パターンとは異なるパターンの信号が入ることもあり得る。「厳密適合」は、「順番適合」よりも適合の度合いが上である。
【００９６】
また、バストレーサ１８内のパターン照合部４４ｂは、適合チェックの仕組みとして外部バス２０側からのバスコンフィグレーションレジスタ１５に対する入出力履歴のみならず、内部バス３０側からバスインターフェース制御部１３を介して行うバスコンフィグレーションレジスタ１５に対する入出力履歴を含む全アクセス履歴を対象として照合を行う。
【００９７】
第２警告信号を入力されたデータ収集制御部１７は、コントローラトレーサ１９とバストレーサ１８とに収集され保持された各履歴に基づく履歴データを抽出して収集する。
【００９８】
具体的には、データ収集制御部１７は、第２警告信号に基づき要注意パターン発生のタイミングと同タイミングの履歴データを、コントローラトレーサ１９の保持している、内部バス３０に対する内部バス制御部１１のアクセス履歴、内部バス３０とローカルレジスタ１４との間のデータの入出力履歴、及び内部バス３０とバスコンフィグレーションレジスタ１５との間のデータの入出力履歴の各履歴から抽出して収集する。
【００９９】
さらにデータ収集制御部１７は、第２警告信号に基づき要注意パターン発生のタイミングと同タイミングの履歴データを、バストレーサ１８の保持している、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴、内部バス３０とバスコンフィグレーションレジスタ１５との間のデータの入出力履歴、及び外部バス２０とバスコンフィグレーションレジスタ１５との間のデータの入出力履歴の各履歴から抽出して収集する。
【０１００】
またデータ収集制御部１７は、第２警告信号に基づきバストレーサ１８にて照合された要注意パターンの種類情報を得る。
【０１０１】
さらにデータ収集制御部１７は、抽出した履歴データ、要注意パターンの種類、及び要注意パターン発生のタイミングに関する情報を内部バス３０を介して外部記録装置３６に出力し、データの保存を行う。
【０１０２】
３つ目の場合は、コントローラトレーサ１９内のパターン照合部４４ａが、トレース部４２ａにより収集された各履歴と要注意パターンとを照合して、適合した場合である。コントローラトレーサ１９内のパターン照合部４４ａは、トレース部４２ａを介してデータ収集制御部１７に対し第２警告信号を出力する。
【０１０３】
第２警告信号を入力されたデータ収集制御部１７の動作は、２つ目の場合と同様であるので、重複した説明を省略する。
【０１０４】
上述のとおり、本発明の実施例２の形態に係るバスデバイス１０ｂによれば、実施例１と同様の効果に加え、内部バス３０側の情報を収集して保持するコントローラトレーサ１９と、外部バス２０側の情報を収集して保持するバストレーサ１８と、コントローラトレーサ１９及びバストレーサ１８により保持された各履歴に基づく履歴データを抽出して収集するデータ収集制御部１７とを備えるので、イベント発生時に様々な障害発生要因に対する解析を行うことが容易になる。
【０１０５】
また、パターン照合部４４ａ及び４４ｂが特定の順番のアクセスパターンを示す要注意パターンと収集された各履歴とを照合するので、障害を起こしやすいアクセスパターン時の外部バス２０側及び内部バス３０側の情報を収集することができる。すなわち、バスデバイス１０ｂは、外部バス２０と内部バス３０の仕様に規定されたエラーだけではなく、経験的に得られた障害の起き易いバス信号やローカルレジスタ１４、バスコンフィグレーションレジスタ１５に対する入出力履歴のパターンの出現を条件として、外部バス２０側及び内部バス３０側の情報を収集し、解析することができる。
【０１０６】
さらに、バスインターフェース制御部１３は、外部バス２０との通信時に外部バスの仕様に規定されるエラー信号を検出した場合にエラーの種類及びエラー発生のタイミングに関する情報を示す第３警告信号をバストレーサ１８を介してデータ収集制御部１７に対して出力するので、データ収集制御部１７は、エラー信号を検出したタイミングを知ることができ、外部バス２０側の情報のみならず、内部バス３０側の情報を保存することができる。
【実施例３】
【０１０７】
次に、図５は、本発明の実施例３のバスデバイス１０ｃの構成を示すブロック図である。なお図５乃至図１１の図面において、ＣＰＵ３２、主メモリ３４、及び外部記憶装置３６は記載されていないが、単に省略されているものとする。実施例２の構成と異なる点としては、バストレーサ１８ａが外部バス２０に接続されたバストレーサ専用インターフェース５２を備え、外部バス２０の情報を収集することができる点である。
【０１０８】
したがって、バストレーサ１８ａは、バスインターフェース制御部１３を介さずに、外部バス２０の情報を収集することができる。
【０１０９】
バスインターフェース制御部１３とは異なり、バストレーサ１８ａは、バスデバイス１０ｃの通常の通信には関与する必要が無い。そのため、バストレーサ専用インターフェース５２は、外部バス２０への書き込み機能は必要なく、外部バス２０の情報を読み出す機能のみでよい。
【０１１０】
またバストレーサ１８ａは、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴とバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴をバスインターフェース制御部１３から収集して保持する点は実施例２と同様である。
【０１１１】
したがって、バストレーサ１８ａは、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴と、バストレーサ専用インターフェース５２を介した外部バス２０の情報とを比較することができる。これにより、外部バス２０に対するバスインターフェース制御部１３の通信機能の動作が正常であるか否かを確認することができる。この場合、バストレーサ１８ａは、バストレーサ専用インターフェース５２を介して収集した外部バス２０の情報のみをバス履歴保持バッファ４７ｂに保持し、バスインターフェース制御部１３から収集した外部バス２０に対するアクセス履歴は保持しない。外部バス２０に対するバスインターフェース制御部１３のアクセス履歴は、正常動作の確認にのみ用いられる。
【０１１２】
次に実施例３に係るバスデバイス１０ｃの動作を説明する。バスデバイス１０ｃ内の各構成要素が正常に動作している場合、バストレーサ１８ａは、外部バス２０の情報をバスインターフェース制御部１３を経由せず、バストレーサ専用インターフェース５２から直接収集する。その他の動作は、実施例２と同様である。
【０１１３】
バストレーサ１８は、障害原因解明のために必要な障害発生時の外部バス２０に対するアクセス履歴をバスインターフェース制御部１３から収集する必要がある。しかしながら、実施例２の構成では、バスインターフェース制御部１３に障害が発生した場合、バストレーサ１８は、外部バス２０に対するバスインターフェース制御部１３のアクセス履歴を収集できなくなる。
【０１１４】
これに対し、本実施例の構成では、バストレーサ１８ａは、外部バス２０の情報の収集経路であるバストレーサ専用インターフェース５２を自ら備えているので、バスインターフェース制御部１３の動作の如何に関らず、外部バス２０の情報を収集し続ける事が出来る。
【０１１５】
上述のとおり、本発明の実施例３の形態に係るバスデバイス１０ｃによれば、バスインターフェース制御部１３に障害が発生した場合でも、バスデバイス１０ｃは、外部バス２０の情報を取得する事が出来る。これにより、バスインターフェース制御部１３に起因するバスデバイス障害（外部バス２０の通信障害といった形で障害が表面化する）においても、障害の原因解明に役立つ外部バス２０側のバスアクセス履歴を収集する事ができ、障害の解析を容易に行う事が出来る。
【０１１６】
その他の効果は実施例２と同様である。
【実施例４】
【０１１７】
次に、図６は、本発明の実施例４のバスデバイス１０ｄの構成を示すブロック図である。実施例２の構成と異なる点としては、コントローラトレーサ１９ａが内部バス３０に接続されたコントローラトレーサ専用インターフェース５４を備え、内部バス３０の情報を収集することができる点である。
【０１１８】
したがって、コントローラトレーサ１９ａは、内部バス制御部１１を介さずに、内部バス３０の情報を収集することができる。
【０１１９】
また実施例３の場合と同様、コントローラトレーサ１９ａは、バスデバイス１０ｄの通常の通信には関与する必要が無い。そのため、コントローラトレーサ専用インターフェース５４は、内部バス３０への書き込み機能は必要なく、内部バス３０の情報を読み出す機能のみでよい。
【０１２０】
またコントローラトレーサ１９ａは、内部バス３０に対する内部バス制御部１１のアクセス履歴、内部バス制御部１１を介するローカルレジスタ１４に対する第１データの入出力履歴、及び内部バス制御部１１を介するバスコンフィグレーションレジスタ１５に対する第２データの入出力履歴の少なくとも一つを内部バス制御部１１から収集して保持する点は実施例２と同様である。
【０１２１】
したがって、コントローラトレーサ１９ａは、内部バス３０に対する内部バス制御部１１のアクセス履歴と、コントローラトレーサ専用インターフェース５４を介した内部バス３０の情報とを比較することができる。これにより、内部バス３０に対する内部バス制御部１１の通信機能の動作が正常であるか否かを確認することができる。この場合、コントローラトレーサ１９ａは、コントローラトレーサ専用インターフェース５４を介して収集した内部バス３０の情報のみをバス履歴保持バッファ４７ａに保持し、内部バス制御部１１から収集した内部バス３０に対するアクセス履歴は保持しない。内部バス３０に対する内部バス制御部１１のアクセス履歴は、正常動作の確認にのみ用いられる。
【０１２２】
次に実施例４に係るバスデバイス１０ｄの動作を説明する。バスデバイス１０ｄ内の各構成要素が正常に動作している場合、コントローラトレーサ１９ａは、内部バス制御部１１を経由せず、コントローラトレーサ専用インターフェース５４から直接内部バス３０の情報を収集する。その他の動作は、実施例２と同様である。
【０１２３】
実施例２の構成では、コントローラトレーサ１９ａは、内部バス制御部１１に障害が発生した場合、内部バス３０に対する内部バス制御部１１のアクセス履歴を収集できなくなる。
【０１２４】
これに対し、本実施例の構成では、コントローラトレーサ１９ａは、内部バス３０の情報の収集経路であるコントローラトレーサ専用インターフェース５４を自ら備えているので、内部バス制御部１１の動作の如何に関らず、内部バス３０の情報を収集し続ける事が出来る。
【０１２５】
上述のとおり、本発明の実施例４の形態に係るバスデバイス１０ｄによれば、内部バス制御部１１に障害が発生した場合でも、バスデバイス１０ｄは、内部バス３０の情報を取得する事が出来る。これにより、内部バス制御部１１に起因するバスデバイス障害においても、障害の原因解明に役立つ内部バス３０側のバスアクセス履歴を収集する事ができ、障害の解析を容易に行う事が出来る。
【０１２６】
その他の効果は実施例２と同様である。
【実施例５】
【０１２７】
次に、図７は、本発明の実施例５のバスデバイス１０ｅの構成を示すブロック図である。実施例２の構成と異なる点としては、バスデバイス１０ｅは、コントローラトレーサ１９の代わりに、電源トレーサ６０を備えている点である。
【０１２８】
電源トレーサ６０は、バスデバイス１０ｅを搭載するシステムの電源部からバスデバイス１０ｅへの電源供給状態を収集して保持する。
【０１２９】
電源トレーサ６０は、バスデバイス１０ｅを搭載するシステムの電源部であるシステム電源部７０からバスデバイス１０ｅの電源ラインへのインターフェース部に位置し、システム電源部７０及びデータ収集制御部１７ａに接続されている。
【０１３０】
電源トレーサ６０は、バスデバイス１０ｅへの電源供給状態（供給される電力の電流値、電圧値の時系列データ）を、図示されない電源履歴バッファに保持する。電源履歴バッファは、実施例２のバス履歴保持バッファ４７ａと同様の動作を行う。
【０１３１】
データ収集制御部１７ａは、実施例２で説明したように各履歴データを抽出して収集し、さらに電源トレーサ６０により保持された電源供給状態に基づく電源データを抽出して収集する。
【０１３２】
次に実施例５に係るバスデバイス１０ｅの動作を説明する。データ収集制御部１７ａは、第２警告信号又は第３警告信号が入力された場合に、バストレーサ１８からの履歴データを抽出して収集するのは、実施例２と同様である。その際、さらに電源トレーサ６０からエラー又は要注意パターンが発生したタイミングと同タイミングの電源データを抽出して収集する。
【０１３３】
またデータ収集制御部１７ａは、収集した履歴データと電源データとを内部バス３０を介して外部記憶装置３６に出力する。これにより、外部バス２０のバス情報に加え、バスデバイス１０ｅへの電源状態に関するデータを保存することができる。
【０１３４】
上述のとおり、本発明の実施例５の形態に係るバスデバイス１０ｅによれば、障害の原因がバスデバイス１０ｅに対する電源状態（例えば供給電圧の異常変動や瞬間的な停電など）にあった場合の障害の原因解明をスムーズに行うことができる。
【０１３５】
従来の技術では、デバイスの電源状態を収集して保持する手段を持たなかったため、実験室環境で測定器を用いて電源状態のデータを収集する必要があった。しかしながら、本発明の実施例５の構成により、データ収集制御部は、電源トレーサから電源供給状態に基づく電源データを収集するので、バスデバイス１０ｅ側で電源状態のデータを収集することが可能となり、外部バス２０に対するアクセス履歴に基づく履歴データと組み合わせて電源データが収集できる。したがって、バスデバイス１０ｅの通信処理と電源状態の同期データを元に、電源が障害発生の要因となっている場合に、容易に解析を行うことができる。
【実施例６】
【０１３６】
次に、図８は、本発明の実施例６のバスデバイス１０ｆの構成を示すブロック図である。実施例５の構成と異なる点としては、バスデバイス１０ｆは、さらにコントローラトレーサ１９を備えている点である。
【０１３７】
電源トレーサ６０及びコントローラトレーサ１９の動作は、それぞれ実施例５及び実施例２と同様であるので、重複した説明を省略する。
【０１３８】
次に実施例６に係るバスデバイス１０ｆの動作を説明する。データ収集制御部１７ａは、第２警告信号又は第３警告信号が入力された場合に、バストレーサ１８及びコントローラトレーサ１９からの履歴データを抽出して収集するのは、実施例２と同様である。その際、さらに電源トレーサ６０からエラー又は要注意パターンが発生したタイミングと同タイミングの電源データを抽出して収集する。
【０１３９】
またデータ収集制御部１７ａは、収集した履歴データと電源データとを内部バス３０を介して外部記憶装置３６に出力する。これにより、外部バス２０及び内部バス３０のバス情報に加え、バスデバイス１０ｅへの電源状態に関するデータを保存することができる。
【０１４０】
上述のとおり、本発明の実施例６の形態に係るバスデバイス１０ｆによれば、実施例５の効果に加え、内部バス３０に対するアクセス履歴に基づく履歴データも収集できる。したがって、バスデバイス１０ｆの内部バス３０及び外部バス２０の通信処理と電源状態の同期データを元に、障害原因解明のための解析を容易に行うことができる。
【実施例７】
【０１４１】
次に、図９は、本発明の実施例７のバスデバイス１０ｇの構成を示すブロック図である。実施例２の構成と異なる点としては、バスデバイス１０ｇは、さらに内部メモリ回路６２を備えている点である。
【０１４２】
内部メモリ回路６２は、データ収集制御部１７ｃにより収集された履歴データを保存する。なお、内部メモリ回路６２は、履歴データのみならず、電源データや後述する割り込み信号データを保存することもできる。
【０１４３】
また内部メモリ回路６２は、フラッシュＲＯＭ等の書き込み可能な不揮発性ＲＯＭメモリとしてバスデバイス１０ｇ内に実装され、バスデバイス１０ｇの電源が切れた後もデータを保持できる。
【０１４４】
データ収集制御部１７ｃは、バストレーサ１８及びコントローラトレーサ１９から収集した履歴データを内部メモリ回路６２に出力する。そのため、データ収集制御部１７ｃは、外部記憶装置３６に履歴データを出力しないので、内部バス３０に接続される必要がない。
【０１４５】
次に実施例７に係るバスデバイス１０ｇの動作を説明する。データ収集制御部１７ｃが、バストレーサ１８及びコントローラトレーサ１９から履歴データを収集するまでは、実施例２と同様である。データ収集制御部１７ｃは、収集した履歴データを内部メモリ回路６２に出力する。
【０１４６】
上述のとおり、本発明の実施例７の形態に係るバスデバイス１０ｇによれば、内部バス３０経由で外部記憶装置３６に保存する必要が無いので、仮に内部バス３０に障害が起きたとしても、バスデバイス１０ｇは、障害要因解析用の履歴データを安全確実に保存することができる。
【実施例８】
【０１４７】
次に、図１０は、本発明の実施例８のバスデバイス１０ｈの構成を示すブロック図である。実施例２の構成と異なる点としては、バスデバイス１０ｈ内のデータ収集制御部１７ｄは、周辺モジュール用内部バス６６を介して外部メモリ回路６４に接続されている点である。この周辺モジュール用内部バス６６は、内部バス３０とは異なる。周辺モジュール用内部バス６６は、内部バス３０及び外部バス２０とは独立して動作するシステム内バスである。
【０１４８】
外部メモリ回路６４は、バスデバイス１０ｈの外部に設けられ、データ収集制御部１７ｄの収集した履歴データを保存する。なお、外部メモリ回路６４は、履歴データのみならず、電源データや後述する割り込み信号データを保存することもできる。
【０１４９】
データ収集制御部１７ｄは、バストレーサ１８及びコントローラトレーサ１９から収集した履歴データを周辺モジュール用内部バス６６を介して外部メモリ回路６４に出力する。そのため、データ収集制御部１７ｄは、外部記憶装置３６に履歴データを出力しないので、内部バス３０に接続される必要がない。
【０１５０】
次に実施例８に係るバスデバイス１０ｈの動作を説明する。データ収集制御部１７ｄが、バストレーサ１８及びコントローラトレーサ１９から履歴データを収集するまでは、実施例２と同様である。データ収集制御部１７ｄは、収集した履歴データを外部メモリ回路６４に出力する。
【０１５１】
上述のとおり、本発明の実施例８の形態に係るバスデバイス１０ｈによれば、内部バス３０経由で外部記憶装置３６に保存する必要が無く、仮に内部バス３０に障害が起きたとしても、モジュール用内部バス６６は、内部バス３０とは独立しているため、バスデバイス１０ｈは、障害要因解析用の履歴データを安全確実に外部メモリ回路６４に保存することができる。
【０１５２】
また、実施例７におけるバスデバイス１０ｇは、実装上の制約により、内部メモリ回路６２用に十分な記憶容量を確保できない場合が多いのに対し、本実施例におけるバスデバイス１０ｈは、内部に内部メモリ回路６２を有する必要が無く、外部に十分な記憶容量を有する外部メモリ回路６４が存在するため、実装上の余裕を確保できる。
【０１５３】
したがって、バスデバイス１０ｈは、実装上の制約に左右されずに、バスデバイス１０ｈ外部に障害解析用データの記録装置として十分な記憶容量を有する外部メモリ回路６４を確保でき、かつ内部バス３０の障害時にも安全に障害解析用の履歴データを外部メモリ回路６４に保存できる。
【実施例９】
【０１５４】
次に、図１１は、本発明の実施例９のバスデバイス１０ｉの構成を示すブロック図である。実施例２の構成と異なる点としては、バスデバイス１０ｉは、コントローラトレーサ１９の代わりに、Ｉ／Ｏトレーサ６８を備えている点である。
【０１５５】
Ｉ／Ｏトレーサ６８は、バスデバイス１０ｉを搭載するシステム内の割り込み信号を収集して保持する。ここで、割り込み信号とは、例えば、ＮＭＩ（ノンマスカブル）割り込み、ＷＤＴ（ウォッチドッグ・タイマ）信号、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）割り込み、ＵＢＣ（ユーザ・ブレーク・コントローラ）等である。
【０１５６】
Ｉ／Ｏトレーサ６８は、バスデバイス１０ｉを搭載するシステムからバスデバイス１０ｉへの各信号ライン（内部バス３０、外部バス２０、電源ラインを除く）のインターフェース部に位置し、データ収集制御部１７ｅに接続されている。
【０１５７】
Ｉ／Ｏトレーサ６８は、バスデバイス１０ｉを搭載するシステム内の割り込み信号を、図示されないＩ／Ｏ履歴バッファに保持する。Ｉ／Ｏ履歴バッファは、実施例２のバス履歴保持バッファ４７ａと同様の動作を行う。
【０１５８】
データ収集制御部１７ｅは、実施例２で説明したように各履歴データを抽出して収集し、さらにＩ／Ｏトレーサ６８により保持された割り込み信号に基づく割り込み信号データを抽出して収集する。
【０１５９】
次に実施例９に係るバスデバイス１０ｉの動作を説明する。データ収集制御部１７ｅは、第２警告信号又は第３警告信号が入力された場合に、バストレーサ１８からの履歴データを抽出して収集するのは、実施例２と同様である。その際、さらにＩ／Ｏトレーサ６８からエラー又は要注意パターンが発生したタイミングと同タイミングの割り込み信号データを抽出して収集する。
【０１６０】
またデータ収集制御部１７ｅは、収集した履歴データと割り込み信号データとを内部バス３０を介して外部記憶装置３６に出力する。これにより、外部バス２０のバス情報に加え、バスデバイス１０ｉへの入出力信号（割り込み、WDT信号）に関するデータを保存することができる。
【０１６１】
また、さらにコントローラトレーサ１９を備えている場合には、内部バス３０のバス情報も収集できることは言うまでもない。
【０１６２】
上述のとおり、本発明の実施例９の形態に係るバスデバイス１０ｉによれば、障害の原因がシステム内の他のデバイスからの入出力信号（例えば予期せぬタイミングでのＮＭＩ割込み）にあった場合の障害の原因解明を行うことが容易となる。
【０１６３】
従来の技術でこれらの入出力信号（割り込み、ＷＤＴ等）に関するログを取るには、予めＣＰＵ３２側のプログラムに入出力信号の取得用プログラムを組む必要があった。しかしながら、本実施例の構成により、割り込み信号を収集することが容易となる。
【０１６４】
さらに、従来技術では、ＣＰＵ３２側で信号の履歴を記録する事が可能でも、バスデバイス１０ｉ側のバス動作履歴と正確に時間を同期させて記録する事が難しく、障害原因の解析が困難であった。しかしながら、本実施例の構成により、データ収集制御部１７ｅで履歴データと組み合わせて割り込み信号データが収集できるため、バスデバイス１０ｉの通信処理と割り込み信号の同期データを元に、障害原因の解明を容易に行う事が出来る。
【産業上の利用可能性】
【０１６５】
本発明に係るバスデバイスは、ＰＣＩバスを始めとする外部バス及び内部バスに接続されたバスデバイスに利用可能である。
【図面の簡単な説明】
【０１６６】
【図１】本発明の実施例１の形態のバスデバイス及びその周辺の構成を示すブロック図である。
【図２】本発明の実施例２の形態のバスデバイス及びその周辺の構成を示すブロック図である。
【図３】本発明の実施例２の形態のバスデバイス内のコントローラトレーサの構成を示すブロック図である。
【図４】本発明の実施例２の形態のバスデバイス内のバストレーサの構成を示すブロック図である。
【図５】本発明の実施例３の形態のバスデバイスの構成を示すブロック図である。
【図６】本発明の実施例４の形態のバスデバイスの構成を示すブロック図である。
【図７】本発明の実施例５の形態のバスデバイスの構成を示すブロック図である。
【図８】本発明の実施例６の形態のバスデバイスの構成を示すブロック図である。
【図９】本発明の実施例７の形態のバスデバイスの構成を示すブロック図である。
【図１０】本発明の実施例８の形態のバスデバイスの構成を示すブロック図である。
【図１１】本発明の実施例９の形態のバスデバイスの構成を示すブロック図である。
【符号の説明】
【０１６７】
１０ａ、１０ｂ、１０ｃ、１０ｄ、１０ｅ、１０ｆ、１０ｇ、１０ｈ、１０ｉ  バスデバイス
１１    内部バス制御部
１２    データ転送制御部
１３    バスインターフェース制御部
１４    ローカルレジスタ
１５    バスコンフィグレーションレジスタ
１６    データ収集部
１６ａ  第１インターフェース
１６ｂ  第２インターフェース
１７、１７ａ、１７ｂ、１７ｃ、１７ｄ、１７ｅ  データ収集制御部
１８、１８ａ  バストレーサ
１９、１９ａ  コントローラトレーサ
２０    外部バス
３０    内部バス
３２    ＣＰＵ
３４    主メモリ
３６    外部記憶装置
４２ａ、４２ｂ  トレース部
４４ａ、４４ｂ  パターン照合部
４６ａ、４６ｂ  要注意パターン保持部
４７ａ、４７ｂ  バス履歴保持バッファ
４８ａ、４８ｂ  レジスタ履歴保持バッファ
５２    バストレーサ専用インターフェース
５４    コントローラトレーサ専用インターフェース
６０    電源トレーサ
６２    内部メモリ回路
６４    外部メモリ回路
６６    周辺モジュール用内部バス
６８    Ｉ／Ｏトレーサ
７０    システム電源部
【図１】
2008134838.tif 000003
【図２】
2008134838.tif 000004
【図３】
2008134838.tif 000005
【図４】
2008134838.tif 000006
【図５】
2008134838.tif 000007
【図６】
2008134838.tif 000008
【図７】
2008134838.tif 000009
【図８】
2008134838.tif 000010
【図９】
2008134838.tif 000011
【図１０】
2008134838.tif 000012
【図１１】
2008134838.tif 000013