(57)【要約】【課題】システムロックの発生を低減し、リアルタイム性を確保しつつ異常の発生を通知及び記録できるスレーブ装置を提供すること。【解決手段】スレーブ装置は、共有バスを介してマスタデバイスに接続され、ローカルバスにマスタ装置のターゲットとなるハンドシェイクデバイス３が接続されている。バスコントローラ１は、共有バスから到来するマスタデバイスのアクセス要求に従って、ローカルバスを介してハンドシェイクデバイス３を制御する。ローカルバス監視部５は、ローカルバスを監視し、ハンドシェイクデバイス３から一定時間内に応答が無い場合に、ハンドシェイクデバイス３によるローカルバスのアクセスを中断する信号を発生する。バスコントローラ１は、上記アクセスを中断する信号を受けた時に、上記アクセスの終了を共有バスに通知する。【選択図】      図１
2010003268.tif 000002
【特許請求の範囲】
【請求項１】
共有バスを介してマスタ装置に接続され、ローカルバスに前記マスタ装置のターゲットデバイスが接続されたスレーブ装置であって、
前記共有バスから到来する前記マスタ装置のアクセス要求に従って、前記ローカルバスを介して前記ターゲットデバイスを制御するバスコントローラと、
前記ローカルバスを監視し、前記ターゲットデバイスから一定時間内に応答が無い場合に、前記ターゲットデバイスによる前記ローカルバスのアクセスを中断する信号を発生するバス監視部と
を具備し、
前記バスコントローラは、前記信号が発生した時に、前記アクセスの終了を前記共有バスに通知することを特徴とするスレーブ装置。
【請求項２】
前記信号が発生した時に、前記ローカルバスから取得したデータをエラーログに記録するエラー記録部をさらに具備することを特徴とする請求項１記載のスレーブ装置。
【請求項３】
前記信号が発生した時に、前記共有バスに割込要求を通知する割込コントローラをさらに具備することを特徴とする請求項１記載のスレーブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、本発明は、ＰＣＩバス、ＶＭＥバス等の共有バスを有するシステムに用いられるスレーブ装置に関する。
【背景技術】
【０００２】
共有バスに接続されるスレーブデバイスのターゲットが、ハンドシェイク制御を必要とするデバイスであった場合、その制御がハングアップした段階で、共有バスを占有したままロックしてしまうこととなる。
【０００３】
例えば、ＶＭＥバスにおいては、システム上のバスタイマによってバストランザクションが中断され、待機状態に戻ることになるが、タイムアウトまでの時間のオーバーヘッドは発生し、システムのリアルタイム性に影響を与える。一方、ＰＣＩバスにおいては、トランザクション中にターゲット・レディ（TRDY）が非アクティブのまま停止することとなり、ＰＣＩバスの仕様上そのままバスが占有され復帰せず、システムはデットロック状態に陥ってしまう。
【０００４】
また、異常発生時の内部状況を捉えることが難しいことから、異常状態の解析が非常に困難となるとともに、ＶＭＥバスのような自動復旧機能を有するバス上では、異常が発生したことさえ検知できず、異常時のデータで運用してしまう可能性も生じる。
【０００５】
なお、本願に関連する公知文献として次のようなものがある。特許文献１では、データバスに発生するエラーを監視する手法が提案されているが、本願とは構成および処理方法が異なる。
【特許文献１】特開２００１−７５８７８公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、ハンドシェイク制御を必要とするデバイスを持つスレーブデバイスでは、その制御がハングアップすると、共有バスを占有したままロックしてしまう。これにより、システムのリアルタイム性が損なわれるという問題がある。
【０００７】
この発明は上記事情に着目してなされたもので、その目的とするところは、システムロックの発生を低減し、リアルタイム性を確保できるスレーブ装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するためにこの発明に係るスレーブ装置は、共有バスを介してマスタ装置に接続され、ローカルバスに前記マスタ装置のターゲットデバイスが接続されたスレーブ装置であって、前記共有バスから到来する前記マスタ装置のアクセス要求に従って、前記ローカルバスを介して前記ターゲットデバイスを制御するバスコントローラと、前記ローカルバスを監視し、前記ターゲットデバイスから一定時間内に応答が無い場合に、前記ターゲットデバイスによる前記ローカルバスのアクセスを中断する信号を発生するバス監視部とを具備し、前記バスコントローラは、前記信号が発生した時に、前記アクセスの終了を前記共有バスに通知するものである。
【発明の効果】
【０００９】
したがってこの発明によれば、システムロックの発生を低減し、リアルタイム性を確保しつつ異常の発生を通知及び記録できるスレーブ装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施の形態を詳細に説明する。  
図１は、本発明に係るスレーブ装置の一実施形態を示す構成図である。このスレーブ装置は、共有バスを介してＣＰＵ等のマスタデバイスに接続されている。図１では、マスタデバイスのターゲットデバイスとして、ハンドシェイクデバイスを使用した構成例を示している。なお、複数のハンドシェイクデバイスを備える構成としても良い。
【００１１】
バスコントローラ１は、共有バスのプロトコル制御と、マスタデバイスによる共有バスからのアクセスを、スレーブ内リソースへのアクセスのための簡素化されたバスに変換する。共有バス用の割込コントローラ２は、スレーブ内から割込要求があった場合、共有バスの割込仕様に従い、割込を発行する。本実施形態においては、割込要求はローカルバス異常検出時となる。
【００１２】
ハンドシェイクデバイス３は、ローカルバスからの選択信号（L_CS）を検出すると、ハンドシェイクデバイス３内のアクセス処理が終了したのちに、完了信号（L_ACK）を出力する。
【００１３】
バスブリッジ４は、バスコントローラ１とターゲットデバイスであるハンドシェイクデバイス３及びエラーログコントローラ６との間のアクセス制御を行う。バスブリッジ４は、バスコントローラ１からのアドレス（ADR）をデコードし、アクセス制御をハンドシェイクデバイス３又はエラーログコントローラ６に振り分ける。また、バスブリッジ４は、ローカルバス監視部５からのアボートコマンド（ABORT）により、ハンドシェイクデバイス３へのアクセスを中断するとともに、バスコントローラ１へ強制的にバス完了信号（ACK）を返す機能をもつ。
【００１４】
ローカルバス監視部５は、ハンドシェイクデバイス３の制御信号を監視し、異常を検出した際は、バスアクセスの中断コマンド（ABORT）と、エラーステータス信号（LBERR）を発行する。ローカルバス監視部５は、デバイスの選択信号（L_CS）と完了信号（L_ACK）を監視する。選択信号がアクティブになるとウォッチドッグタイマ（ＷＤＴ：Watchdog Timer）が起動し、規定時間内に完了信号がアクティブにならなかった場合、バス異常と判断する。規定時間は、デバイスに依存するため、ターゲットデバイスに応じて設定される。
【００１５】
エラーログコントローラ６は、ローカルバス監視部５から異常検出状態が通知された際に、バスの状態（アドレス，データ，R/W）をサンプルし、エラーログデータとして、記録デバイス７へ書込み制御を行う。エラーログデータは、バス状態の他に、デバイス固有のステータス情報や、タイムスタンプなどを同時に記録してもよい。また、エラーログコントローラ６は、バスブリッジ４からの制御により、記録デバイス７からエラーログを読み出す機能も有する。読み出されたデータは、共有バス経由でマスタデバイスに送られる。
【００１６】
記録デバイス７は、エラーログコントローラ６の制御により、エラーログの記録が行われる。記録デバイス７としては、例えば、レジスタやＲＡＭが用いられるが、ＥＥＲＯＭ（Electrically Erasable ROM）等の不揮発性メモリを使用することで、システムの電源を落としてもデータが失われないため、過去のログを参照することが可能となる。
【００１７】
次に、このように構成されたスレーブ装置の動作について説明する。図２及び図３に、図１に示すスレーブ装置のタイミングチャートの一例を示す。なお、これらのタイミングチャートは、構成図（図１）中で制御に関連する信号のみを表わしたものである。
【００１８】
（正常動作時）  
図２は、正常動作時のタイミングチャートである。
【００１９】
（１）共有バスからスレーブアクセスが発生し、自スレーブへのアクセスと判断したバスコントローラ１は、CSをアサートし、バスブリッジ４にアクセス要求を行うとともに、ACKがアクティブになるのを待つ。
【００２０】
（２）CSを受けたバスブリッジ４は、アドレスをターゲット領域とデコードした際、ハンドシェイクデバイス３に対して、L_CSをアサートする。
【００２１】
（３）L_CSを受けたハンドシェイクデバイス３は、アクセス状態となり、内部処理が終了（書込みデータの取込完了または読込みデータの準備完了）した段階で、L_ACKをアサートする。また、同時にローカルバス監視部５内のＷＤＴがカウンタ動作を開始する。
【００２２】
（４）L_ACKを受けたバスブリッジ４は、バスコントローラ１にACKをアサートするとともに、L_CSを解除する。また、この段階で、ローカルバス監視部５内のＷＤＴはIDLE状態に戻る。
【００２３】
（５）ACKを受けたバスコントローラ１は、共有バスのアクセスを終了させ、その後CSを解除する。共有バスの終了手順は、LBERRが非アクティブであるため、通常手順となる。
【００２４】
（異常動作時）  
図３は、異常発生時のタイミング図である。なお、ハンドシェイクデバイス３にアクセスが移るまでの動作は、上記正常動作時の（１）、（２）と同様であるため、ここでは、上記（３）以降の動作を以下の（３−１）〜（５−１）に対応させて説明する。
【００２５】
（３−１）L_CSを受けたハンドシェイクデバイス３は、アクセス状態となるが、何らかの異常が発生し内部処理が終了しない。その為、L_ACKがアサートされることはない。また、同時にローカルバス監視部５内のＷＤＴがカウンタ動作を開始する。
【００２６】
（４−１）L_ACKがアクティブとならないことで、ローカルバス監視部５内のＷＤＴは、規定時間を超過しタイムアウト状態となる。そうすると、ローカルバス監視部５は、ABORTとLBERRをアサートし、関連モジュールに異常発生を通知する。ABORT を受けたバスブリッジ４は、バスコントローラ１にACKをアサートするとともに、L_CSを解除する。
【００２７】
（５−１）ACKを受けたバスコントローラ１は、共有バスのアクセスを終了させ、その後CSを解除する。共有バスの終了手順は、LBERRがアクティブであるため、共有バス仕様に応じた手順で終了する。例えば、VMEバスの場合は、BERR信号発行によるトランザクションの終了、PCIバスの場合は、STOP信号発行によるディスコネクトなどの手段が考えられる。
【００２８】
（６）LBERRを受けた割込コントローラ２は、割込が許可されている場合に限り、共有バスに異常検出割込を発行する。システムのリアルタイム性や非同期要素に懸念が生じる場合は、必ずしも使用する必要はない。割込を使用しなくても、共有バス経由で定期的に記録デバイス７からエラーログの読出しを行えば、異常発生の有無は確認可能となる。
【００２９】
以上述べたように本実施形態では、バスコントローラ１は、共有バスから到来するマスタデバイスのアクセス要求に従って、ローカルバスを介してターゲットとなるハンドシェイクデバイス３を制御する。ローカルバス監視部５は、ローカルバスを監視し、ハンドシェイクデバイス３から一定時間内に応答が無い場合に、ハンドシェイクデバイス３によるローカルバスのアクセスを中断する信号を発生する。そして、バスコントローラ１は、上記アクセスを中断する信号を受けた時に、上記アクセスの終了を共有バスに通知する。
【００３０】
したがって、本実施形態によれば、ハンドシェイク制御を必要とするターゲットを持つスレーブデバイスにおいて、そのハングアップに対するリカバリや、システムのリアルタイム性に影響しない異常検出を行うことが可能となる。共有バスの異常監視は、共通性が必要であることから、長時間のタイムアウト値が用いられることが多いが、本発明は各スレーブ装置のターゲットデバイス毎に適切なタイムアウト値を設定できる為、異常発生時のオーバーヘッドを極力抑えることができる。また、エラーログを記録することで、よりメンテナンス性に優れたシステムを構築することが可能となる。
【００３１】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００３２】
【図１】本発明に係るスレーブ装置の一実施形態の構成図。
【図２】図１に示すスレーブ装置の正常動作時のタイミングチャート。
【図３】図１に示すスレーブ装置の異常動作時のタイミングチャート。
【符号の説明】
【００３３】
１・・・バスコントローラ
２・・・割込コントローラ
３・・・ハンドシェイクデバイス
４・・・バスブリッジ
５・・・ローカルバス監視部
６・・・エラーログコントローラ
７・・・記録デバイス
【図１】
2010003268.tif 000003
【図２】
2010003268.tif 000004
【図３】
2010003268.tif 000005