JP2012155601A - 情報処理装置およびそのプログラム実行監視方法 - Google Patents
情報処理装置およびそのプログラム実行監視方法 Download PDFInfo
- Publication number
- JP2012155601A JP2012155601A JP2011015210A JP2011015210A JP2012155601A JP 2012155601 A JP2012155601 A JP 2012155601A JP 2011015210 A JP2011015210 A JP 2011015210A JP 2011015210 A JP2011015210 A JP 2011015210A JP 2012155601 A JP2012155601 A JP 2012155601A
- Authority
- JP
- Japan
- Prior art keywords
- monitoring
- execution order
- cpu
- program
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】 プログラム実行監視に伴うオーバーヘッドを減少させて、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法を提供する。
【解決手段】 監視対象プログラム61の実行順i(i=1〜N)に対応付けて、監視対象プログラム61の任意の処理ステップにおける固有のアドレス情報を予め設定する設定情報保持部22に設定し、監視部21では、CPU10の命令ステップ毎に、CPU10が獲得したアドレス情報と現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、現時点の実行順iがN以上であるときに計時クリア要求を発行する。
【選択図】 図1
Description
本発明は、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法に関する。
組み込みシステム等の情報処理装置におけるプログラム実行監視手法として、例えば、シーケンスモニタ機能およびウオッチドッグタイマを用いて、プログラムの実行順序および所定時間内の終了を監視するものがある(例えば、特許文献1参照)。
この従来の情報処理装置におけるプログラム実行監視手法について、図8および図9を参照して説明する。図8に示すように、CPU110、RAM150、ROM160およびウオッチドッグタイマ140を備えた構成の情報処理装置において、ROM160内の監視対象プログラム161の実行監視は、以下のようにして行われる。ここで、シーケンスモニタ163および実行確認用データ162はROM160内に保持されているものとする。なお、実行確認用データ162は監視対象プログラム161の辿るべき順序情報であり、ここでは処理A、処理B、処理Cの順とする。
図9のフローチャートにおいて、まず、シーケンスモニタ163が起動すると共に、CPU110側から計時開始要求が発行されて、ウオッチドッグタイマ140の計時がスタートする(ステップS301)。ステップS302の処理Aを実行し終わると、実行記録バッファ152の1番目の領域に処理Aの処理を実行した旨の情報(フラグ等)を記録する(ステップS303)。同様に、ステップS304の処理Bを実行し終わると、実行記録バッファ152の2番目の領域に処理Bの処理を実行した旨の情報を記録し(ステップS305)、ステップS306の処理Cを実行し終わると、実行記録バッファ152の3番目の領域に処理Cの処理を実行した旨の情報を記録する(ステップS307)。
そじて、CPU110側からクリア要求が発行されて、ウオッチドッグタイマ140の計時内容がクリアされる(ステップS308)。なお、このクリア要求発行時点でのウオッチドッグタイマ140の計時内容がCPU110に渡され、所定の有効期間との比較を行い、処理A,処理Bおよび処理Cの処理時間が有効期間に達していない場合には異常処理(ステップS310)に移行する。また、ステップS309では、実行記録バッファ152と実行確認用データ162とを比較して、不一致の場合には異常処理(ステップS310)に移行する。なお、所定の有効期間を経過した時点でウオッチドッグタイマ140はタイムアウトとなり、この場合、ウオッチドッグタイマ140からCPU110側へタイムアウト通知がなされて、情報処理装置はリセットされる。
このように、従来のシーケンスモニタ機能およびウオッチドッグタイマを用いたプログラム実行監視手法においては、ウオッチドッグタイマの計時開始要求およびクリア要求の発行、実行記録の保存、並びに実行記録の実行確認用データとの比較を処理プログラムに組み込んでソフトウェアで行うため、プログラム実行監視に伴うオーバーヘッドが大きいという事情があった。
また、所定有効期間での終了を判断するためのウオッチドッグタイマのタイムアウト時間として、予めプログラム実行監視に伴うオーバーヘッドを加算しておく必要があり、プログラム実行時間監視のリアルタイム性に欠けるという事情もあった。
本発明は、上記従来の事情に鑑みてなされたものであって、プログラム実行監視に伴うオーバーヘッドを減少させて、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法を提供することを目的としている。
上記課題を解決するために、本発明に係る情報処理装置は、CPU上で予め定められた順序でN個(Nは正整数)の監視対象プログラムを実行する情報処理装置であって、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報が予め設定された設定情報保持手段と、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を備え、前記複数の監視対象プログラムを実行するCPUと、前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、現時点の実行順iがN以上であるときに前記計時クリア要求を発行する監視手段と、を備えたことを特徴とする。
また、上記発明において、前記設定情報保持手段に、前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグが予め設定され、前記監視手段は、前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする。
また、上記発明において、前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、前記監視手段は、前記ウオッチドッグタイマの現計時値を所定値または前記監視対象プログラムの実行順iに応じて定まる所定値と比較することを特徴とする。
また、上記発明において、前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする。
上記課題を解決するために、本発明に係る情報処理装置のプログラム実行監視方法は、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つCPUと、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、を備え、前記CPU上で予め定められた順序でN個(Nは正整数)の監視対象プログラムを実行する情報処理装置のプログラム実行監視方法であって、前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報を予め設定する情報設定ステップと、前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、現時点の実行順iがN以上であるときに前記計時クリア要求を発行する監視ステップと、を備えたことを特徴とする。
また、上記発明において、前記情報設定ステップは、前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグを予め設定し、前記監視ステップは、前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする。
また、上記発明において、前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、前記計時クリア要求発行時の前記ウオッチドッグタイマの計時値と、所定値または前記監視対象プログラムの実行順iに応じて定まる所定値と比較する比較ステップを備えたことを特徴とする。
さらに、上記発明において、前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする。
本発明に係る情報処理装置およびそのプログラム実行監視方法によれば、ログラム実行監視に伴うオーバーヘッドを減少させて、リアルタイムにプログラムの実行監視を行い得る情報処理装置およびそのプログラム実行監視方法を提供することができる。
以下、本発明に係る好適な実施の形態について、実施例1、実施例2の順に図面を参照しながら詳細に説明する。
図1および図2は本発明の実施例1に係る情報処理装置の構成図である。ここで、図1は情報処理装置の内で本発明に関わる主要構成の詳細を示す構成図であり、図2は情報処理装置の全体的概要を示す構成図である。
図2において、本実施例の情報処理装置は、CPU10、監視制御部20、RAM50、ROM60およびウオッチドッグタイマ40を備え、CPU10およびRAM50、ROM60は内部システムバスを介して接続されている。ここで、本発明のプログラム実行監視で対象となる監視対象プログラム61はROM60に保持されており、各プログラムで使用するデータ51はRAM50に保持されている。
また、CPU10はトレース機能11を備えている。このトレース機能11は、命令ステップ毎に該命令に対応したアドレス情報を獲得する機能であり、市販のマイクロプロセッサに一般的に備えている機能である。本実施例では、トレース機能11は、CPU10のバスサイクル毎にアドレス情報を獲得し、その獲得したアドレス情報は、図示しない特定ポートを介して逐次監視制御部20に渡されるものとする。
また、監視制御部20は、図1に示す如く、監視部21および設定情報保持部22を備えた構成である。CPU10上で予め定められた順序でN個(Nは正整数)の監視対象プログラム61を実行する場合、設定情報保持部22には、監視対象プログラム61の実行順index(index=1〜N)に対応付けて、監視対象プログラム61の任意の処理ステップにおける固有のアドレス情報が予め設定される。
ここで、固有のアドレス情報としては、CPU10内のプログラムカウンタPCの値、或いは個々の監視対象プログラムに固有のメモリアドレス等があるが、以下の説明では、固有のアドレス情報をプログラムカウンタPCの値として扱うこととする。すなわち、図1に示す如く、実行順index=1,2,3,…に対応して、処理P1のPCindex値,処理P2のPCindex値,処理P3のPCindex値,…が設定される。また、設定情報保持部22のこれら情報は、監視対象プログラム61の実行以前に、図示しないインタフェースを介して予め設定されているものとする。なお、実行順indexは、監視部21が設定情報保持部22を参照するときのアドレスとして機能し、監視部21内では実行順カウンタindexとして具現される。
また、監視部21は、CPU10の命令ステップ毎に、CPU10が獲得したアドレス情報(PC値)と設定情報保持部22の現時点の実行順カウンタindexに対応した固有のアドレス情報(PCindex値)とを比較して両者が一致し、且つ現時点の実行順カウンタindexがN未満であるときに、実行順カウンタindexをインクリメントし、また現時点の実行順カウンタindexがN以上であるときには、ウオッチドッグタイマ40に対して計時クリア要求を発行する。
また、ウオッチドッグタイマ40は、監視制御部20(監視部21)からの計時開始要求に応じて計時を開始し、また、計時クリア要求に応じて計時値をクリアすると共に現計時値を監視制御部20(監視部21)に渡し、さらに、所定時間満了時には計時値をクリアすると共にタイムアウトを監視制御部20に通知する。
なお、監視制御部20(監視部21)では、計時クリア要求に応じてウオッチドッグタイマ40から渡された現計時値を所定値(監視対象プログラム61の全処理時間に応じて設定される有効期間)と比較して、該所定値に達していない場合には従来と同様に異常処理に移行する。また、ウオッチドッグタイマ40からタイムアウトの通知を受けたときは、当該情報処理装置はリセットされる。
次に、以上のような構成要素を備えた情報処理装置において、監視制御部20によるプログラム実行監視方法について、図3および図4を参照して説明する。ここで、図3は実施例1に係る情報処理装置のプログラム実行監視方法を説明するフローチャート、図4はプログラム実行監視方法を説明するタイムチャートである。
まず、CPU10上で監視対象プログラム61の実行が開始されると、監視部21は、監視対象プログラム61の実行順を表す実行順カウンタindexの値を初期化(ここでは「1」に設定)する(ステップS101)と共に、ウオッチドッグタイマ40に対して計時開始要求を発行する。
ここで、図3のフローチャートにおいて、以下に続くステップS102〜S107の処理は、CPU10の命令ステップ毎(バスサイクル毎)に行われる処理である。以下の説明では、代表的に監視対象プログラム61の実行順でi番目に実行される処理Piの任意のステップがCPU10上で実行されているものとして説明する。
ステップS102では、CPU10のトレース機能11により、その命令ステップ(バスサイクル)において実行中のプログラムカウンタPCの値が監視部21に渡される。これを受けて、監視部21は設定情報保持部22を参照し、実行順カウンタindex=iに対応した処理PiのPCindex値を得る(ステップS103)。
そして、プログラムカウンタPC値と処理PiのPCindex値とが一致するか否かを判断し(ステップS104)、一致しない場合には何もしないでステップS102に戻り、次の命令ステップ(バスサイクル)まで待機する。つまり、プログラムカウンタPC値と処理PiのPCindex値とが一致するまでは、ステップS102〜S104による比較処理が命令ステップ毎に繰り返し行われることになる。
また、プログラムカウンタPC値と処理PiのPCindex値とが一致した場合には、ステップS105に進んで、実行順カウンタindexの値が監視対象プログラム61の処理個数N以上か否かを判断し(ステップS105)、カウンタindexの値が処理個数N未満であれば、実行順カウンタindexの値をインクリメント(ステップS107)した後、ステップS102に戻り、次の命令ステップ(バスサイクル)まで待機する。つまり、次の命令ステップ以降は、プログラムカウンタPC値はi+1番目の処理Pi+1のPCindex値と比較されることになる。
また、ステップS105で実行順カウンタindexの値が処理個数N以上の場合は、ウオッチドッグタイマ40に対して計時クリア要求を発行し(ステップS106)、ステップS101に戻って、実行順カウンタindexの値を初期化する。つまり、この分岐経路では、プログラムカウンタPC値がN番目の処理PNのPCindex値に一致しており、N個の監視対象プログラム61が予め定められた順序で有効期間内に実行されたことを意味し、実行順カウンタindexを初期化して、再び以上の処理を繰り返すことになる。なお、プログラムカウンタPC値がN番目の処理PNのPCindex値に一致した時点でウオッチドッグタイマ40からタイムアウト通知がなければ、監視部21は、所定順序で監視対象プログラム61が実行されたことを確認できる。
次に、図4のタイムチャートに沿って情報処理装置のプログラム実行監視方法を説明する。図4(a)は、CPU10上で処理されるプログラムの時間推移を例示している。N個の監視対象プログラム61(処理P1〜処理PN)は、例えばセンサ処理、計測処理または表示処理等であり、CPU10上で処理されるプログラムの中でピックアップされたものである。
また、図4(a)中のTc1〜TcNは、CPU10内のプログラムカウンタPC値が設定情報保持部22に設定される処理P1〜処理PNのPCindex値となるタイミング(命令ステップ)をそれぞれ示しており、図3のステップS104の一致判断では、これらのタイミングTc1〜TcNで両者が一致したと判断されることとなる。なお、タイミングTcNでは、さらに図3のステップS105で実行順カウンタindexの値が処理個数Nに一致して、ウオッチドッグタイマ40に対して計時クリア要求が発行される。
また、図4(b)はCPU10上で監視対象プログラム61が正常に実行されたときのウオッチドッグタイマ40の計時値の時間推移を例示している。ウオッチドッグタイマ40では、監視部21から計時開始要求が発行されると計時を開始し、タイミングTcNで計時クリア要求が発行された時点では、ウオッチドッグタイマ40の計時値はWDT(TcN)となっている。この計時値WDT(TcN)は、計時クリア要求に応じて監視部21に渡され、監視部21では、計時値WDT(TcN)を所定値(設定された有効期間、即ち、監視対象プログラム61の全処理時間に応じて定まる所定値であって、時間TcNに応じて設定される値)と比較して、該所定値に達していない場合には、監視対象プログラム61の一部処理が正常に処理されなかったとして、異常処理に移行する。
また、図4(c)はCPU10上で監視対象プログラム61が正常に実行されずにタイムアウトとなったときのウオッチドッグタイマ40の計時値の時間推移を例示している。つまり、監視対象プログラム61の一部処理が無限ルーチンに陥るなどして正常に実行されないまま、ウオッチドッグタイマ40が所定時間Toutを満了した時には、計時値がクリアされると共にタイムアウトが監視部21に通知され、当該情報処理装置のリセット処理に移行することとなる。
以上説明したように、本実施例の情報処理装置およびそのプログラム実行監視方法では、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つCPU10と、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマ40と、を備え、CPU10上で予め定められた順序でN個の監視対象プログラム61を実行する情報処理装置およびそのプログラム実行監視方法であって、監視対象プログラム61の実行順i(i=1〜N)に対応付けて、監視対象プログラム61の任意の処理ステップにおける固有のアドレス情報を予め設定情報保持部22に設定し、監視部21では、CPU10の命令ステップ毎に、CPU10が獲得したアドレス情報(PC値)と現時点の実行順iに対応した固有のアドレス情報(PCindex値)とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、現時点の実行順iがN以上であるときに計時クリア要求を発行する。
このように、CPU10の現アドレス情報(PC値)と監視対象プログラム61の現時点の実行順iに対応した固有のアドレス情報(PCindex値)との一致を順次検出していくので、両者が一致し且つ現時点の実行順iがN以上であるときにウオッチドッグタイマ40からタイムアウト通知がなければ、監視部21は、有効期間内に所定順序で監視対象プログラム61が実行されたことを確認できる。
また、監視部21は、計時クリア要求の発行時に、ウオッチドッグタイマ40の現計時値を受け取って、所定値(監視対象プログラム61の全処理時間に応じて設定される有効期間)と比較することにより、有効期間で監視対象プログラム61が実行されたことを確認できる。なお、これらの条件に合致しなければ、監視対象プログラム61の一部処理が正常に処理されなかったとして、異常処理に移行することとなる。
また、このような監視部21における処理は、CPU10上での監視対象プログラム61の実行と並行して行われるので、プログラム実行監視に伴うオーバーヘッドを減少させることができる。また、所定有効期間での終了を判断するためのウオッチドッグタイマ40のタイムアウト時間として、プログラム実行監視に伴うオーバーヘッドのために加算する値を少なくできるため、リアルタイム性に優れたプログラム実行時間監視を行い得る情報処理装置およびそのプログラム実行監視方法を実現することができる。
また、従来はプログラム実行監視に伴って、RAMに実行記録バッファを、ROMに実行監視用データおよびシーケンスモニタをそれぞれ保持しておく必要があったが、本実施例ではその必要が無く、記憶手段(RAMおよびROM)の容量を削減することができる。
次に、図5は本発明の実施例2に係る情報処理装置の構成図である。ここで、図5は情報処理装置の内で本発明に関わる主要構成の詳細を示しており、情報処理装置の全体的概要は実施例1(図2)と同様である。すなわち、本実施例の情報処理装置は、CPU10、監視制御部30、RAM50、ROM60およびウオッチドッグタイマ40を備えている。
図5において、CPU10は実施例1と同様にトレース機能11(命令ステップ毎に該命令に対応したアドレス情報を獲得する機能)を備え、CPU10のバスサイクル毎に獲得されたアドレス情報は、図示しない特定ポートを介して逐次監視制御部30に渡される。
また、監視制御部30は、監視部31および設定情報保持部32を備えた構成である。CPU10上で予め定められた順序でN個(Nは正整数)の監視対象プログラム61を実行する場合、設定情報保持部32には、監視対象プログラム61の実行順index(index=1〜N)に対応付けて、監視対象プログラム61の任意の処理ステップにおける固有のアドレス情報と、計時クリア要求の有無を表すフラグ(計時クリア要求の発行を有効とするか否かのフラグ)とが、予め設定されている。
ここで、固有のアドレス情報としては、CPU10内のプログラムカウンタPCの値、或いは個々の監視対象プログラムに固有のメモリアドレス等があり、以下の説明では、実施例1と同様に、固有のアドレス情報をプログラムカウンタPCの値として扱う。すなわち、図5に示す如く、実行順index=1,2,3,…に対応して、処理P1のPCindex値,処理P2のPCindex値,処理P3のPCindex値,…、並びに、処理P1のフラグ(OFF),処理P2のフラグ(ON),処理P3のフラグ(OFF),…がそれぞれ設定される。また、設定情報保持部32のこれら情報は、監視対象プログラム61の実行以前に、図示しないインタフェースを介して予め設定されているものとする。なお、実行順indexは、監視部31が設定情報保持部32を参照するときのアドレスとして機能し、監視部31内では実行順カウンタindexとして具現される。
また、監視部31は、CPU10の命令ステップ毎に、CPU10が獲得したアドレス情報(PC値)と設定情報保持部32の現時点の実行順カウンタindexに対応した固有のアドレス情報(PCindex値)とを比較して両者が一致すると共にフラグが無効(OFF)で、且つ現時点の実行順カウンタindexがN未満であるときに、実行順カウンタindexをインクリメントし、また両者が一致すると共にフラグが有効(ON)で、且つ現時点の実行順カウンタindexがN未満であるときには、ウオッチドッグタイマ40に対して計時クリア要求を発行すると共に実行順カウンタindexをインクリメントする。
また、ウオッチドッグタイマ40は、監視制御部30(監視部31)からの計時開始要求に応じて計時を開始し、また、計時クリア要求に応じて計時値をクリアすると共に現計時値を監視制御部30(監視部31)に渡し、さらに、所定時間満了時には計時値をクリアすると共にタイムアウトを監視制御部30に通知する。
なお、監視制御部30(監視部31)では、計時クリア要求に応じてウオッチドッグタイマ40から渡された現計時値を実行順カウンタindexに応じて定まる所定値(処理時間に応じて設定される有効期間)と比較して、該所定値に達していない場合には異常処理に移行する。また、ウオッチドッグタイマ40からタイムアウトの通知を受けたときは、当該情報処理装置はリセットされる。
次に、以上のような構成要素を備えた情報処理装置において、監視制御部30によるプログラム実行監視方法について、図6および図7を参照して説明する。ここで、図6は実施例2に係る情報処理装置のプログラム実行監視方法を説明するフローチャート、図7はプログラム実行監視方法を説明するタイムチャートである。
まず、CPU10上で監視対象プログラム61の実行が開始されると、監視部31は、監視対象プログラム61の実行順を表す実行順カウンタindexの値を初期化(ここでは「1」に設定)する(ステップS201)と共に、ウオッチドッグタイマ40に対して計時開始要求を発行する。
ここで、図6のフローチャートにおいて、以下に続くステップS202〜S209の処理は、CPU10の命令ステップ毎(バスサイクル毎)に行われる処理である。以下の説明では、代表的に監視対象プログラム61の実行順でi番目に実行される処理Piの任意のステップがCPU10上で実行されているものとして説明する。
ステップS202では、CPU10のトレース機能11により、その命令ステップ(バスサイクル)において実行中のプログラムカウンタPCの値が監視部31に渡される。これを受けて、監視部31は設定情報保持部32を参照し、実行順カウンタindex=iに対応した処理PiのPCindex値並びにクリア要求の有無を表すフラグを得る(ステップS203)。
そして、プログラムカウンタPC値と処理PiのPCindex値とが一致するか否かを判断し(ステップS204)、一致しない場合には何もしないでステップS202に戻り、次の命令ステップ(バスサイクル)まで待機する。つまり、プログラムカウンタPC値と処理PiのPCindex値とが一致するまでは、ステップS202〜S204による比較処理が命令ステップ毎に繰り返し行われることになる。
また、プログラムカウンタPC値と処理PiのPCindex値とが一致した場合には、ステップS205に進んで、クリア要求の有無を表すフラグがON(有効)であるか否かを判断する。フラグがOFF(無効)であればステップS207に進み、またフラグがON(有効)であればウオッチドッグタイマ40に対して計時クリア要求を発行(ステップS206)した後にステップS207に進む。なお、計時クリア要求を発行する時点でウオッチドッグタイマ40からタイムアウト通知がなければ、監視部21は、監視対象プログラム61の処理Piまでは所定順序で実行されたことを確認できる。
ステップS207では、実行順カウンタindexの値が監視対象プログラム61の処理個数N以上か否かを判断し、カウンタindexの値が処理個数N未満であれば、実行順カウンタindexの値をインクリメント(ステップS208)した後、ステップS202に戻り、次の命令ステップ(バスサイクル)まで待機する。つまり、次の命令ステップ以降は、プログラムカウンタPC値はi+1番目の処理Pi+1のPCindex値と比較されることになる。
また、ステップS207で実行順カウンタindexの値が処理個数N以上の場合は、ウオッチドッグタイマ40に対して計時クリア要求を発行(ステップS209)した後、ステップS201に戻って、実行順カウンタindexの値を初期化する。つまり、この分岐経路では、プログラムカウンタPC値がN番目の処理PNのPCindex値に一致しており、N個の監視対象プログラム61が予め定められた順序で有効期間内に実行されたことを意味し、実行順カウンタindexを初期化して、再び以上の処理を繰り返すことになる。なお、プログラムカウンタPC値がN番目の処理PNのPCindex値に一致した時点でウオッチドッグタイマ40からタイムアウト通知がなければ、監視部21は、監視対象プログラム61の処理PNまで所定順序で実行されたことを確認できる。
次に、図7のタイムチャートに沿って情報処理装置のプログラム実行監視方法を説明する。図7(a)は、CPU10上で処理されるプログラムの時間推移を例示している。N個の監視対象プログラム61(処理P1〜処理PN)は、例えばセンサ処理、計測処理または表示処理等であり、CPU10上で処理されるプログラムの中でピックアップされたものである。なお、括弧内にはクリア要求の有無を表すフラグの内容を付記している。
また、図7(a)中のTc1〜TcNは、CPU10内のプログラムカウンタPC値が設定情報保持部32に設定される処理P1〜処理PNのPCindex値となるタイミング(命令ステップ)をそれぞれ示しており、図6のステップS204の一致判断では、これらのタイミングTc1〜TcNで両者が一致したと判断されることとなる。なお、タイミングTc2およびTcNでは、さらに図6のステップS205でクリア要求の有無を表すフラグがONと判断されて、ウオッチドッグタイマ40に対して計時クリア要求が発行される。
また、図7(b)はCPU10上で監視対象プログラム61が正常に実行されたときのウオッチドッグタイマ40の計時値の時間推移を例示している。ウオッチドッグタイマ40では、監視部31から計時開始要求が発行されると計時を開始し、タイミングTc2,…Tck,TcN(Tck:TcNの1つ前の計時クリア要求発行タイミング;図示せず)で計時クリア要求が発行された時点では、ウオッチドッグタイマ40の計時値はそれぞれWDT(Tc2),…,WDT(Tck),WDT(TcN)となる。これら計時値WDT(Tc2),…,WDT(Tck),WDT(TcN)は、計時クリア要求に応じて監視部31に渡され、監視部31では、計時値WDT(Tc2),…,WDT(TcN)をそれぞれ所定値(設定された有効期間、即ち、実行順カウンタindexに応じて定まる所定値であって、時間Tc2,…,TcN−Tckに応じて設定される値)と比較して、該所定値に達していない場合には、監視対象プログラム61の一部処理が正常に処理されなかったとして、異常処理に移行する。
また、図7(c)はCPU10上で監視対象プログラム61が正常に実行されずにタイムアウトとなったときのウオッチドッグタイマ40の計時値の時間推移を例示している。つまり、監視対象プログラム61の一部処理が無限ルーチンに陥るなどして正常に実行されないまま、ウオッチドッグタイマ40が所定時間Toutを満了した時には、計時値がクリアされると共にタイムアウトが監視部31に通知され、当該情報処理装置のリセット処理に移行することとなる。
以上説明したように、本実施例の情報処理装置およびそのプログラム実行監視方法では、命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つCPU10と、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマ40と、を備え、CPU10上で予め定められた順序でN個の監視対象プログラム61を実行する情報処理装置およびそのプログラム実行監視方法であって、監視対象プログラム61の実行順i(i=1〜N)に対応付けて、監視対象プログラム61の任意の処理ステップにおける固有のアドレス情報と計時クリア要求の有無を表すフラグを予め設定情報保持部32に設定し、監視部31では、CPU10の命令ステップ毎に、CPU10が獲得したアドレス情報(PC値)と現時点の実行順iに対応した固有のアドレス情報(PCindex値)とを比較して両者が一致すると共にフラグが無効で、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、また両者が一致すると共にフラグが有効で、且つ現時点の実行順iがN未満であるときには、計時クリア要求を発行すると共に実行順iをインクリメントする。
このように、CPU10の現アドレス情報(PC値)と監視対象プログラム61の現時点の実行順iに対応した固有のアドレス情報(PCindex値)との一致を順次検出していくので、計時クリア要求の発行時点でウオッチドッグタイマ40からタイムアウト通知がなければ、監視部31は、それまでの処理について有効期間内に所定順序で監視対象プログラム61が実行されたことを確認できる。
また、監視部31は、計時クリア要求の発行時に、ウオッチドッグタイマ40の現計時値を受け取って、所定値(監視対象プログラム61の実行順iに応じて定まる有効期間)と比較することにより、それまでの処理について有効期間で監視対象プログラム61が実行されたことを確認できる。なお、これらの条件に合致しなければ、監視対象プログラム61の一部処理が正常に処理されなかったとして、異常処理に移行することとなる。
また、このような監視部31における処理は、CPU10上での監視対象プログラム61の実行と並行して行われるので、プログラム実行監視に伴うオーバーヘッドを減少させることができる。また、所定有効期間での終了を判断するためのウオッチドッグタイマ40のタイムアウト時間として、プログラム実行監視に伴うオーバーヘッドのために加算する値を少なくできるため、リアルタイム性に優れたプログラム実行時間監視を行い得る情報処理装置およびそのプログラム実行監視方法を実現することができる。
以上、本発明の好ましい実施例について詳述したが、本発明に係る情報処理装置およびそのプログラム実行監視方法は、上述した実施例1および実施例2に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
なお、本発明では、CPU10にトレース機能を持つことが要件となるが、命令ステップ(バスサイクル)毎に行われるプログラム実行監視のための処理は監視制御部20または30で完結されるので、監視制御部20または30をモジュールとして情報処理装置に埋め込むようにすれば、本発明によるプログラム実行監視機能をより簡単に追加することができる。
また、図3、図6のフローチャートの機能については、CPU10のバスサイクル内で処理する必要があり、設定情報保持部22または32はレジスタ等の高速アクセス可能なデバイスで実現する必要がある。また、監視部21または31におけるフローチャートの機能(それぞれ図3または図6参照)についても、ワイヤード・ロジック(Wired Logic;結線論理)で実現するか、或いはCPU10より高速なクロックで動作するプロセッサ上のプログラム処理で実現することとなる。なお、監視部21または31をワイヤード・ロジックで実現する場合、装置コスト低減の観点から、異常処理やタイムアウト時のリセット処理等については、監視部21または31側ではCPU10にその旨を通知するだけに止めて、処理自体はCPU10上でプログラム処理するのが望ましい。
10 CPU
20,30 監視制御部
21,31 監視部
22,32 設定情報保持部
50 RAM
60 ROM
40 ウオッチドッグタイマ
20,30 監視制御部
21,31 監視部
22,32 設定情報保持部
50 RAM
60 ROM
40 ウオッチドッグタイマ
Claims (8)
- CPU上で予め定められた順序でN個(Nは正整数)の監視対象プログラムを実行する情報処理装置であって、
計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、
前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報が予め設定された設定情報保持手段と、
命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を備え、前記複数の監視対象プログラムを実行するCPUと、
前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、現時点の実行順iがN以上であるときに前記計時クリア要求を発行する監視手段と、
を有することを特徴とする情報処理装置。 - 前記設定情報保持手段に、前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグが予め設定され、
前記監視手段は、前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記設定情報保持手段の現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする請求項1に記載の情報処理装置。 - 前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、
前記監視手段は、前記ウオッチドッグタイマの現計時値を所定値または前記監視対象プログラムの実行順iに応じて定まる所定値と比較することを特徴とする請求項1または請求項2の何れか1項に記載の情報処理装置。 - 前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする請求項1〜請求項3の何れか1項に記載の情報処理装置。
- 命令ステップ毎に該命令に対応したアドレス情報を獲得するトレース機能を持つCPUと、計時開始要求に応じて計時を開始し、所定時間満了または計時クリア要求に応じて計時値をクリアするウオッチドッグタイマと、を備え、前記CPU上で予め定められた順序でN個(Nは正整数)の監視対象プログラムを実行する情報処理装置のプログラム実行監視方法であって、
前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、該監視対象プログラムの任意の処理ステップにおける固有のアドレス情報を予め設定する情報設定ステップと、
前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントし、現時点の実行順iがN以上であるときに前記計時クリア要求を発行する監視ステップと、
を有することを特徴とする情報処理装置のプログラム実行監視方法。 - 前記情報設定ステップは、前記監視対象プログラムの実行順i(i=1〜N)に対応付けて、前記計時クリア要求の発行を有効とするか否かを示すフラグを予め設定し、
前記監視ステップは、前記CPUの命令ステップ毎に、該CPUが獲得したアドレス情報と前記情報設定ステップで設定した現時点の実行順iに対応した固有のアドレス情報とを比較して両者が一致し、且つ現時点の実行順iがN未満であるときに、実行順iをインクリメントすると共に前記フラグが有効であれば前記計時クリア要求を発行することを特徴とする請求項5に記載の情報処理装置のプログラム実行監視方法。 - 前記ウオッチドッグタイマは、前記計時クリア要求に応じて現計時値を前記監視手段に渡し、
前記計時クリア要求発行時の前記ウオッチドッグタイマの計時値と、所定値または前記監視対象プログラムの実行順iに応じて定まる所定値と比較する比較ステップを有することを特徴とする請求項5または請求項6の何れか1項に記載の情報処理装置のプログラム実行監視方法。 - 前記アドレス情報はプログラムカウンタの値またはメモリアドレスであることを特徴とする請求項5〜請求項7の何れか1項に記載の情報処理装置のプログラム実行監視方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011015210A JP2012155601A (ja) | 2011-01-27 | 2011-01-27 | 情報処理装置およびそのプログラム実行監視方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011015210A JP2012155601A (ja) | 2011-01-27 | 2011-01-27 | 情報処理装置およびそのプログラム実行監視方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012155601A true JP2012155601A (ja) | 2012-08-16 |
Family
ID=46837245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011015210A Pending JP2012155601A (ja) | 2011-01-27 | 2011-01-27 | 情報処理装置およびそのプログラム実行監視方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012155601A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015082233A (ja) * | 2013-10-23 | 2015-04-27 | 大日本印刷株式会社 | セキュリティトークンおよび処理ルーチンの実行方法 |
JP2018129059A (ja) * | 2018-03-09 | 2018-08-16 | 日本精工株式会社 | 車載用電子機器の制御装置及び制御方法 |
-
2011
- 2011-01-27 JP JP2011015210A patent/JP2012155601A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015082233A (ja) * | 2013-10-23 | 2015-04-27 | 大日本印刷株式会社 | セキュリティトークンおよび処理ルーチンの実行方法 |
JP2018129059A (ja) * | 2018-03-09 | 2018-08-16 | 日本精工株式会社 | 車載用電子機器の制御装置及び制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589927B2 (en) | Method, apparatus and trace module for generating timestamps | |
JP2019503525A5 (ja) | ||
JP2011523127A5 (ja) | ||
JP2000040075A5 (ja) | ||
JP2005346583A5 (ja) | ||
TW201633129A (zh) | 用於在多核心微控制器中產生跨核心斷點之系統及方法 | |
TW201401002A (zh) | 資料收集系統、資料收集裝置、資料收集系統程式及資料收集程式 | |
TW200615746A (en) | Trace, debug method and system for a processor | |
JP2012155601A (ja) | 情報処理装置およびそのプログラム実行監視方法 | |
JP3358759B2 (ja) | プログラマブルコントローラのデータトレース方法 | |
US9195524B1 (en) | Hardware support for performance analysis | |
US20150363351A1 (en) | Data transfer device and data transfer method | |
JP6813513B2 (ja) | プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置 | |
JP2018181378A5 (ja) | ||
WO2004034172A3 (de) | Verfahren zur ereignissynchronisation, damit synchronisierte prozessoren und fehlertoleranter systeme mit derartigen prozessoren | |
JP2009217385A (ja) | プロセッサ及びマルチプロセッサ | |
US7735093B2 (en) | Method and apparatus for processing real-time command information | |
JP2008262557A (ja) | 制御装置のタスク管理装置、及び、制御装置のタスク管理方法 | |
JP3396561B2 (ja) | プログラマブルコントローラ | |
JP6365043B2 (ja) | 観測回路 | |
JP2013084238A5 (ja) | ||
JP5768434B2 (ja) | 相互監視システム | |
JPH02264352A (ja) | マルチプロセッサ同期方式 | |
US20050120348A1 (en) | Method of determining information about the processes which run in a program-controlled unit during the execution of a program by the program-controlled unit | |
JP6201921B2 (ja) | マイクロコンピュータ |