JP2880658B2 - マルチタスクプログラムの暴走検出装置 - Google Patents
マルチタスクプログラムの暴走検出装置Info
- Publication number
- JP2880658B2 JP2880658B2 JP6266167A JP26616794A JP2880658B2 JP 2880658 B2 JP2880658 B2 JP 2880658B2 JP 6266167 A JP6266167 A JP 6266167A JP 26616794 A JP26616794 A JP 26616794A JP 2880658 B2 JP2880658 B2 JP 2880658B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- task
- address
- switching
- runaway
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims description 23
- 238000000034 method Methods 0.000 description 21
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004397 blinking Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Description
ムの暴走検出装置に関する。
置においては、プログラムを複数のタスクプログラムに
分割し、各タスクプログラムを異なる周期で起動・実行
させて、その結果所定のある一つの制御を実行するよう
にした所謂マルチタスク処理方式が採用されている。こ
のような装置にあっては、プログラムの暴走検出用のウ
ォッチドッグタイマが備えられている。このウォッチド
ッグタイマは、ウォッチドッグパルスが所定時間間隔以
下で入力されている間は、暴走していないとして何も出
力しないが、ウォッチドッグパルスが所定時間以上途絶
えると、暴走しているとしてCPUにリセットパルスを
出力し、暴走検出ができるようになっている。このウォ
ッチドッグパルスは、各タスクプログラムの途中に頻繁
に挿入された(上記所定時間間隔内に次々と挿入されて
いる)暴走検出用のプログラムを通過した場合に、出力
されるようになっている。
は、例えばタスク1のプログラム処理中に、例えばタス
ク2のプログラムに暴走してしまった場合でも、タスク
2の暴走検出用のプログラム通過時にウォッチドッグパ
ルスを出力してしまうので、暴走していないとされてし
まう。
提案が、特開平3−288942号公報記載のプログラ
ム暴走検出方法になされている。この特開平3−288
942号公報記載のプログラム暴走検出方法は、各タス
クプログラムのタスク処理が正常に実行されているか否
かをチェックし、各タスク処理の実行が正常に行われて
いる場合には、各タスクプログラムごとに対応して設け
られたデータセット手段の内容の所定の変更を行い、且
つ所定のタスクプログラムの実行時に、これらのデータ
セット手段の内容をチェックすることにより、全てのタ
スクプログラムが正常に実行されているか否かを検出す
るようにしたものである。
開平3−288942号公報記載のプログラム暴走検出
方法にあっては、以下の問題がある。すなわち、各タス
クを起動する度に、各タスクが正常か否かのチェック処
理を行うと共にデータセット処理を行い、さらにこれら
データに基づいて全タスクが正常か否かのチェック処理
を行わなければいけないので、所定時間間隔内にウォッ
チドッグパルスを出力する(勿論正常と判定した場合)
には、実際のところ、タスクプログラムの実行時間を短
くしなければならないといった問題がある。
しているタスクが存在する場合があり、このような場合
には、全タスクのチェック処理フローにおいて、暴走と
判定してしまうので、該全タスクのチェック処理フロー
に、休止や停止しているタスクの判定プログラムを設け
なけれならず、従って判定が複雑になるといった問題も
ある。
検出が短時間になされ、該タスクプログラムの実行時間
を長くできると共に、休止・停止中のタスクの判定プロ
グラムも不要なマルチタスクプログラムの暴走検出装置
を提供することを目的とする。
ログラムの暴走検出装置は、上記目的を達成するため
に、プログラムを複数のタスクプログラムに分割し、各
タスクプログラムを所定の順序で実行させるようにした
マルチタスクプログラムの暴走を検出する装置であっ
て、タスクプログラムを記憶する複数のタスクプログラ
ム記憶手段と、これらタスクプログラム記憶手段に記憶
されたタスクプログラムを、指令手段から指定されたタ
スクプログラムに切り替える切替手段と、この切替手段
による切り替え時に、切替前に実行していたタスクプロ
グラムに基づいたプログラム番地が、切替前に指定され
ていたタスクプログラムのプログラム番地の範囲内に在
るか否かを判定し、範囲内にないと判定した場合には暴
走だとする判定手段と、を具備した。
検出装置は、上記目的を達成するために、上記第1手段
に加えて、少なくともタスクプログラム切替時のプログ
ラム番地を待機プログラム番地として格納する格納手段
と、判定手段により、切替前に実行していたタスクプロ
グラムに基づいたプログラム番地が、切替前に指定され
ていたタスクプログラムのプログラム番地の範囲内にあ
ると判定した場合には、切替手段により切り替えられた
タスクプログラムにおける待機プログラム番地に移行し
てプログラムを実行させる実行手段と、を具備した。
グラムの暴走検出装置によれば、指令手段により、タス
クプログラムの指定がなされると、切替手段により、実
行中のタスクプログラムが指定されたタスクプログラム
に切り替えられるが、この時、判定手段により、切替前
に実行していたタスクプログラムに基づいたプログラム
番地が、切替前に指定されていたタスクプログラムのプ
ログラム番地の範囲内に在るか否かが判定され、範囲内
にないと判定された場合には暴走だとし、実行していた
タスクプログラムのみに着目した暴走の検出がなされ
る。
グラムの暴走検出装置によれば、切替時に、格納手段に
より、少なくともタスクプログラム切替時のプログラム
番地が待機プログラム番地として格納される一方で、判
定手段により、切替前に実行していたタスクプログラム
に基づいたプログラム番地が、切替前に指定されていた
タスクプログラムのプログラム番地の範囲内に在ると判
定した場合には、実行手段により、切替手段に従って切
り替えられたタスクプログラムにおける待機プログラム
番地に移行してプログラムが実行される。
する。図1は本発明の一実施例におけるマルチタスクプ
ログラムの暴走検出装置の全体構成を表したブロック図
であり、本マルチタスクプログラムの暴走検出装置は、
例えば磁気カードリーダーに適用されている。
検出装置20は、同図に示されるように、各タスクプロ
グラムを記憶する複数のタスクプログラム記憶手段1〜
4と、予め決定された所定の順序に従って実行すべきタ
スクプログラムを順次指定していく指令手段5と、上記
タスクプログラム記憶手段1〜4に記憶されたタスクプ
ログラムを、該指令手段5から指定されたタスクプログ
ラムに従って切り替える切替手段(ディスパッチャ)6
と、切替手段6によるタスクプログラム切替時のプログ
ラム番地(実行していた最後のプログラムの次に実行す
るプログラム番地;詳しくは後述)を待機プログラム番
地として格納すると共に、実行していたレジスタ、フラ
グ(FLG)、スタックポインタ(SP)等を格納する
格納手段7と、実行していたタスクプログラムに基づい
たプログラム番地(PC)として例えば実行していた最
後のプログラム番地に一番地追加したもの(格納手段7
に格納されているのと同じプログラム番地)が、指定さ
れていたタスクプログラムのプログラム番地の範囲内に
在るか否かを判定し、範囲内にないと判定した場合に
は、暴走だとしてウォッチドッグパルスを所定時間以上
出力せず、一方範囲内にあると判定した場合には、暴走
していないとしてウォッチドッグパルスを出力する(こ
の出力は、実際には、後述のように暴走の有無を短時間
で検出できるので、所定時間間隔以下になされる)判定
手段8と、上記切替手段6により切り替えられた次に実
行すべきタスクプログラムを、格納手段7に格納された
次に実行すべき待機プログラム番地に移行して、同格納
手段7に格納されたレジスタ、フラグ、スタックポイン
タ等を用いて、実行させる実行手段9と、からその主要
部が構成されている。
実行時に、格納手段7において、該当するタスクプログ
ラムの待機プログラム番地が格納されていない場合に
は、そのタスクプログラムの一番最初のプログラム番地
を待機プログラム番地とするように構成されている。
ド位置を検出しその位置情報を入力するためのセンサ1
2が外部から接続されており、該実行手段9において、
この位置情報を用いてプログラム処理がなされるように
なっている。
いたプログラム処理によって制御される、例えばモータ
14を駆動するための駆動回路13、メカを制御するた
めのソレノイド16、ライト回路15が外部にそれぞれ
接続されており、さらにアラームランプ等の点滅により
プログラムの暴走を知らしめる警告手段11も外部に接
続されている。
ルスが所定時間間隔以下で入力されている間は、暴走し
ていないとして何も出力せず、一方ウォッチドッグパル
スが所定時間以上途絶えると、暴走しているとしてリセ
ットパルスを出力するウォッチドッグリセットIC10
が外部に接続されている。
上記実行手段9が接続されており、該実行手段9は、上
記リセットパルスの入力がない場合には、上述のよう
に、切替手段6により切り替えられた次に実行すべきタ
スクプログラムを、格納手段7に格納された次に実行す
べき待機プログラム番地に移行して、同格納手段7に格
納されたレジスタ、フラグ、スタックポインタ等を用い
て、実行させるが、一方リセットパルスの入力がある
と、プログラムが暴走しているとしてプログラムの実行
を停止すると共に、上記警告手段11を駆動するように
なっている。
プログラムの暴走検出装置の処理について、以下説明す
る。図2は各タスクプログラムの処理をプログラム番地
に関連づけて表した各フローチャート、図3は本発明に
より実行される暴走検出手順を表したフローチャートで
ある。
(c)に示されるように、それぞれタスク処理を行なう
が、タスク1は、例えば1000h番地から1FFFh
番地までの処理を、タスク2は、例えば2000h番地
から2FFFh番地までの処理を、タスク3は、例えば
3000h番地から3FFFh番地までの処理を、それ
ぞれ行なうことで、各タスクプログラムが完遂するよう
になっている
り、例えばタスク1が指定されたとすると、次のタスク
プログラムの指定があるまで、タスク1の処理をプログ
ラム番地の順に従って行う。
のタスクプログラムの指定があり、例えばタスク3が指
定されたとすると、タスクプログラムがタスク1からタ
スク3に切り替わるわけであるが、この時、タスク1の
プログラム番地は最後に実行したプログラム番地に一番
地追加したプログラム番地にされる(以降の説明のため
にこのプログラム番地を、例えば1001hとする)。
そして、以降は図3に示されるフローチャートに移行
し、先ずステップ1において、実行していたタスク1の
最後に実行したプログラムの次に実行するプログラム番
地(1001h番地)を待機プログラム番地として格納
(退避)すると共に、実行していたタスク1のレジス
タ、フラグ、スタックポインタ等も格納する。すなわ
ち、次回にこのタスク1が指定された時に、このタスク
1のプログラムを継続して実行するのに必要とされるデ
ータ等を格納する。
おいて、実行していたタスクが1か否かの判定を行い、
実行していたタスクが1ではない場合にはステップ3に
進み、ステップ3において、実行していたタスクが2か
否かの判定を行い、実行していたタスクが2ではない場
合にはステップ4に進み、ステップ4において、実行し
ていたタスクが3か否かの判定を行う。このように、実
行していたタスクに該当するまで同様な判定を繰り返し
ていく。
たタスクが1であるので、ステップ2からステップ5に
進み、ステップ5において、格納した待機プログラム番
地(1001h番地)が指定されていたタスク1のプロ
グラム番地の範囲1000h番地〜1FFFh番地内に
在るか否かを判定し、範囲1000h番地〜1FFFh
番地内にないと判定した場合(実際には待機プログラム
番地1001hは範囲1000h番地〜1FFFh番地
内にあるが、ここでは説明の都合上、該待機プログラム
番地をここのみ2002h番地とし範囲1000h番地
〜1FFFh番地内にないとした場合)には、実際には
タスク1のプログラム処理を行っておらず暴走してしま
ったとしてステップ8に進み、ステップ8において、ウ
ォッチドッグリセットIC10にウォッチドッグパルス
を所定時間以上送出せずにリセットパルスを出力させ、
このリセットパルスを受けた時点で、例えばプログラム
を停止すると共にアラームランプ等を点滅させて、プロ
グラムの暴走を知らしめる。
プログラム番地(1001h番地)が指定されていたタ
スク1のプログラム番地の範囲1000h番地〜1FF
Fh番地内に在ると判定した場合には、実際にタスク1
のプログラム処理を行っており暴走していないとしてス
テップ6に進み、ステップ6において、ウォッチドッグ
リセットIC10にウォッチドッグパルスを出力しリセ
ットパルスを出力させないようにしてステップ7に進
み、ステップ7において、格納してある次に実行すべき
指定タスクプログラムの待機プログラム番地及びレジス
タ、フラグ、スタックポインタ等を復帰させる。
待機プログラム番地及びレジスタ、フラグ、スタックポ
インタ等は未だ格納されていないので、上述のように、
タスク3のプログラムの一番最初のプログラム番地を待
機プログラム番地としてこの暴走検出フローを終了し
て、図2(c)に示されるタスク3のプログラムに移行
し、待機プログラム番地としての3000h番地からの
処理を行う。
順に従った処理の途中で、例えばタスク1が指定された
とすると、図3に示されるフローチャートに移行し、上
記の場合と同様にして、ステップ1、2を実行する。こ
こで、実行していたタスクプログラムはタスク3である
ので、ステップ2からステップ3、4、10に進み、ス
テップ10において、ステップ5と同様な判定を行い、
ステップ1において格納した待機プログラム番地が指定
されていたタスク3のプログラム番地の範囲3000h
番地〜3FFFh番地内に在るか否かを判定し、範囲3
000h番地〜3FFFh番地内にないと判定した場合
には、ステップ8に進み、ステップ8において、上記と
同様な異常処理を実行し、一方、範囲3000h番地〜
3FFFh番地内に在ると判定した場合には、ステップ
6、7に進み、ステップ7において、格納してあるタス
ク1の待機プログラム番地(1001h番地)及びレジ
スタ、フラグ、スタックポインタ等を復帰させてこの暴
走検出フローを終了して、図2(a)に示されるタスク
1のプログラムに移行し、待機プログラム番地としての
1001h番地からの処理を行う。すなわち、タスク1
は、前回終了したプログラム番地の次のプログラム番地
から処理が実行されるようになっていると共に、前回終
了時のレジスタ、フラグ、スタックポインタを用いて処
理を継続できるようになっている。
のタスクプログラムの指定があると、同様にして繰り返
される。
段5により、タスクプログラムの指定を行うと、切替手
段6により、実行中のタスクプログラムを指定したタス
クプログラムに切り替えるが、この時、判定手段8によ
り、待機プログラム番地が、切替前に指定されていたタ
スクプログラムのプログラム番地の範囲内に在るか否か
を判定し、範囲内にないと判定した場合には暴走だと
し、実行していたタスクプログラムのみに着目して暴走
の検出を行うよう構成しているので、タスクプログラム
の暴走検出が短時間でできるようになっており、従って
ウォッチドッグタイマのタイムアップ(所定時間間隔内
にウォッチドッグパルスを出力すること)を考慮して該
タスクプログラムの実行時間を短くする必要がなくなっ
ており、もって該タスクプログラムの実行時間を長くす
ることが可能になっている。
ログラムのみに着目して暴走の検出を行うよう構成して
いるので、休止・停止中のタスクの判定プログラムの必
要もなくなっている。
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変形可能であるというのはいうまでもなく、例え
ば、上記実施例においては、待機プログラム番地(最後
に実行したプログラムの次ぎに実行するプログラム番
地)が、切替前に指定されていたタスクプログラムのプ
ログラム番地の範囲内に在るか否かを判定するようにし
ているが、この待機プログラム番地に代えて、切替前に
実行していたタスクプログラムに基づいたプログラム番
地として、例えば最後に実行したプログラム番地や実行
していたあるプログラム番地を用いるようにしても良
い。
ッグリセットIC10を用いているが、このウォッチド
ッグリセットIC10を用いずに、判定手段8から直接
実行手段9に信号を送出するようにして、該実行手段9
において、正常・異常時の動作をさせるようにすること
も可能である。
クプログラムの暴走検出装置によれば、指令手段によ
り、タスクプログラムの指定を行うと、切替手段によ
り、実行中のタスクプログラムを指定したタスクプログ
ラムに切り替えるが、この時、判定手段により、切替前
に実行していたタスクプログラムに基づいたプログラム
番地が、切替前に指定されていたタスクプログラムのプ
ログラム番地の範囲内に在るか否かを判定し、範囲内に
ないと判定した場合には暴走だとし、実行していたタス
クプログラムのみに着目して暴走の検出を行うよう構成
したものであるから、タスクプログラムの暴走検出が短
時間でできるようになり、該タスクプログラムの実行時
間を長くすることが可能になる。また、このように、実
行していたタスクプログラムのみに着目して暴走の検出
を行うよう構成したものであるから、休止・停止中のタ
スクの判定プログラムは勿論必要ない。
ラムの暴走検出装置の全体構成を表したブロック図であ
る。
関連づけて表した各フローチャートである。
フローチャートである。
Claims (2)
- 【請求項1】 プログラムを複数のタスクプログラムに
分割し、各タスクプログラムを所定の順序で実行させる
ようにしたマルチタスクプログラムの暴走を検出する装
置であって、 タスクプログラムを記憶する複数のタスクプログラム記
憶手段と、 これらタスクプログラム記憶手段に記憶されたタスクプ
ログラムを、指令手段から指定されたタスクプログラム
に切り替える切替手段と、この切替手段による切り替え時に、切替前に 実行してい
たタスクプログラムに基づいたプログラム番地が、切替
前に指定されていたタスクプログラムのプログラム番地
の範囲内に在るか否かを判定し、範囲内にないと判定し
た場合には暴走と判定する判定手段と、 を具備したマルチタスクプログラムの暴走検出装置。 - 【請求項2】 請求項1記載のマルチタスクプログラム
の暴走検出装置において、 少なくともタスクプログラム切替時のプログラム番地を
待機プログラム番地として格納する格納手段と、 判定手段により、切替前に実行していたタスクプログラ
ムに基づいたプログラム番地が、切替前に指定されてい
たタスクプログラムのプログラム番地の範囲内にあると
判定した場合には、切替手段により切り替えられたタス
クプログラムにおける待機プログラム番地に移行してプ
ログラムを実行させる実行手段と、 を具備したマルチタスクプログラムの暴走検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6266167A JP2880658B2 (ja) | 1994-10-05 | 1994-10-05 | マルチタスクプログラムの暴走検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6266167A JP2880658B2 (ja) | 1994-10-05 | 1994-10-05 | マルチタスクプログラムの暴走検出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08106406A JPH08106406A (ja) | 1996-04-23 |
JP2880658B2 true JP2880658B2 (ja) | 1999-04-12 |
Family
ID=17427207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6266167A Expired - Fee Related JP2880658B2 (ja) | 1994-10-05 | 1994-10-05 | マルチタスクプログラムの暴走検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2880658B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5853691B2 (ja) | 2011-12-28 | 2016-02-09 | アイシン・エィ・ダブリュ株式会社 | 車両用制御装置および方法 |
-
1994
- 1994-10-05 JP JP6266167A patent/JP2880658B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08106406A (ja) | 1996-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4839895A (en) | Early failure detection system for multiprocessor system | |
JP2880658B2 (ja) | マルチタスクプログラムの暴走検出装置 | |
JPH064417A (ja) | メモリのバッテリバックアップ制御方式 | |
JP2684966B2 (ja) | 入出力処理装置のデバッグ装置 | |
JPH03144705A (ja) | プログラマブルコントローラの動作状態監視装置 | |
JPH1011320A (ja) | 計算機等の処理装置におけるromプログラムモニタ装置 | |
JPH11119992A (ja) | ファームウェアのトレース制御装置 | |
JP2001005689A (ja) | トレース採取回路 | |
JPS595931B2 (ja) | 演算処理システムのアドレス停止方式 | |
JPS61211746A (ja) | プログラム実行制御方式 | |
JPS631630B2 (ja) | ||
JPH0540510A (ja) | 制御装置 | |
JPH10143376A (ja) | 情報処理装置 | |
JPS6053887B2 (ja) | 情報処理システム | |
JPS59178547A (ja) | 命令リトライ方式 | |
JPS638841A (ja) | 割込み受取り装置 | |
JPH05257745A (ja) | マイクロコンピュータの暴走監視方式 | |
JPH0226249B2 (ja) | ||
JPS63223829A (ja) | 情報処理装置 | |
JPH04343148A (ja) | 組込型マルチタスクオペレーティングシステムの例外処理方法 | |
KR920006847A (ko) | 프로세서의 고장진단장치 및 그 진단방법 | |
JP2004005302A (ja) | モーションプログラムの実行装置およびデバック装置 | |
JPS59116858A (ja) | マシンチエツク割込み処理方式 | |
JPH06119169A (ja) | マイクロコンピュータ | |
JPH04290130A (ja) | プロセッサのエラー管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990119 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090129 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100129 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100129 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110129 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120129 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130129 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130129 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140129 Year of fee payment: 15 |
|
LAPS | Cancellation because of no payment of annual fees |