(57)【特許請求の範囲】
【請求項１】
コンピュータ装置の障害調査を行うための障害パスを保存する障害パス保存装置であって、
前記コンピュータ装置の分岐命令実行時の分岐元アドレス及び分岐先アドレスを保存するヒストリメモリと、
前記ヒストリメモリへの凍結指示及び前記コンピュータ装置への停止指示の少なくとも一方を判断するためのアドレス情報を格納するテーブルと、
前記テーブルのアドレス情報に基づいて前記ヒストリメモリに保存される分岐元アドレス及び分岐先アドレスが予め設定された所定アドレスか否かを監視する手段と、
前記所定アドレスであることが検出された場合に、この所定アドレスに対し前記凍結指示がされているときに前記ヒストリメモリを凍結し、この所定アドレスに対し前記停止指示がされているときに前記コンピュータ装置を停止させる手段と、
を含むことを特徴とする障害パス保存装置。
【請求項２】
前記コンピュータ装置の分岐命令実行を監視しかつ前記分岐命令実行を検出した時に前記分岐命令実行時の分岐元アドレス及び分岐先アドレスを前記ヒストリメモリに保存する手段を含むことを特徴とする請求項１記載の障害パス保存装置。
【請求項３】
前記所定アドレスの設定を外部から読出し書込み自在としたことを特徴とする請求項１または請求項２記載の障害パス保存装置。
【請求項４】
前記ヒストリメモリの凍結を外部に通知する手段を含むことを特徴とする請求項１から請求項３のいずれか記載の障害パス保存装置。
【請求項５】
前記ヒストリメモリの凍結を外部からの解除指示に応答して解除する手段を含むことを特徴とする請求項１から請求項４のいずれか記載の障害パス保存装置。
【請求項６】
前記ヒストリメモリに保存された情報を外部から読出し自在としたことを特徴とする請求項１から請求項５のいずれか記載の障害パス保存装置。
【請求項７】
コンピュータ装置の障害調査を行うための障害パスを障害パス保存装置に保存する障害パス保存方法であって、
前記障害パス保存装置が、
前記コンピュータ装置の分岐命令実行を監視するステップと、
その分岐命令実行を検出した時に当該分岐命令実行時の分岐元アドレス及び分岐先アドレスをヒストリメモリに保存するステップと、
前記ヒストリメモリへの凍結指示及び前記コンピュータ装置への停止指示の少なくとも一方を判断するためのアドレス情報を格納するテーブルのアドレス情報に基づき、前記ヒストリメモリに保存される分岐元アドレス及び分岐先アドレスが予め設定された所定アドレスか否かを監視するステップと、
前記所定アドレスであることが検出された場合に、この所定アドレスに対し前記停止指示がされているときに前記コンピュータ装置を停止させ、この所定アドレスに対し前記凍結指示がされているときに前記ヒストリメモリを凍結させるステップと
を含むことを特徴とする障害パス保存方法。
【請求項８】
前記所定アドレスの設定を外部から読出し書込み自在としたことを特徴とする請求項７記載の障害パス保存方法。
【請求項９】
前記障害パス保存装置が、前記ヒストリメモリの凍結を外部に通知するステップを含むことを特徴とする請求項７から請求項８のいずれか記載の障害パス保存方法。
【請求項１０】
前記障害パス保存装置が、前記ヒストリメモリの凍結を外部からの解除指示に応答して解除するステップを含むことを特徴とする請求項７から請求項９のいずれか記載の障害パス保存方法。
【請求項１１】
前記ヒストリメモリに保存された情報を外部から読出し自在としたことを特徴とする請求項７から請求項１０のいずれか記載の障害パス保存方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は障害パス保存装置及びそれに用いる障害障害パス保存方法に関し、特にコンピュータ装置の障害調査に関する。
【０００２】
【従来の技術】
従来、ソフトウァアを開発する場合には、開発したソフトウェアがＣＰＵ（中央処理装置）をストールさせる可能性があるため、当該ソフトウェアのプログラムの動作をトレースすることで、問題箇所を発見するようにしている。
【０００３】
このプログラムの動作をトレースする場合には、専用のエミュレータを繋ぐか、ソフトウェア向け開発ツール（ｔｏｏｌ）を動作させ、その上で開発するソフトウェアを起動する等の特殊な環境を構築する必要がある。
【０００４】
上記のプログラムの動作をトレースする方法としては、特開平５−２５０２１２号公報や特開平１１−３１２０９８号公報、及び特開２０００−１１２７８３号公報等に開示された方法がある。
【０００５】
【発明が解決しようとする課題】
上述した従来のソフトウァア開発時のプログラムの動作をトレースする方法では、特殊な環境を構築する必要があるので、開発時に障害調査を行うことは可能であるが、装置の出荷後等の開発環境を構築することができない場所では事実上障害調査を行うことが不可能である。
【０００６】
そこで、本発明の目的は上記の問題点を解消し、特殊な環境を構築することなく、ソフトウェアでの問題を一次解析することができる障害パス保存装置及びそれに用いる障害パス保存方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明による障害パス保存装置は、コンピュータ装置の障害調査を行うための障害パスを保存する障害パス保存装置であって、
前記コンピュータ装置の分岐命令実行時の分岐元アドレス及び分岐先アドレスを保存するヒストリメモリを備え、
前記ヒストリメモリに保存される分岐元アドレス及び分岐先アドレスが予め設定された所定アドレスか否かを監視しかつ前記所定アドレスであることが検出された時に前記ヒストリメモリを凍結する手段を具備している。
【０００８】
本発明による障害パス保存方法は、コンピュータ装置の障害調査を行うための障害パスを障害パス保存装置に保存する障害パス保存方法であって、
前記障害パス保存装置側に、前記コンピュータ装置の分岐命令実行を監視するステップと、その分岐命令実行を検出した時に当該分岐命令実行時の分岐元アドレス及び分岐先アドレスをヒストリメモリに保存するステップとを備え、
前記障害パス保存装置側に、前記ヒストリメモリに保存される分岐元アドレス及び分岐先アドレスが予め設定された所定アドレスか否かを監視するステップと、前記所定アドレスであることが検出された時に前記コンピュータ装置を停止させるステップとを具備している。
【０００９】
すなわち、本発明の障害パス保存装置は、分岐命令実行時の分岐先アドレス及び分岐元アドレスを保存するヒストリメモリと、分岐命令実行時の分岐先アドレス及び分岐元アドレスをヒストリメモリに保存するフィルタと、分岐命令実行で分岐先アドレス及び分岐元アドレスをフィルタに送る回路と、割り込み発生時に分岐先アドレス及び分岐元アドレスをフィルタに送る回路とを有している。
【００１０】
また、本発明の障害パス保存装置は、フィルタがヒストリメモリの凍結やＣＰＵの停止を決めるためのテーブルと、テーブルを外部からリード・ライトする回路と、ヒストリメモリの凍結を外部から知る回路と、ヒストリメモリの凍結を外部から解除する回路と、ヒストリメモリを外部からリードする回路と、テーブルのエントリにしたがって受信したアドレスをエントリと比較して凍結やＣＰＵの停止の指示を行う回路と、ヒストリメモリを凍結する回路と、ＣＰＵを停止させる回路とを有している。
【００１１】
つまり、本発明の障害パス保存装置では、ＣＰＵの分岐処理を監視することで、分岐元アドレスや分岐先アドレスをヒストリメモリに保存し、特定のアドレスの保存を契機にヒストリメモリを凍結するようにしている。
【００１２】
このヒストリメモリの凍結を外部に通知することで、ソフトウェアの問題箇所発見の一次調査を、特殊な環境を構築することなく実現することが可能となる。また、アドレスによってはＣＰＵも停止させることで、障害発生の状況を保存することが可能となる。
【００１３】
【発明の実施の形態】
次に、本発明の一実施例について図面を参照して説明する。図１は本発明の一実施例による障害パス保存装置の構成を示すブロック図である。図１において、本発明の一実施例による障害パス保存装置はＣＰＵ（中央処理装置）１と、フィルタ部２と、ヒストリメモリ３と、分岐アドレス保存回路４と、割り込み分岐保存回路５とから構成されている。
【００１４】
フィルタ部２はフィルタ回路２１と、テーブル２２と、保存凍結回路２３とから構成されている。フィルタ回路２１は分岐アドレス保存回路４及び割り込み分岐保存回路５からの分岐元アドレス及び分岐先アドレスを信号線１０１を通してヒストリメモリ３に送出する。また、フィルタ部２はテーブル２２のエントリにしたがって受信したアドレスをエントリと比較してヒストリメモリ３の凍結の指示を行うとともに、信号線１０７を通してＣＰＵ１を停止させる。尚、ＣＰＵ１にはアドレスバス１１０と割り込み信号線１１１とが接続されている。
【００１５】
テーブル２２にはヒストリメモリ３の凍結やＣＰＵ１の停止を決めるための情報が格納され、外部から信号線１０２を通してリード・ライト可能となっている。保存凍結回路２３はフィルタ回路２１から受信した分岐先アドレス及び分岐元アドレスのヒストリメモリ３への保存、ヒストリメモリ３の凍結を信号線１０６を通して行い、信号線１０４を通した外部からの凍結解除通知に応答してヒストリメモリ３の凍結解除を行う。
【００１６】
ヒストリメモリ３はフィルタ回路２１からの分岐命令実行時の分岐先アドレス及び分岐元アドレスを保存し、凍結時に信号線１０３を通して凍結通知を外部に出力し、信号線１０５を通してその保存内容を外部に送出する。
【００１７】
分岐アドレス保存回路４は分岐命令実行で分岐先アドレス及び分岐元アドレスをフィルタ部２に送る。割り込み分岐保存回路５は割り込み発生時に分岐先アドレス及び分岐元アドレスをフィルタ部２に送る。
【００１８】
図２は図１のテーブル２２の構成を示す図である。図２において、テーブル２２には送信元アドレス（「１２３４５６７８」，「６６８８９９ＡＡ」，「ＡＡＢＢＣＣＤＤ」）と、送信先アドレス（「ＡＡ５５ＢＢＣＣ」，「ＦＦＤＣＢＡ９８」，「１１２２３３４４５５」）と、凍結指示（「１」，「０」）と、ＣＰＵ停止指示（「０」，「１」）とが格納されている。
【００１９】
図３は図１の分岐アドレス保存回路４及び割り込み分岐保存回路５の動作を示すフローチャートであり、図４は図１のフィルタ部２の動作を示すフローチャートであり、図５は図１のヒストリメモリ３の動作を示すフローチャートであり、図６は本発明の一実施例による障害パス保存装置の障害調査の処理動作を示すフローチャートである。これら図１〜図６を参照して本発明の一実施例の動作について説明する。
【００２０】
ＣＰＵ１は分岐アドレス保存回路４に接続されており、分岐アドレス保存回路４はＣＰＵ１の分岐動作を監視し（図３ステップＳ１）、ＣＰＵ１で分岐処理が行われると、分岐先アドレス及び分岐元アドレスを取出してフィルタ回路２１に送信する（図３ステップＳ２）。
【００２１】
また、割り込み分岐保存回路５はＣＰＵ１における割り込み発生を契機に（図３ステップＳ３）、割り込みハンドラへの分岐を監視し、分岐先アドレス及び分岐元アドレスを取出してフィルタ回路２１に送信する（図３ステップＳ４）。これは割り込みが通常の分岐とは異なる分岐方法が取られるのが一般的であるためである。
【００２２】
フィルタ部２は、図２に示すような構成のテーブル２２を持っており、このテーブル２２は外部から設定・参照が可能となっており、予めソフトウァアの異常処理のアドレス等を記憶させておく。
【００２３】
フィルタ回路２１は分岐アドレス保存回路４及び割り込み分岐保存回路５から分岐元アドレス及び分岐先アドレスを受取ると、テーブル２２を参照し、分岐アドレス保存回路４及び割り込み分岐保存回路５から送られて来たアドレスとテーブル２２に登録されたアドレスとの比較を行い、一致するアドレスのあるエントリを探す（図４ステップＳ１１）。
【００２４】
フィルタ回路２１は一致するエントリがあれば（図４ステップＳ１２）、「凍結指示」と「ＣＰＵ停止」とのビットを確認し（図４ステップＳ１３）、「凍結指示」が“１”になっていれば（図４ステップＳ１４）、ヒストリメモリ３に凍結指示を出す（図４ステップＳ１５）。ヒストリメモリ３を凍結することで、障害が発生したアドレスまでのプログラム上の経路を保存することが可能となる。
【００２５】
また、フィルタ回路２１は「ＣＰＵ停止」が“１”になっていれば（図４ステップＳ１６）、ＣＰＵ１に対して停止指示を出す（図４ステップＳ１７）。これは致命的な障害（ディスク破壊等のシステムが復旧不能になる可能性のある障害）発生時に、ＣＰＵ１を停止させて安全を確保すると同時に、ＣＰＵ１内のレジスタ（図示せず）をそのままの状態で保存させることによって、より詳細な調査が可能となる。
【００２６】
さらに、フィルタ回路２１は「凍結指示」及び「ＣＰＵ停止」の各ビットが“０”になっていれば、凍結や停止の指示を出さない。フィルタ回路２１は分岐アドレス保存回路４及び割り込み分岐保存回路５から送られてきたアドレスをヒストリメモリ３に送信する。
【００２７】
ヒストリメモリ３はフィルタ回路２１からアドレスを受取ると（図５ステップＳ２１）、凍結指示がされていなければ（図５ステップＳ２２）、フィルタ回路２１から送られてきたアドレスを保存する（図５ステップＳ２３）。
【００２８】
また、ヒストリメモリ３は凍結指示がなされていれば（図５ステップＳ２２）、フィルタ回路２１から送られてきたアドレスを廃棄し、外部に「凍結指示通知」を行う（図５ステップＳ２４）。
【００２９】
さらに、ヒストリメモリ３は保存領域が一杯になると、古い順に保存していたアドレスを廃棄して新しい保存領域を確保することで、最新の情報を保存する。ヒストリメモリ３は外部から参照可能である。上記の動作によってソフトウェアが異常処理をした場合に、異常処理に到達するまでの到達経路の情報がワンショットだけヒストリメモリ３に保存されることとなる。
【００３０】
障害調査を行う場合にはヒストリメモリ３をリードし（図６ステップＳ３１）、それを使用して障害調査を行う（図６ステップＳ３２）。また、障害調査の結果、新たに別のアドレスへの分岐を監視させたい場合には（図６ステップＳ３３）、フィルタ部２を再設定してヒストリメモリ３の凍結解除を外部から行う（図６ステップＳ３４）。
【００３１】
本発明の一実施例による障害パス保存装置では、上記の障害調査の処理動作を、障害調査が終了となるまで（図６ステップＳ３５）、繰り返し実行する（図６ステップＳ３１〜Ｓ３５）。尚、上記のテーブル２２のエントリの数はＮ個に拡張することが可能である。
【００３２】
このように、ＣＰＵ１の分岐処理を監視することで、分岐元アドレスや分岐先アドレスをヒストリメモリ３に保存し、特定のアドレスの保存を契機にヒストリメモリ３を凍結することによって、従来、障害調査の場合に障害時と同等の環境を作って再現させる必要性があるが、ヒストリメモリ３の参照によってその環境が不要となるので、特殊な環境を構築することなく、障害の一次調査を行うことができる。
【００３３】
また、フィルタ部２によってＣＰＵ１を停止させることで、ＣＰＵ１側の情報を保持させたままにすることができるので、致命的なソフトウェアの問題の場合にＣＰＵ１側の情報もそのまま保存することができ、特に障害調査時にその解析に役立たせることができる。
【００３４】
【発明の効果】
以上説明したように本発明によれば、コンピュータ装置の障害調査を行うための障害パスを保存する際に、コンピュータ装置の分岐命令実行を監視し、その分岐命令実行を検出した時に当該分岐命令実行時の分岐元アドレス及び分岐先アドレスをヒストリメモリに保存することによって、特殊な環境を構築することなく、ソフトウェアでの問題を一次解析することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例による障害パス保存装置の構成を示すブロック図である。
【図２】図１のテーブルの構成を示す図である。
【図３】図１の分岐アドレス保存回路及び割り込み分岐保存回路の動作を示すフローチャートである。
【図４】図１のフィルタ部の動作を示すフローチャートである。
【図５】図１のヒストリメモリの動作を示すフローチャートである。
【図６】本発明の一実施例による障害パス保存装置の障害調査の処理動作を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
２  フィルタ部
３  ヒストリメモリ
４  分岐アドレス保存回路
５  割り込み分岐保存回路
２１  フィルタ回路
２２  テーブル
２３  保存凍結回路
【図１】
0004009431.tif 000002
【図２】
0004009431.tif 000003
【図３】
0004009431.tif 000004
【図４】
0004009431.tif 000005
【図５】
0004009431.tif 000006
【図６】
0004009431.tif 000007