(57)【要約】 【課題】      プログラム実行監視に伴うオーバーヘッドを減少させて、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法を提供する。【解決手段】  監視対象プログラム６１の実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、監視対象プログラム６１の任意の処理ステップにおける固有のアドレス情報を予め設定する設定情報保持部２２に設定し、監視部２１では、ＣＰＵ１０の命令ステップ毎に、ＣＰＵ１０が獲得したアドレス情報と現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、現時点の実行順ｉがＮ以上であるときに計時クリア要求を発行する。【選択図】  図１
2012155601.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ上で予め定められた順序でＮ個（Ｎは正整数）の監視対象プログラムを実行する情報処理装置であって、
計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、
前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報が予め設定された設定情報保持手段と、
命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を備え、前記複数の監視対象プログラムを実行するＣＰＵと、
前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、現時点の実行順ｉがＮ以上であるときに前記計時クリア要求を発行する監視手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記設定情報保持手段に、前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグが予め設定され、
前記監視手段は、前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、
前記監視手段は、前記ウオッチドッグタイマの現計時値を所定値または前記監視対象プログラムの実行順ｉに応じて定まる所定値と比較することを特徴とする請求項１または請求項２の何れか１項に記載の情報処理装置。
【請求項４】
前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする請求項１〜請求項３の何れか１項に記載の情報処理装置。
【請求項５】
命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つＣＰＵと、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、を備え、前記ＣＰＵ上で予め定められた順序でＮ個（Ｎは正整数）の監視対象プログラムを実行する情報処理装置のプログラム実行監視方法であって、
前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報を予め設定する情報設定ステップと、
前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、現時点の実行順ｉがＮ以上であるときに前記計時クリア要求を発行する監視ステップと、
を有することを特徴とする情報処理装置のプログラム実行監視方法。
【請求項６】
前記情報設定ステップは、前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグを予め設定し、
前記監視ステップは、前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする請求項５に記載の情報処理装置のプログラム実行監視方法。
【請求項７】
前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、
前記計時クリア要求発行時の前記ウオッチドッグタイマの計時値と、所定値または前記監視対象プログラムの実行順ｉに応じて定まる所定値と比較する比較ステップを有することを特徴とする請求項５または請求項６の何れか１項に記載の情報処理装置のプログラム実行監視方法。
【請求項８】
前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする請求項５〜請求項７の何れか１項に記載の情報処理装置のプログラム実行監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法に関する。
【背景技術】
【０００２】
組み込みシステム等の情報処理装置におけるプログラム実行監視手法として、例えば、シーケンスモニタ機能およびウオッチドッグタイマを用いて、プログラムの実行順序および所定時間内の終了を監視するものがある（例えば、特許文献１参照）。
【０００３】
この従来の情報処理装置におけるプログラム実行監視手法について、図８および図９を参照して説明する。図８に示すように、ＣＰＵ１１０、ＲＡＭ１５０、ＲＯＭ１６０およびウオッチドッグタイマ１４０を備えた構成の情報処理装置において、ＲＯＭ１６０内の監視対象プログラム１６１の実行監視は、以下のようにして行われる。ここで、シーケンスモニタ１６３および実行確認用データ１６２はＲＯＭ１６０内に保持されているものとする。なお、実行確認用データ１６２は監視対象プログラム１６１の辿るべき順序情報であり、ここでは処理Ａ、処理Ｂ、処理Ｃの順とする。
【０００４】
図９のフローチャートにおいて、まず、シーケンスモニタ１６３が起動すると共に、ＣＰＵ１１０側から計時開始要求が発行されて、ウオッチドッグタイマ１４０の計時がスタートする（ステップＳ３０１）。ステップＳ３０２の処理Ａを実行し終わると、実行記録バッファ１５２の１番目の領域に処理Ａの処理を実行した旨の情報（フラグ等）を記録する（ステップＳ３０３）。同様に、ステップＳ３０４の処理Ｂを実行し終わると、実行記録バッファ１５２の２番目の領域に処理Ｂの処理を実行した旨の情報を記録し（ステップＳ３０５）、ステップＳ３０６の処理Ｃを実行し終わると、実行記録バッファ１５２の３番目の領域に処理Ｃの処理を実行した旨の情報を記録する（ステップＳ３０７）。
【０００５】
そじて、ＣＰＵ１１０側からクリア要求が発行されて、ウオッチドッグタイマ１４０の計時内容がクリアされる（ステップＳ３０８）。なお、このクリア要求発行時点でのウオッチドッグタイマ１４０の計時内容がＣＰＵ１１０に渡され、所定の有効期間との比較を行い、処理Ａ，処理Ｂおよび処理Ｃの処理時間が有効期間に達していない場合には異常処理（ステップＳ３１０）に移行する。また、ステップＳ３０９では、実行記録バッファ１５２と実行確認用データ１６２とを比較して、不一致の場合には異常処理（ステップＳ３１０）に移行する。なお、所定の有効期間を経過した時点でウオッチドッグタイマ１４０はタイムアウトとなり、この場合、ウオッチドッグタイマ１４０からＣＰＵ１１０側へタイムアウト通知がなされて、情報処理装置はリセットされる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−１９８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このように、従来のシーケンスモニタ機能およびウオッチドッグタイマを用いたプログラム実行監視手法においては、ウオッチドッグタイマの計時開始要求およびクリア要求の発行、実行記録の保存、並びに実行記録の実行確認用データとの比較を処理プログラムに組み込んでソフトウェアで行うため、プログラム実行監視に伴うオーバーヘッドが大きいという事情があった。
【０００８】
また、所定有効期間での終了を判断するためのウオッチドッグタイマのタイムアウト時間として、予めプログラム実行監視に伴うオーバーヘッドを加算しておく必要があり、プログラム実行時間監視のリアルタイム性に欠けるという事情もあった。
【０００９】
本発明は、上記従来の事情に鑑みてなされたものであって、プログラム実行監視に伴うオーバーヘッドを減少させて、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明に係る情報処理装置は、ＣＰＵ上で予め定められた順序でＮ個（Ｎは正整数）の監視対象プログラムを実行する情報処理装置であって、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報が予め設定された設定情報保持手段と、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を備え、前記複数の監視対象プログラムを実行するＣＰＵと、前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、現時点の実行順ｉがＮ以上であるときに前記計時クリア要求を発行する監視手段と、を備えたことを特徴とする。
【００１１】
また、上記発明において、前記設定情報保持手段に、前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグが予め設定され、前記監視手段は、前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする。
【００１２】
また、上記発明において、前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、前記監視手段は、前記ウオッチドッグタイマの現計時値を所定値または前記監視対象プログラムの実行順ｉに応じて定まる所定値と比較することを特徴とする。
【００１３】
また、上記発明において、前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする。
【００１４】
上記課題を解決するために、本発明に係る情報処理装置のプログラム実行監視方法は、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つＣＰＵと、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、を備え、前記ＣＰＵ上で予め定められた順序でＮ個（Ｎは正整数）の監視対象プログラムを実行する情報処理装置のプログラム実行監視方法であって、前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報を予め設定する情報設定ステップと、前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、現時点の実行順ｉがＮ以上であるときに前記計時クリア要求を発行する監視ステップと、を備えたことを特徴とする。
【００１５】
また、上記発明において、前記情報設定ステップは、前記監視対象プログラムの実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグを予め設定し、前記監視ステップは、前記ＣＰＵの命令ステップ毎に、該ＣＰＵが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順ｉに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする。
【００１６】
また、上記発明において、前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、前記計時クリア要求発行時の前記ウオッチドッグタイマの計時値と、所定値または前記監視対象プログラムの実行順ｉに応じて定まる所定値と比較する比較ステップを備えたことを特徴とする。
【００１７】
さらに、上記発明において、前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする。
【発明の効果】
【００１８】
本発明に係る情報処理装置およびそのプログラム実行監視方法によれば、ログラム実行監視に伴うオーバーヘッドを減少させて、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例１に係る情報処理装置の主要構成の詳細を示す構成図である。
【図２】実施例１に係る情報処理装置の全体的概要を示す構成図である。
【図３】実施例１に係る情報処理装置のプログラム実行監視方法を説明するフローチャートである。
【図４】実施例１に係る情報処理装置のプログラム実行監視方法を説明するタイムチャートである。
【図５】本発明の実施例２に係る情報処理装置の主要構成の詳細を示す構成図である。
【図６】実施例２に係る情報処理装置のプログラム実行監視方法を説明するフローチャートである。
【図７】実施例２に係る情報処理装置のプログラム実行監視方法を説明するタイムチャートである。
【図８】従来の情報処理装置の全体的概要を示す構成図である。
【図９】従来の情報処理装置のプログラム実行監視方法を説明するフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明に係る好適な実施の形態について、実施例１、実施例２の順に図面を参照しながら詳細に説明する。
【実施例１】
【００２１】
図１および図２は本発明の実施例１に係る情報処理装置の構成図である。ここで、図１は情報処理装置の内で本発明に関わる主要構成の詳細を示す構成図であり、図２は情報処理装置の全体的概要を示す構成図である。
【００２２】
図２において、本実施例の情報処理装置は、ＣＰＵ１０、監視制御部２０、ＲＡＭ５０、ＲＯＭ６０およびウオッチドッグタイマ４０を備え、ＣＰＵ１０およびＲＡＭ５０、ＲＯＭ６０は内部システムバスを介して接続されている。ここで、本発明のプログラム実行監視で対象となる監視対象プログラム６１はＲＯＭ６０に保持されており、各プログラムで使用するデータ５１はＲＡＭ５０に保持されている。
【００２３】
また、ＣＰＵ１０はトレース機能１１を備えている。このトレース機能１１は、命令ステップ毎に該命令に対応したアドレス情報を獲得する機能であり、市販のマイクロプロセッサに一般的に備えている機能である。本実施例では、トレース機能１１は、ＣＰＵ１０のバスサイクル毎にアドレス情報を獲得し、その獲得したアドレス情報は、図示しない特定ポートを介して逐次監視制御部２０に渡されるものとする。
【００２４】
また、監視制御部２０は、図１に示す如く、監視部２１および設定情報保持部２２を備えた構成である。ＣＰＵ１０上で予め定められた順序でＮ個（Ｎは正整数）の監視対象プログラム６１を実行する場合、設定情報保持部２２には、監視対象プログラム６１の実行順index（index＝１〜Ｎ）に対応付けて、監視対象プログラム６１の任意の処理ステップにおける固有のアドレス情報が予め設定される。
【００２５】
ここで、固有のアドレス情報としては、ＣＰＵ１０内のプログラムカウンタＰＣの値、或いは個々の監視対象プログラムに固有のメモリアドレス等があるが、以下の説明では、固有のアドレス情報をプログラムカウンタＰＣの値として扱うこととする。すなわち、図１に示す如く、実行順index＝１，２，３，…に対応して、処理Ｐ１のＰＣindex値，処理Ｐ２のＰＣindex値，処理Ｐ３のＰＣindex値，…が設定される。また、設定情報保持部２２のこれら情報は、監視対象プログラム６１の実行以前に、図示しないインタフェースを介して予め設定されているものとする。なお、実行順indexは、監視部２１が設定情報保持部２２を参照するときのアドレスとして機能し、監視部２１内では実行順カウンタindexとして具現される。
【００２６】
また、監視部２１は、ＣＰＵ１０の命令ステップ毎に、ＣＰＵ１０が獲得したアドレス情報（ＰＣ値）と設定情報保持部２２の現時点の実行順カウンタindexに対応した固有のアドレス情報（ＰＣindex値）とを比較して両者が一致し、且つ現時点の実行順カウンタindexがＮ未満であるときに、実行順カウンタindexをインクリメントし、また現時点の実行順カウンタindexがＮ以上であるときには、ウオッチドッグタイマ４０に対して計時クリア要求を発行する。
【００２７】
また、ウオッチドッグタイマ４０は、監視制御部２０（監視部２１）からの計時開始要求に応じて計時を開始し、また、計時クリア要求に応じて計時値をクリアすると共に現計時値を監視制御部２０（監視部２１）に渡し、さらに、所定時間満了時には計時値をクリアすると共にタイムアウトを監視制御部２０に通知する。
【００２８】
なお、監視制御部２０（監視部２１）では、計時クリア要求に応じてウオッチドッグタイマ４０から渡された現計時値を所定値（監視対象プログラム６１の全処理時間に応じて設定される有効期間）と比較して、該所定値に達していない場合には従来と同様に異常処理に移行する。また、ウオッチドッグタイマ４０からタイムアウトの通知を受けたときは、当該情報処理装置はリセットされる。
【００２９】
次に、以上のような構成要素を備えた情報処理装置において、監視制御部２０によるプログラム実行監視方法について、図３および図４を参照して説明する。ここで、図３は実施例１に係る情報処理装置のプログラム実行監視方法を説明するフローチャート、図４はプログラム実行監視方法を説明するタイムチャートである。
【００３０】
まず、ＣＰＵ１０上で監視対象プログラム６１の実行が開始されると、監視部２１は、監視対象プログラム６１の実行順を表す実行順カウンタindexの値を初期化（ここでは「１」に設定）する（ステップＳ１０１）と共に、ウオッチドッグタイマ４０に対して計時開始要求を発行する。
【００３１】
ここで、図３のフローチャートにおいて、以下に続くステップＳ１０２〜Ｓ１０７の処理は、ＣＰＵ１０の命令ステップ毎（バスサイクル毎）に行われる処理である。以下の説明では、代表的に監視対象プログラム６１の実行順でｉ番目に実行される処理Ｐｉの任意のステップがＣＰＵ１０上で実行されているものとして説明する。
【００３２】
ステップＳ１０２では、ＣＰＵ１０のトレース機能１１により、その命令ステップ（バスサイクル）において実行中のプログラムカウンタＰＣの値が監視部２１に渡される。これを受けて、監視部２１は設定情報保持部２２を参照し、実行順カウンタindex＝ｉに対応した処理ＰｉのＰＣindex値を得る（ステップＳ１０３）。
【００３３】
そして、プログラムカウンタＰＣ値と処理ＰｉのＰＣindex値とが一致するか否かを判断し（ステップＳ１０４）、一致しない場合には何もしないでステップＳ１０２に戻り、次の命令ステップ（バスサイクル）まで待機する。つまり、プログラムカウンタＰＣ値と処理ＰｉのＰＣindex値とが一致するまでは、ステップＳ１０２〜Ｓ１０４による比較処理が命令ステップ毎に繰り返し行われることになる。
【００３４】
また、プログラムカウンタＰＣ値と処理ＰｉのＰＣindex値とが一致した場合には、ステップＳ１０５に進んで、実行順カウンタindexの値が監視対象プログラム６１の処理個数Ｎ以上か否かを判断し（ステップＳ１０５）、カウンタindexの値が処理個数Ｎ未満であれば、実行順カウンタindexの値をインクリメント（ステップＳ１０７）した後、ステップＳ１０２に戻り、次の命令ステップ（バスサイクル）まで待機する。つまり、次の命令ステップ以降は、プログラムカウンタＰＣ値はｉ＋１番目の処理Ｐｉ＋１のＰＣindex値と比較されることになる。
【００３５】
また、ステップＳ１０５で実行順カウンタindexの値が処理個数Ｎ以上の場合は、ウオッチドッグタイマ４０に対して計時クリア要求を発行し（ステップＳ１０６）、ステップＳ１０１に戻って、実行順カウンタindexの値を初期化する。つまり、この分岐経路では、プログラムカウンタＰＣ値がＮ番目の処理ＰＮのＰＣindex値に一致しており、Ｎ個の監視対象プログラム６１が予め定められた順序で有効期間内に実行されたことを意味し、実行順カウンタindexを初期化して、再び以上の処理を繰り返すことになる。なお、プログラムカウンタＰＣ値がＮ番目の処理ＰＮのＰＣindex値に一致した時点でウオッチドッグタイマ４０からタイムアウト通知がなければ、監視部２１は、所定順序で監視対象プログラム６１が実行されたことを確認できる。
【００３６】
次に、図４のタイムチャートに沿って情報処理装置のプログラム実行監視方法を説明する。図４（ａ）は、ＣＰＵ１０上で処理されるプログラムの時間推移を例示している。Ｎ個の監視対象プログラム６１（処理Ｐ１〜処理ＰＮ）は、例えばセンサ処理、計測処理または表示処理等であり、ＣＰＵ１０上で処理されるプログラムの中でピックアップされたものである。
【００３７】
また、図４（ａ）中のＴｃ１〜ＴｃＮは、ＣＰＵ１０内のプログラムカウンタＰＣ値が設定情報保持部２２に設定される処理Ｐ１〜処理ＰＮのＰＣindex値となるタイミング（命令ステップ）をそれぞれ示しており、図３のステップＳ１０４の一致判断では、これらのタイミングＴｃ１〜ＴｃＮで両者が一致したと判断されることとなる。なお、タイミングＴｃＮでは、さらに図３のステップＳ１０５で実行順カウンタindexの値が処理個数Ｎに一致して、ウオッチドッグタイマ４０に対して計時クリア要求が発行される。
【００３８】
また、図４（ｂ）はＣＰＵ１０上で監視対象プログラム６１が正常に実行されたときのウオッチドッグタイマ４０の計時値の時間推移を例示している。ウオッチドッグタイマ４０では、監視部２１から計時開始要求が発行されると計時を開始し、タイミングＴｃＮで計時クリア要求が発行された時点では、ウオッチドッグタイマ４０の計時値はＷＤＴ（ＴｃＮ）となっている。この計時値ＷＤＴ（ＴｃＮ）は、計時クリア要求に応じて監視部２１に渡され、監視部２１では、計時値ＷＤＴ（ＴｃＮ）を所定値（設定された有効期間、即ち、監視対象プログラム６１の全処理時間に応じて定まる所定値であって、時間ＴｃＮに応じて設定される値）と比較して、該所定値に達していない場合には、監視対象プログラム６１の一部処理が正常に処理されなかったとして、異常処理に移行する。
【００３９】
また、図４（ｃ）はＣＰＵ１０上で監視対象プログラム６１が正常に実行されずにタイムアウトとなったときのウオッチドッグタイマ４０の計時値の時間推移を例示している。つまり、監視対象プログラム６１の一部処理が無限ルーチンに陥るなどして正常に実行されないまま、ウオッチドッグタイマ４０が所定時間Ｔｏｕｔを満了した時には、計時値がクリアされると共にタイムアウトが監視部２１に通知され、当該情報処理装置のリセット処理に移行することとなる。
【００４０】
以上説明したように、本実施例の情報処理装置およびそのプログラム実行監視方法では、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つＣＰＵ１０と、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマ４０と、を備え、ＣＰＵ１０上で予め定められた順序でＮ個の監視対象プログラム６１を実行する情報処理装置およびそのプログラム実行監視方法であって、監視対象プログラム６１の実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、監視対象プログラム６１の任意の処理ステップにおける固有のアドレス情報を予め設定情報保持部２２に設定し、監視部２１では、ＣＰＵ１０の命令ステップ毎に、ＣＰＵ１０が獲得したアドレス情報（ＰＣ値）と現時点の実行順ｉに対応した固有のアドレス情報（ＰＣindex値）とを比較して両者が一致し、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、現時点の実行順ｉがＮ以上であるときに計時クリア要求を発行する。
【００４１】
このように、ＣＰＵ１０の現アドレス情報（ＰＣ値）と監視対象プログラム６１の現時点の実行順ｉに対応した固有のアドレス情報（ＰＣindex値）との一致を順次検出していくので、両者が一致し且つ現時点の実行順ｉがＮ以上であるときにウオッチドッグタイマ４０からタイムアウト通知がなければ、監視部２１は、有効期間内に所定順序で監視対象プログラム６１が実行されたことを確認できる。
【００４２】
また、監視部２１は、計時クリア要求の発行時に、ウオッチドッグタイマ４０の現計時値を受け取って、所定値（監視対象プログラム６１の全処理時間に応じて設定される有効期間）と比較することにより、有効期間で監視対象プログラム６１が実行されたことを確認できる。なお、これらの条件に合致しなければ、監視対象プログラム６１の一部処理が正常に処理されなかったとして、異常処理に移行することとなる。
【００４３】
また、このような監視部２１における処理は、ＣＰＵ１０上での監視対象プログラム６１の実行と並行して行われるので、プログラム実行監視に伴うオーバーヘッドを減少させることができる。また、所定有効期間での終了を判断するためのウオッチドッグタイマ４０のタイムアウト時間として、プログラム実行監視に伴うオーバーヘッドのために加算する値を少なくできるため、リアルタイム性に優れたプログラム実行時間監視を行い得る情報処理装置およびそのプログラム実行監視方法を実現することができる。
【００４４】
また、従来はプログラム実行監視に伴って、ＲＡＭに実行記録バッファを、ＲＯＭに実行監視用データおよびシーケンスモニタをそれぞれ保持しておく必要があったが、本実施例ではその必要が無く、記憶手段（ＲＡＭおよびＲＯＭ）の容量を削減することができる。
【実施例２】
【００４５】
次に、図５は本発明の実施例２に係る情報処理装置の構成図である。ここで、図５は情報処理装置の内で本発明に関わる主要構成の詳細を示しており、情報処理装置の全体的概要は実施例１（図２）と同様である。すなわち、本実施例の情報処理装置は、ＣＰＵ１０、監視制御部３０、ＲＡＭ５０、ＲＯＭ６０およびウオッチドッグタイマ４０を備えている。
【００４６】
図５において、ＣＰＵ１０は実施例１と同様にトレース機能１１（命令ステップ毎に該命令に対応したアドレス情報を獲得する機能）を備え、ＣＰＵ１０のバスサイクル毎に獲得されたアドレス情報は、図示しない特定ポートを介して逐次監視制御部３０に渡される。
【００４７】
また、監視制御部３０は、監視部３１および設定情報保持部３２を備えた構成である。ＣＰＵ１０上で予め定められた順序でＮ個（Ｎは正整数）の監視対象プログラム６１を実行する場合、設定情報保持部３２には、監視対象プログラム６１の実行順index（index＝１〜Ｎ）に対応付けて、監視対象プログラム６１の任意の処理ステップにおける固有のアドレス情報と、計時クリア要求の有無を表すフラグ（計時クリア要求の発行を有効とするか否かのフラグ）とが、予め設定されている。
【００４８】
ここで、固有のアドレス情報としては、ＣＰＵ１０内のプログラムカウンタＰＣの値、或いは個々の監視対象プログラムに固有のメモリアドレス等があり、以下の説明では、実施例１と同様に、固有のアドレス情報をプログラムカウンタＰＣの値として扱う。すなわち、図５に示す如く、実行順index＝１，２，３，…に対応して、処理Ｐ１のＰＣindex値，処理Ｐ２のＰＣindex値，処理Ｐ３のＰＣindex値，…、並びに、処理Ｐ１のフラグ（ＯＦＦ），処理Ｐ２のフラグ（ＯＮ），処理Ｐ３のフラグ（ＯＦＦ），…がそれぞれ設定される。また、設定情報保持部３２のこれら情報は、監視対象プログラム６１の実行以前に、図示しないインタフェースを介して予め設定されているものとする。なお、実行順indexは、監視部３１が設定情報保持部３２を参照するときのアドレスとして機能し、監視部３１内では実行順カウンタindexとして具現される。
【００４９】
また、監視部３１は、ＣＰＵ１０の命令ステップ毎に、ＣＰＵ１０が獲得したアドレス情報（ＰＣ値）と設定情報保持部３２の現時点の実行順カウンタindexに対応した固有のアドレス情報（ＰＣindex値）とを比較して両者が一致すると共にフラグが無効（ＯＦＦ）で、且つ現時点の実行順カウンタindexがＮ未満であるときに、実行順カウンタindexをインクリメントし、また両者が一致すると共にフラグが有効（ＯＮ）で、且つ現時点の実行順カウンタindexがＮ未満であるときには、ウオッチドッグタイマ４０に対して計時クリア要求を発行すると共に実行順カウンタindexをインクリメントする。
【００５０】
また、ウオッチドッグタイマ４０は、監視制御部３０（監視部３１）からの計時開始要求に応じて計時を開始し、また、計時クリア要求に応じて計時値をクリアすると共に現計時値を監視制御部３０（監視部３１）に渡し、さらに、所定時間満了時には計時値をクリアすると共にタイムアウトを監視制御部３０に通知する。
【００５１】
なお、監視制御部３０（監視部３１）では、計時クリア要求に応じてウオッチドッグタイマ４０から渡された現計時値を実行順カウンタindexに応じて定まる所定値（処理時間に応じて設定される有効期間）と比較して、該所定値に達していない場合には異常処理に移行する。また、ウオッチドッグタイマ４０からタイムアウトの通知を受けたときは、当該情報処理装置はリセットされる。
【００５２】
次に、以上のような構成要素を備えた情報処理装置において、監視制御部３０によるプログラム実行監視方法について、図６および図７を参照して説明する。ここで、図６は実施例２に係る情報処理装置のプログラム実行監視方法を説明するフローチャート、図７はプログラム実行監視方法を説明するタイムチャートである。
【００５３】
まず、ＣＰＵ１０上で監視対象プログラム６１の実行が開始されると、監視部３１は、監視対象プログラム６１の実行順を表す実行順カウンタindexの値を初期化（ここでは「１」に設定）する（ステップＳ２０１）と共に、ウオッチドッグタイマ４０に対して計時開始要求を発行する。
【００５４】
ここで、図６のフローチャートにおいて、以下に続くステップＳ２０２〜Ｓ２０９の処理は、ＣＰＵ１０の命令ステップ毎（バスサイクル毎）に行われる処理である。以下の説明では、代表的に監視対象プログラム６１の実行順でｉ番目に実行される処理Ｐｉの任意のステップがＣＰＵ１０上で実行されているものとして説明する。
【００５５】
ステップＳ２０２では、ＣＰＵ１０のトレース機能１１により、その命令ステップ（バスサイクル）において実行中のプログラムカウンタＰＣの値が監視部３１に渡される。これを受けて、監視部３１は設定情報保持部３２を参照し、実行順カウンタindex＝ｉに対応した処理ＰｉのＰＣindex値並びにクリア要求の有無を表すフラグを得る（ステップＳ２０３）。
【００５６】
そして、プログラムカウンタＰＣ値と処理ＰｉのＰＣindex値とが一致するか否かを判断し（ステップＳ２０４）、一致しない場合には何もしないでステップＳ２０２に戻り、次の命令ステップ（バスサイクル）まで待機する。つまり、プログラムカウンタＰＣ値と処理ＰｉのＰＣindex値とが一致するまでは、ステップＳ２０２〜Ｓ２０４による比較処理が命令ステップ毎に繰り返し行われることになる。
【００５７】
また、プログラムカウンタＰＣ値と処理ＰｉのＰＣindex値とが一致した場合には、ステップＳ２０５に進んで、クリア要求の有無を表すフラグがＯＮ（有効）であるか否かを判断する。フラグがＯＦＦ（無効）であればステップＳ２０７に進み、またフラグがＯＮ（有効）であればウオッチドッグタイマ４０に対して計時クリア要求を発行（ステップＳ２０６）した後にステップＳ２０７に進む。なお、計時クリア要求を発行する時点でウオッチドッグタイマ４０からタイムアウト通知がなければ、監視部２１は、監視対象プログラム６１の処理Ｐｉまでは所定順序で実行されたことを確認できる。
【００５８】
ステップＳ２０７では、実行順カウンタindexの値が監視対象プログラム６１の処理個数Ｎ以上か否かを判断し、カウンタindexの値が処理個数Ｎ未満であれば、実行順カウンタindexの値をインクリメント（ステップＳ２０８）した後、ステップＳ２０２に戻り、次の命令ステップ（バスサイクル）まで待機する。つまり、次の命令ステップ以降は、プログラムカウンタＰＣ値はｉ＋１番目の処理Ｐｉ＋１のＰＣindex値と比較されることになる。
【００５９】
また、ステップＳ２０７で実行順カウンタindexの値が処理個数Ｎ以上の場合は、ウオッチドッグタイマ４０に対して計時クリア要求を発行（ステップＳ２０９）した後、ステップＳ２０１に戻って、実行順カウンタindexの値を初期化する。つまり、この分岐経路では、プログラムカウンタＰＣ値がＮ番目の処理ＰＮのＰＣindex値に一致しており、Ｎ個の監視対象プログラム６１が予め定められた順序で有効期間内に実行されたことを意味し、実行順カウンタindexを初期化して、再び以上の処理を繰り返すことになる。なお、プログラムカウンタＰＣ値がＮ番目の処理ＰＮのＰＣindex値に一致した時点でウオッチドッグタイマ４０からタイムアウト通知がなければ、監視部２１は、監視対象プログラム６１の処理ＰＮまで所定順序で実行されたことを確認できる。
【００６０】
次に、図７のタイムチャートに沿って情報処理装置のプログラム実行監視方法を説明する。図７（ａ）は、ＣＰＵ１０上で処理されるプログラムの時間推移を例示している。Ｎ個の監視対象プログラム６１（処理Ｐ１〜処理ＰＮ）は、例えばセンサ処理、計測処理または表示処理等であり、ＣＰＵ１０上で処理されるプログラムの中でピックアップされたものである。なお、括弧内にはクリア要求の有無を表すフラグの内容を付記している。
【００６１】
また、図７（ａ）中のＴｃ１〜ＴｃＮは、ＣＰＵ１０内のプログラムカウンタＰＣ値が設定情報保持部３２に設定される処理Ｐ１〜処理ＰＮのＰＣindex値となるタイミング（命令ステップ）をそれぞれ示しており、図６のステップＳ２０４の一致判断では、これらのタイミングＴｃ１〜ＴｃＮで両者が一致したと判断されることとなる。なお、タイミングＴｃ２およびＴｃＮでは、さらに図６のステップＳ２０５でクリア要求の有無を表すフラグがＯＮと判断されて、ウオッチドッグタイマ４０に対して計時クリア要求が発行される。
【００６２】
また、図７（ｂ）はＣＰＵ１０上で監視対象プログラム６１が正常に実行されたときのウオッチドッグタイマ４０の計時値の時間推移を例示している。ウオッチドッグタイマ４０では、監視部３１から計時開始要求が発行されると計時を開始し、タイミングＴｃ２，…Ｔｃｋ，ＴｃＮ（Ｔｃｋ：ＴｃＮの１つ前の計時クリア要求発行タイミング；図示せず）で計時クリア要求が発行された時点では、ウオッチドッグタイマ４０の計時値はそれぞれＷＤＴ（Ｔｃ２），…，ＷＤＴ（Ｔｃｋ），ＷＤＴ（ＴｃＮ）となる。これら計時値ＷＤＴ（Ｔｃ２），…，ＷＤＴ（Ｔｃｋ），ＷＤＴ（ＴｃＮ）は、計時クリア要求に応じて監視部３１に渡され、監視部３１では、計時値ＷＤＴ（Ｔｃ２），…，ＷＤＴ（ＴｃＮ）をそれぞれ所定値（設定された有効期間、即ち、実行順カウンタindexに応じて定まる所定値であって、時間Ｔｃ２，…，ＴｃＮ−Ｔｃｋに応じて設定される値）と比較して、該所定値に達していない場合には、監視対象プログラム６１の一部処理が正常に処理されなかったとして、異常処理に移行する。
【００６３】
また、図７（ｃ）はＣＰＵ１０上で監視対象プログラム６１が正常に実行されずにタイムアウトとなったときのウオッチドッグタイマ４０の計時値の時間推移を例示している。つまり、監視対象プログラム６１の一部処理が無限ルーチンに陥るなどして正常に実行されないまま、ウオッチドッグタイマ４０が所定時間Ｔｏｕｔを満了した時には、計時値がクリアされると共にタイムアウトが監視部３１に通知され、当該情報処理装置のリセット処理に移行することとなる。
【００６４】
以上説明したように、本実施例の情報処理装置およびそのプログラム実行監視方法では、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つＣＰＵ１０と、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマ４０と、を備え、ＣＰＵ１０上で予め定められた順序でＮ個の監視対象プログラム６１を実行する情報処理装置およびそのプログラム実行監視方法であって、監視対象プログラム６１の実行順ｉ（ｉ＝１〜Ｎ）に対応付けて、監視対象プログラム６１の任意の処理ステップにおける固有のアドレス情報と計時クリア要求の有無を表すフラグを予め設定情報保持部３２に設定し、監視部３１では、ＣＰＵ１０の命令ステップ毎に、ＣＰＵ１０が獲得したアドレス情報（ＰＣ値）と現時点の実行順ｉに対応した固有のアドレス情報（ＰＣindex値）とを比較して両者が一致すると共にフラグが無効で、且つ現時点の実行順ｉがＮ未満であるときに、実行順ｉをインクリメントし、また両者が一致すると共にフラグが有効で、且つ現時点の実行順ｉがＮ未満であるときには、計時クリア要求を発行すると共に実行順ｉをインクリメントする。
【００６５】
このように、ＣＰＵ１０の現アドレス情報（ＰＣ値）と監視対象プログラム６１の現時点の実行順ｉに対応した固有のアドレス情報（ＰＣindex値）との一致を順次検出していくので、計時クリア要求の発行時点でウオッチドッグタイマ４０からタイムアウト通知がなければ、監視部３１は、それまでの処理について有効期間内に所定順序で監視対象プログラム６１が実行されたことを確認できる。
【００６６】
また、監視部３１は、計時クリア要求の発行時に、ウオッチドッグタイマ４０の現計時値を受け取って、所定値（監視対象プログラム６１の実行順ｉに応じて定まる有効期間）と比較することにより、それまでの処理について有効期間で監視対象プログラム６１が実行されたことを確認できる。なお、これらの条件に合致しなければ、監視対象プログラム６１の一部処理が正常に処理されなかったとして、異常処理に移行することとなる。
【００６７】
また、このような監視部３１における処理は、ＣＰＵ１０上での監視対象プログラム６１の実行と並行して行われるので、プログラム実行監視に伴うオーバーヘッドを減少させることができる。また、所定有効期間での終了を判断するためのウオッチドッグタイマ４０のタイムアウト時間として、プログラム実行監視に伴うオーバーヘッドのために加算する値を少なくできるため、リアルタイム性に優れたプログラム実行時間監視を行い得る情報処理装置およびそのプログラム実行監視方法を実現することができる。
【００６８】
以上、本発明の好ましい実施例について詳述したが、本発明に係る情報処理装置およびそのプログラム実行監視方法は、上述した実施例１および実施例２に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【００６９】
なお、本発明では、ＣＰＵ１０にトレース機能を持つことが要件となるが、命令ステップ（バスサイクル）毎に行われるプログラム実行監視のための処理は監視制御部２０または３０で完結されるので、監視制御部２０または３０をモジュールとして情報処理装置に埋め込むようにすれば、本発明によるプログラム実行監視機能をより簡単に追加することができる。
【００７０】
また、図３、図６のフローチャートの機能については、ＣＰＵ１０のバスサイクル内で処理する必要があり、設定情報保持部２２または３２はレジスタ等の高速アクセス可能なデバイスで実現する必要がある。また、監視部２１または３１におけるフローチャートの機能（それぞれ図３または図６参照）についても、ワイヤード・ロジック（Wired Logic；結線論理）で実現するか、或いはＣＰＵ１０より高速なクロックで動作するプロセッサ上のプログラム処理で実現することとなる。なお、監視部２１または３１をワイヤード・ロジックで実現する場合、装置コスト低減の観点から、異常処理やタイムアウト時のリセット処理等については、監視部２１または３１側ではＣＰＵ１０にその旨を通知するだけに止めて、処理自体はＣＰＵ１０上でプログラム処理するのが望ましい。
【符号の説明】
【００７１】
１０    ＣＰＵ
２０，３０    監視制御部
２１，３１    監視部
２２，３２    設定情報保持部
５０    ＲＡＭ
６０    ＲＯＭ
４０    ウオッチドッグタイマ
【図１】
2012155601.tif 000003
【図２】
2012155601.tif 000004
【図３】
2012155601.tif 000005
【図４】
2012155601.tif 000006
【図５】
2012155601.tif 000007
【図６】
2012155601.tif 000008
【図７】
2012155601.tif 000009
【図８】
2012155601.tif 000010
【図９】
2012155601.tif 000011