(57)【要約】【課題】商用運用中の機器であっても現状の動作に影響を及ぼすことなく、プログラムの状態を把握し、異常状態に至る過程も含めた解析を可能にする。【解決手段】履歴メモリ３０に蓄積された履歴情報を、コマンド制御装置５０からの読み出しコマンドを用いて、履歴制御部２０経由で履歴情報３００として履歴メモリ３０から読み出す。これにより、プログラム動作中の何度も異常が発生する状況に陥った場合でも、異常発生毎に履歴メモリ３０上の異なる領域に履歴データを格納しているので、複数回の異常情報を過去に遡り得ることができ、異常になるまでの経緯を知ることができ、プログラムの障害解析の時間を短縮することが可能となる。また、プログラムが動作する生の監視情報１０２を予め決められた条件で取得するため、たとえ商用運用中の機器であっても現状の動作に影響を及ぼすこと無く、プログラムの状態が把握できる。【選択図】図１
2009223714.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、該中央処理装置を動作させるプログラムコードを格納しているプログラムメモリと、該プログラムが動作するときに用いるデータを格納するデータメモリとを有する演算回路において、
前記中央処理装置は、予め決められたプログラムの動作異常状態の検出条件で、その中央処理装置上で動作するプログラムが正常か異常かを示す監視情報を生成する手段を備え、
前記中央処理装置から出力される前記監視情報に基づき、前記異常検出時までの前記プログラムの命令コード及びデータと異常検出時の前記中央処理装置内の情報とを履歴情報として格納する履歴情報格納手段を有することを特徴とする演算回路。
【請求項２】
中央処理装置と、該中央処理装置を動作させるプログラムコードを格納しているプログラムメモリと、該プログラムが動作するときに用いるデータを格納するデータメモリとを有する演算回路において、
前記中央処理装置は、予め決められたプログラムの動作異常状態の検出条件で、その中央処理装置上で動作するプログラムが正常か異常かを示す監視情報を生成する手段を備え、
前記プログラムの命令コード及びデータと前記中央処理装置内の情報とを履歴情報として記憶する履歴メモリと、
前記監視情報が入力されると共に履歴情報獲得に必要な条件が設定されており、前記監視情報が異常を示し、かつ、前記条件を満足する時は、その異常検出時までの前記プログラムの命令コード及びデータと異常検出時の前記中央処理装置内の情報とを、前記中央処理装置のエラーログ情報と共に１つの履歴情報として前記履歴メモリに記憶させる履歴制御手段と
を有することを特徴とする演算回路。
【請求項３】
前記履歴制御手段に対し前記履歴情報獲得に必要な条件を設定すると共に、前記履歴メモリの記憶履歴情報の読み出し、記憶履歴情報の消去を行うためのコマンド制御手段を更に有することを特徴とする請求項２記載の演算回路。
【請求項４】
前記コマンド制御手段は、予め決められたプログラムエラー条件、割り込み要因、特定の命令実行、アドレス、データのうちの少なくともいずれかを前記履歴情報獲得に必要な条件として前記履歴制御手段に設定することを特徴とする請求項３記載の演算回路。
【請求項５】
前記履歴制御手段は、前記監視情報に基づき異常検出毎に前記履歴メモリ上の異なる領域に前記履歴情報を格納することを特徴とする請求項２乃至４のうちいずれか一項記載の演算回路。
【請求項６】
前記中央処理装置、前記履歴メモリ、及び前記履歴制御手段は、前記中央処理装置とは異なる履歴保持機能付き中央処理装置内に組み込まれていることを特徴とする請求項２乃至４のうちいずれか一項記載の演算回路。
【請求項７】
前記履歴保持機能付き中央処理装置の外部に、前記履歴制御手段により前記監視情報が異常を示し、かつ、前記条件を満足する時は、その異常検出時までの前記プログラムの命令コード及びデータと異常検出時の前記中央処理装置内の情報とを、前記中央処理装置のエラーログ情報と共に１つの履歴情報として記憶する外部履歴メモリが更に設けられていることを特徴とする請求項２乃至４のうちいずれか一項記載の演算回路。
【請求項８】
前記履歴制御手段は、前記履歴情報獲得に必要な条件を不揮発性の記憶部に記憶し、前記履歴メモリは不揮発性メモリであることを特徴とする請求項２乃至４のうちいずれか一項記載の演算回路。
【請求項９】
予め決められたプログラムの動作異常状態の検出条件で、動作するプログラムが正常か異常かを示す監視情報を生成する手段を備えた中央処理装置と、
前記中央処理装置から出力される前記監視情報に基づき、前記異常検出時までの前記プログラムの命令コード及びデータと異常検出時の前記中央処理装置内の情報とを履歴情報として格納する履歴情報格納手段とを備えた演算回路の異常解析方法であって、
前記履歴情報格納手段より読み出した前記履歴情報をデバッグ情報に基づきデバッグして、物理データとオペレーションコードに分離する第１のステップと、
前記オペレーションコードを逆コンパイルして得たソースコードと前記物理データとの比較を行う第２のステップと、
前記第２のステップの比較結果に基づき、デバッガ上で前記プログラムを動作させて異常個所の解析結果を得る第３のステップと
を含むことを特徴とする演算回路の異常解析方法。
【請求項１０】
予め決められたプログラムの動作異常状態の検出条件で、動作するプログラムが正常か異常かを示す監視情報を生成する手段を備えた中央処理装置と、
前記プログラムの命令コード及びデータと前記中央処理装置内の情報とを履歴情報として記憶する履歴メモリと、
前記監視情報が入力されると共に履歴情報獲得に必要な条件が設定されており、前記監視情報が異常を示し、かつ、前記条件を満足する時は、その異常検出時までの前記プログラムの命令コード及びデータと異常検出時の前記中央処理装置内の情報とを、前記中央処理装置のエラーログ情報と共に１つの履歴情報として前記履歴メモリに記憶させる履歴制御手段とを備えた演算回路の異常解析方法であって、
前記履歴メモリより読み出した前記履歴情報をデバッグ情報に基づきデバッグして、物理データとオペレーションコードに分離する第１のステップと、
前記オペレーションコードを逆コンパイルして得たソースコードと、前記第１のステップでデバッグ対象の元の履歴情報のソースコードとの一致箇所の検出を行う第２のステップと、
前記第２のステップで得られたコード一致検出の履歴時間と前記物理データの履歴時間との関連付けを保ちながら、前記ソースコードの実行時間をキーにした前記物理データのアクセス順序の組み替えを行って比較結果データを生成する第３のステップと、
前記第３のステップで生成された前記比較結果データをデバッガ上でデータに組み込んで前記プログラムを動作させて異常個所の解析結果を得る第４のステップと
を含むことを特徴とする演算回路の異常解析方法。
【請求項１１】
前記演算回路は、前記履歴制御手段に対し前記履歴情報獲得に必要な条件を設定すると共に、前記履歴メモリの記憶履歴情報の読み出し、記憶履歴情報の消去を行うためのコマンド制御手段を更に有することを特徴とする請求項１０記載の演算回路の異常解析方法。
【請求項１２】
前記履歴メモリは、前記履歴制御手段により前記監視情報に基づき異常検出毎に異なる領域に前記履歴情報を格納していることを特徴とする請求項１０記載の演算回路の異常解析方法。
【請求項１３】
前記中央処理装置、前記履歴メモリ、及び前記履歴制御手段は、前記中央処理装置とは異なる履歴保持機能付き中央処理装置内に組み込まれていることを特徴とする請求項１０記載の演算回路の異常解析方法。
【請求項１４】
前記履歴保持機能付き中央処理装置の外部に、前記履歴制御手段により前記監視情報が異常を示し、かつ、前記条件を満足する時は、その異常検出時までの前記プログラムの命令コード及びデータと異常検出時の前記中央処理装置内の情報とを、前記中央処理装置のエラーログ情報と共に１つの履歴情報として記憶する外部履歴メモリが更に設けられていることを特徴とする請求項１０記載の演算回路の異常解析方法。
【請求項１５】
前記履歴制御手段は、前記履歴情報獲得に必要な条件を不揮発性の記憶部に記憶し、前記履歴メモリは不揮発性メモリであることを特徴とする請求項１０記載の演算回路の異常解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は演算回路及び演算回路の異常解析方法に係り、特に中央処理装置（ＣＰＵ）とメモリで構成される演算回路及び演算回路で発生した異常を解析する異常解析方法に関する。
【背景技術】
【０００２】
ＣＰＵとメモリで構成される演算回路において、ＣＰＵで実行中のプログラムの異常をウォッチ・ドッグ・タイマ（ＷＤＴ）を用いて検出することが一般に行われる（例えば、特許文献１参照）。この特許文献１には、ＣＰＵは、プログラムの正常動作時にＩ／Ｏ信号と共にプログラムの実行箇所についてのデータを発信し、プログラムの暴走等により発生したＣＰＵの動作異常時に、ＷＤＴが所定のカウント数を超えると、プログラムの実行箇所のデータをバックアップメモリに記憶し、異常についての情報を装置の外部に表示する構成の異常検出方法が開示されている。
【０００３】
また、上記の特許文献１には、ＣＰＵの動作異常時に、ＣＰＵの復旧方法についての情報を記録した後プログラムを再び実行し、上記の情報を参照して異常発生した部分を回避するように復旧方法を切り替える方法が開示されている。
【０００４】
また、プログラムの内部に予め埋め込まれたエラー処理プログラムで、プログラムの異常箇所（エラー）を検出する方法も知られている。エラー処理プログラムは、エラーの発生したプログラムの動作部分の命令コード、ポインタ値、ＣＰＵのレジスタ情報などの情報をＣＰＵから読み出し保持する仕組みを持つ。この異常検出方法では、検出したエラーの状態をプログラムが外部のメモリに書き込んだり、あるいは、プログラムがＣＰＵの内部状態をメモリに書き込む事でエラーのログ（履歴）を残す仕組みが一般に行われている。
【０００５】
【特許文献１】特開２００６−２３９７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載の異常検出方法では、ＷＤＴを備えていることが前提となっており、ＷＤＴによる異常動作のトリガとしており、異常動作のトリガとして様々な条件を設定することができない。また、ＷＤＴが起きた時点のデータ（すなわち、ＣＰＵが異常動作した箇所のデータ）を記録するのみであり、異常動作の解析ができない。
【０００７】
また、特許文献１記載の異常検出方法では、ＣＰＵの動作異常時に、ＣＰＵの復旧方法についての情報を記録した後プログラムを再び実行し、上記の情報を参照して異常発生した部分を回避するように復旧方法を切り替えるようにしているが、これは異常の対象がＷＤＴのときのみ可能であり、一般のＣＰＵとその動作プログラムがＷＤＴエラー以外で異常になった場合は、その異常を検出することができず、回避も不可能である。
【０００８】
一方、エラー処理プログラムで、プログラムの異常箇所（エラー）を検出する方法では、メモリに書き込んだエラーログ（履歴）は、ＣＰＵリセット、電源断からの復旧で消去される場合が多い。また、エラー処理プログラムは、予め取得する情報が決められているため、動作途中で取得情報を変更する事ができない欠点がある。
【０００９】
また、エラー処理プログラムがＣＰＵから読み出して保持する、エラーの発生したプログラムの動作部分の命令コード、ポインタ値、ＣＰＵのレジスタ情報などの情報は、プログラムがエラーした時点の１回のみ記録するため、プログラムが停止した時点の情報は判るが、異常になる経緯の判定が難しい。また、プログラムをデバッグさせながら走らせる事で経緯を解析することは可能であるが、商用運用中のシステムではデバッグができない。
【００１０】
更に、組み込みシステムなどの動作タイミングが重要な要件となるプログラムは、デバッグシステムの適用で動作タイミングが変更されてしまい、プログラムのエラーが再現できなくなる可能性もある。このように、エラー処理プログラムでプログラムのエラーを検出する方法では、再現性が低い、エラー要因の特定が困難になる、あるいは、エラー原因を特定するまでの解析に非常に多大な時間を必要とするなどの欠点がある。
【００１１】
本発明は以上の点に鑑みなされたもので、商用運用中の機器であっても現状の動作に影響を及ぼすことなく、プログラムの状態が把握できる演算回路及び演算回路の異常解析方法を提供することを目的とする。
【００１２】
また、本発明の他の目的は、異常状態に至る過程も含めた解析を可能にし、プログラムの障害解析時間を大幅に短縮できる演算回路及び演算回路の異常解析方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記の目的を達成するため、本発明の演算回路は、中央処理装置と、中央処理装置を動作させるプログラムコードを格納しているプログラムメモリと、該プログラムが動作するときに用いるデータを格納するデータメモリとを有する演算回路において、中央処理装置は、予め決められたプログラムの動作異常状態の検出条件で、その中央処理装置上で動作するプログラムが正常か異常かを示す監視情報を生成する手段を備え、中央処理装置から出力される監視情報に基づき、異常検出時までのプログラムの命令コード及びデータと異常検出時の中央処理装置内の情報とを履歴情報として格納する履歴情報格納手段を有することを特徴とする。
【００１４】
また、上記の目的を達成するため、本発明の演算回路の異常解析方法は、予め決められたプログラムの動作異常状態の検出条件で、動作するプログラムが正常か異常かを示す監視情報を生成する手段を備えた中央処理装置と、中央処理装置から出力される監視情報に基づき、異常検出時までのプログラムの命令コード及びデータと異常検出時の中央処理装置内の情報とを履歴情報として格納する履歴情報格納手段とを備えた演算回路の異常解析方法であって、履歴情報格納手段より読み出した履歴情報をデバッグ情報に基づきデバッグして、物理データとオペレーションコードに分離する第１のステップと、オペレーションコードを逆コンパイルして得たソースコードと物理データとの比較を行う第２のステップと、第２のステップの比較結果に基づき、デバッガ上でプログラムを動作させて異常個所の解析結果を得る第３のステップとを含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、商用運用中の機器であっても現状の動作に影響を及ぼすことなく、プログラムの状態が把握でき、異常状態に至る過程も含めた解析を可能にでき、更には、プログラムの障害解析時間を著しく短縮できる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の実施形態について図面と共に詳細に説明する。
【００１７】
（第１の実施形態）
図１は、本発明になる演算回路の第１の実施形態のブロック図を示す。本実施形態の演算回路は、中央処理装置（ＣＰＵ）１０と、ＣＰＵ１０に双方向のデータバス１００で接続されたプログラムメモリ１１及びデータメモリ１２と、履歴制御部２０と、ＣＰＵ１０に双方向のモニタ線１０３で接続された履歴メモリ３０と、コマンドライン１０１で履歴制御部２０に接続されたコマンド制御装置５０とからなる。
【００１８】
プログラムメモリ１１は、ＣＰＵ１０を動作させるプログラムコードを格納している。データメモリ１２は、プログラムが動作する時に用いるデータを格納する。コマンド制御装置５０は、履歴制御部２０に対しプログラムの動作異常時のトリガ設定、履歴情報の読み出し、履歴情報の消去を行う目的で配置され、トリガ条件の変更が必要な場合、履歴情報の読み出し、履歴情報の消去が必要な場合の時のみ、履歴制御部２０に情報を与える。コマンド制御装置５０から履歴制御部２０に与えられるトリガ情報は、予め決められたプログラムエラー条件、割り込み要因、特定の命令実行、アドレス、データ、発生回数指定、履歴情報のデータ量、リングバッファ設定、上書きバッファ設定、などの履歴情報獲得に必要な様々な条件設定を行うことができる。履歴の記録を完了するトリガの発生回数の指定をＣＰＵ１０の外部のコマンド制御装置５０から行うことで、トリガの回数分の履歴情報を履歴メモリ３０に記憶することができる。
【００１９】
履歴制御部２０は、不揮発性メモリを持ち、コマンド制御装置５０から与えられた情報を全て不揮発性メモリに保持する。従って、履歴制御部２０に保持された情報は電源が切断された場合や、ＣＰＵ１０にリセットがかかった場合などでも消去されることはない。履歴制御部２０は、監視情報１０２を用いてＣＰＵ１０と接続される。この監視情報１０２は、プログラム動作が正常か異常かの情報がメッセージとしてＣＰＵ１０から履歴制御部２０に送られてくる。また、履歴制御部２０は、履歴メモリ３０に制御情報２００を出力し、履歴メモリ３０から履歴情報３００が供給される。この制御情報２００は、履歴制御部２０が保持している履歴情報の制御方法を示すメッセージであり、履歴メモリ３０の使い方を指示する。
【００２０】
履歴メモリ３０は、ＣＰＵ１０で処理される全ての命令とデータとがモニタ線１０３を介して供給され、履歴制御部２０から指示された制御方法で蓄える。履歴メモリ３０は、電源が切断された場合、ＣＰＵ１０にリセットがかかり、ブートアップ、リブートした場合などでも蓄積した情報が消去されることはない、不揮発性メモリで構成される。また、履歴情報３００は、履歴メモリ３０の内容をコマンド制御装置５０からの制御により履歴制御部２０経由で読み出すために用いられる。
【００２１】
次に、本実施形態の動作について説明する。まず、ＣＰＵ１０を動作させるプログラムメモリ１１のプログラムが正常である場合、ＣＰＵ１０は、監視情報１０２により履歴制御部２０に対し正常な状態を通知する。この場合、履歴制御部２０から履歴メモリ３０に対してエラー情報の保持命令を出さず、履歴メモリ３０は継続的にモニタ線１０３を介して供給されるＣＰＵ１０の命令とデータを蓄積する。
【００２２】
次に、プログラムが異常状態になった場合について説明する。予め決められたプログラムの動作異常状態の検出条件で、ＣＰＵ１０がプログラムの動作の異常検出を行い、プログラムが致命的な欠陥状況になった場合、プログラムのエラー処理ルーチンを使った処理が実行され、異常発生の割り込みが利用され、ウォッチ・ドッグ・タイマのタイムアウトが発生するなどのエラー状態になる。その時点で、ＣＰＵ１０は、監視情報１０２により履歴制御部２０に対し異常状態を通知する。履歴制御部２０は、監視情報１０２によりプログラムの異常状態を検出すると、制御情報２００としてエラーメッセージを出力する。
【００２３】
履歴メモリ３０は、制御情報２００により与えられるエラーメッセージで、１レコードの履歴情報を保持すると共に、エラーメッセージを受信した時点で、ＣＰＵ１０のエラーログ情報も履歴情報に付加する。通常のＣＰＵ１０の動作では、エラー発生時にプログラムが最初の状態から再び動作を開始するか、そのままの状態で止まるかの設定がされている。再び動作開始の設定がされている場合は、履歴メモリ３０は、１度蓄えたレコードとは別のアドレス領域にＣＰＵ１０の処理するすべての命令とデータを格納し始め、新たな履歴情報を構築する。
【００２４】
このように、本実施形態では、プログラムが動作する事によって発生するエラーをプログラム自身が検出する場合や、ＣＰＵ１０自身がエラーや異常を検出する場合、ウォッチ・ドッグ・タイマのタイムアウト発生などの異常状態の時に、異常状態になった事を履歴制御部２０に伝える仕組みを構築することで、プログラムの動作の異常を検出した直前までのプログラムの動作情報と異常発生時のＣＰＵ１０内の各種情報を履歴メモリ３０に蓄積することが可能になる。なお、履歴制御部２０は、異常発生毎に履歴メモリ３０上の異なる領域に履歴情報を格納させる。
【００２５】
本実施形態では、異常動作は記録のトリガにしかならず、過去に遡ってプログラムの動作の異常を検出した直前までのプログラムの動作情報と異常発生時のＣＰＵ１０内の各種情報を履歴メモリ３０に蓄積するものであり、残す情報の内容範囲がＣＰＵの異常個所のデータのみの場合よりも広い。
【００２６】
また、本実施形態では、この履歴メモリ３０に蓄積された履歴情報を、コマンド制御装置５０からの読み出しコマンドを用いて、履歴制御部２０経由で履歴情報３００として履歴メモリ３０から読み出すことで、プログラム動作中の何度も異常が発生する状況に陥った場合でも、異常発生毎に履歴メモリ３０上の異なる領域に履歴データを格納しているので、複数回の異常情報を過去に遡り得ることができ、これにより異常になるまでの経緯を知ることができ、プログラムの障害解析の時間を短縮することが可能となる。
【００２７】
また、本実施形態では、プログラムが動作する生の監視情報１０２を予め決められた条件で取得するため、たとえ商用運用中の機器であっても現状の動作に影響を及ぼすこと無く、プログラムの状態が把握できる。
【００２８】
また、一度異常発生した場合に、次にそのプログラム部分を通過する場合に、異常発生した部分を回避するように復旧方法を切り替えるような、異常の対象がＷＤＴである特許文献１の構成では、異常の対象がＣＰＵとその動作プログラムがＷＤＴエラー以外で異常になった場合には検出ができないし、回避も不可能であるが、本実施形態では、復旧ではなく解析を目的にしているために、上記のＷＤＴエラー以外の異常の解析もできる。
【００２９】
更に、本実施形態では、ＣＰＵ１０の外部の仕組みで履歴保持用の回路を構成できるので、一般のＣＰＵ盤に適用可能である。
【００３０】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。図２は、本発明になる演算回路の第２の実施形態のブロック図を示す。同図中、図１と同一構成部分には同一符号を付し、その説明を省略する。本実施形態の演算回路は、図１に示した第１の実施の形態の演算回路の要部を内部に組み込んだ履歴保持機能付きＣＰＵ６０である。すなわち、図２において、履歴保持機能付きＣＰＵ６０は、ＣＰＵ１０と履歴制御部２０と履歴メモリ３０とを１つのＣＰＵ内に構築した構成である。
【００３１】
本実施形態の動作は図１で説明した動作と同様であり、第１の実施形態と同様の特長を有する。すなわち、本実施形態も第１の実施形態と同様に、ＣＰＵ１０上でプログラムが動作した命令コードとデータの履歴を記録する仕組みと、プログラムがエラーした時点の要因を記録する仕組みと、記録した２つの情報を保持する仕組みを持ち、ＣＰＵ１０に外部から与えられるコマンドにより、保持された情報を読み出す手段と消去する手段を備えると共に、履歴と要因を記録するかどうかをＣＰＵ１０に外部から与えられるコマンドで選択できる手段を持つように構成したものである。また、本実施形態も履歴メモリ３０に記録した履歴情報は、ＣＰＵ１０のリセットでは消去されず電源断からの復旧で初期化される機能が初期化されない機能かを選択できる機能を持ち、履歴の量、記録完了のトリガ条件、履歴保持の方法を変更でき、システムに合った最適な障害履歴を獲得できるように構成される。
【００３２】
更に、本実施形態では、履歴保持機能付きＣＰＵ６０内にＣＰＵ１０、履歴制御部２０及び履歴メモリ３０が組み込まれているので、履歴保持機能付きＣＰＵ６０を大規模集積回路（ＬＳＩ）としたとき、全体形状を第１の実施形態よりも小型化できる。
【００３３】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。図３は、本発明になる演算回路の第３の実施形態のブロック図を示す。同図中、図１と同一構成部分には同一符号を付し、その説明を省略する。
【００３４】
図３に示すように、本実施形態の演算回路は、ＣＰＵ１０、履歴制御部２０、及び履歴メモリ３０を内部に有する履歴保持機能付きＣＰＵ７０の外部に、プログラムメモリ１１、データメモリ１２、コマンド制御装置５０と、外部履歴メモリ３１とを設けた構成である。本実施形態の履歴保持機能付きＣＰＵ７０は、第２の実施形態の履歴保持機能付きＣＰＵ６０と略同様の構成であるが、履歴保持機能付きＣＰＵ７０は、履歴制御部２０からの制御情報２００を外部履歴メモリ３１に供給すると共に、外部履歴メモリ３１からも履歴情報３０１が供給される点が履歴保持機能付きＣＰＵ６０と異なる。
【００３５】
外部履歴メモリ３１は、履歴メモリ３０と同等の機能を持ち、ＣＰＵ１０で処理される全ての命令とデータとがモニタ線１０３を介して供給され、履歴制御部２０から指示された制御方法で蓄える。外部履歴メモリ３１は、電源が切断された場合、ＣＰＵ１０にリセットがかかり、ブートアップ、リブートした場合などでも消去されることはない、不揮発性メモリで構成される。これにより、本実施形態によれば、外部履歴メモリ３１を用いることで、履歴メモリの容量の拡張が簡単に行える特徴を持つ。
【００３６】
次に、本発明による履歴情報から異常を解析する方法について説明する。
【００３７】
図４は、本発明になる演算回路の異常解析方法の一実施の形態の説明図を示す。図１乃至図３のいずれかのコマンド制御装置５０からの読み出しコマンドに基づいて、履歴メモリ３０（又は外部履歴メモリ３１）から読み出された履歴情報３００は、コマンド制御装置５０に保持されているものとする。この保持された履歴情報は、コマンド制御装置５０より動作ログ情報として、外部に置かれた図４のログ解析ツール５００に読み込む。以下、ログ解析ツール５００の動作を説明する。
【００３８】
ログ解析ツール５００に入力された履歴情報３００は、まず、デバッガ５０１に取り込まれる。デバッガ５０１は、デバッグ情報５０２に基づき動作するように設定されている。このデバッグ情報５０２は、ＣＰＵ１０を動作させる元のソースコード、ＣＰＵ１０の構成情報、Ｉ／Ｏ情報、メモリの情報、メモリのスタック情報、外部デバイスの情報など実際に動作する環境に必要な情報全てが含まれる。
【００３９】
デバッガ５０１は、上記のデバッグ情報５０２に基づき、履歴情報３００を物理データ５１１とオペレーションコード５１２とに分離する。物理データ５１１は、物理データ処理部５０３でメモリエリア、レジスタデータ展開、実アドレス、相対アドレス、アクセスした時間などの物理情報変換が行われた後、変換後の全てのデータが抽出データ５１３としてデータ比較部５０６に与えられる。
【００４０】
一方、オペレーションコード５１２は、逆コンパイル５０４で、オペレーションコード５１２からＣＰＵ１０のニーモニック情報或いはデバッガ５０１で指定される高級言語レベルまで逆コンパイルされ、履歴情報３００のオペレーションコード部分からソースコードが生成される。この生成されたソースコードは、履歴情報３００が持つ実行された時間、順番が付与され、ソースコード５１４としてコード比較部５０５に与えられる。
【００４１】
次に、コード比較部５０５は、デバッガ５０１上にある元のソースコードと履歴情報３００から得られたソースコード５１４とを比較して一致箇所の検出を行い、検出したコード一致データ５１５をデータ比較部５０６に与える。データ比較部５０６は、抽出データ５１３とコード一致データ５１５とを比較し、ソースコードの一致検出の履歴時間と抽出データ５１３の履歴時間との関連付けを保ちながら、ソースコード５１４の実行時間をキーにしたデータのアクセス順序の組み替えを行って比較結果データ５１６を生成し、その比較結果データ５１６を異常箇所の特定部５０７に与える。
【００４２】
異常箇所の特定部５０７は、比較結果データ５１６をデバッガ５０１上のデータに組み込み、デバッガ５０１上でプログラムを動作させ、実動作で異常になった箇所まで走らせ、処理の流れの正常性、処理データの正常性、異常状態になる直前の情報などを解析し、得られた解析結果５１７を異常部分の表示部５０８に与える。
【００４３】
異常部分の表示部５０８は、異常個所の特定部５０７から入力された解析結果５１７を、ソースプログラムや処理のデータ、異常に陥った原因などの形に翻訳し、人に見易い形で、ＧＵＩ(graphical user interface)などを用いて表示する。
【００４４】
このように、本実施形態では、異常状態を履歴情報３００から解析し表示する機能を有するため、機械語や実メモリのデータではなく、人間が理解し易い形に表示することが可能である。
【００４５】
なお、本発明は以上の実施形態に限定されるものではなく、例えば、図４のログ解析ツール５００は、ソフトウェア構成でも実現可能であり、本発明によるコマンド制御装置５０に組み込む事や外部のパーソナルコンピュータ、サーバー機器などに組み込み利用が可能である。
【００４６】
また、図３の実施形態は履歴メモリを履歴保持機能付きＣＰＵ７０の内部と外部に設けているが、外部だけに設けるようにしてもよい。更に、履歴メモリ３０は、不揮発性メモリとして説明したが、揮発性メモリか不揮発性メモリの選択が可能な構成としてもよく、揮発性メモリを選択した場合は、演算回路の電源断からの復旧時に記憶された履歴情報が消去される。
【産業上の利用可能性】
【００４７】
本発明の演算回路は、組み込み分野のＣＰＵ盤及び回路、車載搭載機器のＣＰＵ回路、ＣＰＵ及びその周辺回路ＬＳＩに利用可能である。
【図面の簡単な説明】
【００４８】
【図１】本発明の演算回路の第１の実施形態のブロック図である。
【図２】本発明の演算回路の第２の実施形態のブロック図である。
【図３】本発明の演算回路の第３の実施形態のブロック図である。
【図４】本発明の演算回路の異常解析方法の一実施の形態の説明図である。
【符号の説明】
【００４９】
１０  中央処理装置（ＣＰＵ）
１１  プログラムメモリ
１２  データメモリ
２０  履歴制御部
３０  履歴メモリ
３１  外部履歴メモリ
５０  コマンド制御装置
６０、７０  履歴保持機能付きＣＰＵ
１００  データバス
１０１  コマンドライン
１０２  監視情報
１０３  モニタ線
２００  制御情報
３００、３０１  履歴情報
５００  ログ解析ツール
５０１  デバッガ
５０２  デバッグ情報
５０３  物理データ処理部
５０４  逆コンパイル
５０５  コード比較部
５０６  データ比較部
５０７  異常箇所の特定部
５０８  異常部分の表示部
【図１】
2009223714.tif 000003
【図２】
2009223714.tif 000004
【図３】
2009223714.tif 000005
【図４】
2009223714.tif 000006