JPH05250209A - マイクロコンピュータの誤動作防止回路 - Google Patents

マイクロコンピュータの誤動作防止回路

Info

Publication number
JPH05250209A
JPH05250209A JP4051195A JP5119592A JPH05250209A JP H05250209 A JPH05250209 A JP H05250209A JP 4051195 A JP4051195 A JP 4051195A JP 5119592 A JP5119592 A JP 5119592A JP H05250209 A JPH05250209 A JP H05250209A
Authority
JP
Japan
Prior art keywords
address
data
branch
instruction
rom
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
Application number
JP4051195A
Other languages
English (en)
Inventor
Kazumi Goto
和美 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP4051195A priority Critical patent/JPH05250209A/ja
Publication of JPH05250209A publication Critical patent/JPH05250209A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】マイクロコンピュータにおいて、分岐命令が正
しく実行されなかった事による誤動作を防止する。 【構成】データROM1にはマイクロコンピュータを動
作させるソフトウェアが記憶されている。分岐情報RO
M2Bにはそのアドレスが分岐命令により分岐する分岐
先であるという情報が記憶されている。判定論理回路3
では分岐命令DBを検出し、分岐命令が実行されて、実
際に分岐した先のアドレスが分岐可能アドレスであるか
どうかを分岐情報ROM2から読み取り、正しく命令が
実行されているか判定している。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロコンピュータの
誤動作防止回路に関する。
【0002】
【従来の技術】マイクロコンピュータの誤動作防止回路
として、一般によく使用されているものに、図5
(a),(b)に示すようにウォッチドッグタイマ(以
下WDと略す)を使用する回路がある。WDタイマには
いくつかの方式があるが、最も強力なものとして、一定
時間が経過すると必ずシステムリセットをかけてしまう
ものがある。
【0003】これは図5(a)に示すように複数のフリ
ップ・フロップ(F/F)のカスケード接続で構成さ
れ、カウントを止めたり、カウント値をリセットする事
のできない非リセット型WDタイマ9を設け、このタイ
マ9がカウントアップするとWDシステムリセット信号
SEDをかけてしまう方法で、比較的短かい時間で処理
が終了する応用に広く使用されている。例をあげると、
リモコン用マイクロコンピュータでは、キー入力を判断
し、対応する送信データを出力するという短かい時間で
終了する断片的な動作を行なうためにこの方式が有効で
ある。しかしながら、この方法では、続けて動作可能な
時間が限られてしまうため、汎用のマイクロコンピュー
タでは使用されていない。
【0004】一般的に多く使用されている方式のWDタ
イマは、図5(b)に示すようにカウントを止めたり、
カウント値をリセットできるリセット型WDタイマ10
を内蔵し、データROM1に格納されているマイクロコ
ンピュータを動作させるソフトウェアプログラム中に、
ソフトウェアの実行時間を考慮してWDタイマ10がカ
ウントアップする寸前に各F/Fのリセット端Rを制御
して、WDタイマ10をリセットする命令を入れてお
き、ソフトウェアが意図した通りにプログラムが実行さ
れていれば、WDタイマ10をリセットする寸前のタイ
ミングでデコーダ31を介してデコードしてWDタイマ
10をリセットする。
【0005】ソフトウェアが意図した通りにプログラム
が実行されなかった場合には、WDタイマ10をリセッ
トする命令をデコードするタイミングがずれ、WDタイ
マ10をリセットすることができず、WDタイマ10が
カウントアップしてしまい、WD信号SWDが発生し
て、システムリセットをかけるというものである。
【0006】
【発明が解決しようとする課題】この従来のマイクロコ
ンピュータの誤動作防止回路では、図5(a)に示した
非リセット型WDタイマの場合は、一定時間が経過する
と必らず回路にリセットがかかるので、誤動作の代表的
な現象であるデットロック(全く動作しなくなる)や、
無限ループ(ソフトウェアの同じ場所をくり返し実行し
続ける)からは完璧に抜け出る事が可能であるが、WD
タイマがカウントアップする迄の間に処理を終了する必
要があるので、その応用分野が限定されるという問題が
あった。
【0007】また、図5(b)に示したリセット型WD
タイマの場合は汎用性はあるが、ソフトウェアの組み方
により全く効果のないものとなってしまう。例えば、無
限ループについて考えてみると、ループ中にWDタイマ
をリセットする命令が含まれていると、WDタイマはカ
ウントアップする事なく、すなわち無限ループから抜け
出る事はできない。
【0008】この様に、後者のWDタイマは、ソフトウ
ェアによって誤動作の検出率が大きく左右され、また検
出率の高いソフトウェアを組む事はかなり困難であると
いう問題があった。
【0009】
【課題を解決するための手段】本発明のマイクロコンピ
ュータの誤動作防止回路は、アドレス信号で指定された
アドレスの命令あるいは、データを出力するデータRO
Mと、該データROMと共通のアドレスを有しかつ分岐
命令等での分岐先である事を示すデータが格納されてい
る分岐情報ROMと、前記分岐命令を検出して該分岐命
令を正常に実行したか判定する判定論理回路を有して構
成されている。
【0010】また、本発明のマイクロコンピュータの誤
動作防止回路は、ニーモニック言語で記述されたプログ
ラムおよび分岐命令の分岐先である事を示すデータが格
納されているデータファイルと、ニーモニック言語と機
械語の対応が示されている対応データファイルと、該対
応データファイルを参照して前記データファイルのプロ
グラムを機械語に変換してデータROMおよび分岐情報
ROMのデータを作成する変換プログラムメモリを有し
て構成されている。
【0011】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。図1は本発明の第1の実施例を示すブロッ
ク図である。ROM1は、アドレス信号でSAで指定さ
れたアドレスの命令DIを読出して出力する。分岐情報
ROM2Bは、1ビットのROMで構成され、アドレス
信号SAで指定されたアドレスが分岐先であるか否かを
示すデータDBを出力する。判定回路3はデータROM
1からの命令DIをデコードし分岐命令であるか否かを
示すデータSBを出力するデコード回路31と、データ
SBでセットされ、データDBでリセットされるセット
・リセット(SR)ラッチ32で構成されている。
【0012】本実施例は、分岐命令による分岐先誤りが
起因する誤動作を防止するためのものである。まず始め
にマイクロコンピュータの誤動作が発生するメカニズム
について一例を示す。通常アドレス信号は(+1)ずつ
インクリメントしていくが、この動作はプログラムカウ
ンタと呼ばれるカウンタがカウントしているだけなの
で、突然誤ったアドレスを指すという現象は起り難い。
すなわち、アドレス0番地から最終番地までを順次実行
していくだけのソフトウェアプログラムであれば、この
誤動作が発生する可能性は低い。
【0013】しかしながら実際にはこの様なソフトウェ
アプログラムは少なく、通常のソフトウェアプログラム
では分岐命令とよばれるアドレスを任意のアドレスに変
更する命令を使用している。誤動作のうち重大な症状で
あるデットロックや無限ループが発生する原因の一つ
に、この原因命令が正常に実行されず、ソフトウェアプ
ログラムの予定した通りに実行されない場合がある。
【0014】次に、図2のプログラム模式図を参照しな
がらデッドロックが発生する場合について説明する。ア
ドレス045番地から098番地に分岐し、098番地
でタイマの割込み待ちとし、099番地でタイマをスタ
ートさせ、100番地のSTOP命令でタイマがカウン
トアップして割込みを発生するのを待つという待ち時間
を作る簡単なソフトウェアプログラム例である。
【0015】このソフトウェアプログラムで045番地
の分岐命令を実行する際に、正しい098番地ではなく
誤って099番地又は100番地に分岐すると、098
番地のタイマの割込みを待つという命令がぬけてしまう
ので、このソフトウェアプログラムは100番地でデッ
トロックしてしまう。分岐命令を実行すると、分岐先の
アドレスをバスに乗せ、プログラムカウンタまで転送
し、プログラムカウンタを書き換えるという動作が加わ
るため、通常のアドレスを(+1)するという動作に比
べると誤ったアドレスを指す確率は高い。これがデット
ロックの原因の全てではないが、少なくとも分岐命令で
分岐先を誤るとデットロックに入る可能性は高くなる。
【0016】次に図1のブロックの動作について説明す
る。図2の例では、アドレス098番地に分岐すればデ
ットロックに入る可能性はほとんどない。そこで本実施
例では、ソフトウェアプログラムを作成する際分岐デー
タROM2のアドレスのうち、分岐先となるアドレスに
“1”をセットし、そのアドレスが分岐命令により分岐
して来て良いアドレスであるかどうかを分岐ROM2に
予め格納しておく。一方判定論理回路3のデコード回路
31では分岐命令を抽出し、分岐命令を実行すると信号
SBをハイレベルとしてSRラッチ32をセットする。
【0017】次の命令を実行する際、分岐先のアドレス
が分岐可能アドレスであれば、分岐情報ROM2Bのそ
のアドレスのデータDBが“1”なのでSRラッチ32
はリセットされ判定信号SJはロウレベルとなるが、分
岐して来ない筈のアドレスであると、データDBは
“0”なのでSRラッチ32はリセットされず、判定信
号SJはハイレベルのままである。この判定論理回路3
から出力される判定信号SJによって、誤動作の原因の
一つである分岐先誤りを検出できる。
【0018】次に本発明のデータおよび分岐データRO
Mに格納されるデータの作成方法の一例について説明す
る。図3はROMデータ作成回路の模式ブロック図であ
る。ニーモニックデータファイル6は、ニーモニック言
語で記述されたソフトウェアプログラムである。機械語
データファィル7はニーモニック言語に対応する機械語
を示すデータである。変換プログラムメモリ8はニーモ
ニックデータファイル7を参照して機械語データファイ
ル6を機械語に変換するソフトウェアプログラムを格納
している。
【0019】通常、マイクロコンピュータを動作させる
ソフトウェアプログラムを作成する際に、始めから機械
語で記述を行なう事はない。システムの大きさにより異
なるが、マイクロコンピュータの分野では、ニーモニッ
ク言語と呼ばれる中級言語で記述し、パソコン上で機械
語にほん訳する場合が多い。本実施例のデータROM1
のデータも同様にニーモニック言語で記述され、ニーモ
ニックデータファイル6に格納され、ニーモニック言語
と機械語の対応が示されている機械語データファイル7
を参照して、変換プログラムを有するソフトウェア8に
よって機械語に変換される。
【0020】次に支岐情報ROM2Bに格納するROM
データの作成方法であるが、ニーモニック言語でソフト
ウェアプログラムを作成する際に、オペランド長を1ビ
ット増やし、そこにデータを書き込む事により容易に作
成する事が可能である。この場合、WDタイマのリセッ
ト命令を入れる時の様にソフトウェアプログラムの実行
時間を計算するなどの考慮もいらないため、作成者によ
り検出率が異なるという事も少ない。
【0021】次に本発明の第2の実施例について図4を
参照して説明する。データROM1については、第1の
実施例と同じである。分岐情報ROM2Cは1ビットの
ROMでアドレス信号SAによって指定されたアドレス
が、分岐不可能アドレスである事を示すデータDCを出
力する。
【0022】判定論理回路5はアドレス信号SAをラッ
チするラッチ回路51と、ラッチ回路51のデータLA
をアドレス信号SAが次のアドレスを指すまでの間にイ
ンクリメントするインクリメンタ52と、インクリメン
タ52のデータIAとアドレス信号SAを比較する比較
回路53と、比較回路53からの比較信号CAと分岐情
報ROM2CからのデータDCを入力とする2AND5
4から構成され、分岐不可能アドレスに分岐して来てい
ないか判定している。
【0023】次に本実施例の動作について前述の図2の
プログラム模式図を参照しながら説明する。本実施例で
はROM2Cのアドレスのうち分岐してくると誤動作の
原因となるアドレスに“1”をセットする。図2に示し
たソフトウェアではアドレス099番地、100番地が
これにあたる。これらのアドレスは前のアドレスから順
番に命令を実行して来なければ100番地でデットロッ
クしてしまう。
【0024】次に、そのアドレスにどこから移って来た
かを確認するために、判定論理回路5のラッチ回路5
1,インクリメンタ52そして比較回路53を使用す
る。まずラッチ回路51にアドレス信号SAをラッチす
る。次にラッチ回路51のラッチデータLAをアドレス
信号SAが次のアドレスを示すまでの間にインクリメン
ト(+1)する。
【0025】その後、比較回路53によりアドレス信号
SAが次のアドレスを指したタイミングでインクリメン
タ52のデータIAすなわち1命令前に実行したアドレ
スに+1したアドレスと現在のアドレスを比較し、同じ
であれば比較回路53の比較出力CAはロウレベルで分
岐していない事を示す。比較出力CAがハイレベルの場
合は、一命令前のアドレスに(+1)したアドレスと現
在のアドレスが一致しないという事なので、すなわちど
こかのアドレスか分岐して来た事になる。
【0026】一方、分岐情報ROM2CからはデータD
Cとして、現在指しているアドレスが分岐して来て良い
アドレスであれば“0”、また分岐不可アドレスであれ
ば“1”が出力されるので、2AND53により分岐情
報ROM2Cの出力データDCと比較回路53の比較出
力CAが共に“1”の時(分岐不可アドレスに分岐して
来た時)判定信号SJをハイレベルとして分岐の誤動作
を検出する事ができる。
【0027】第1の実施例では、分岐命令を実行した際
の分岐先誤りによる誤動作しか防止できないのに対し、
本実施例では誤動作により分岐命令以外の命令から分岐
して来た場合でも誤動作を検出できる。
【0028】
【発明の効果】以上説明したように本発明は、誤動作の
中でデットロックや無限ループに入る原因の一つである
分岐先誤りを判定論理回路を設けて検出する事により、
分岐先誤りに起因するマイクロコンピュータの誤動作を
防止するという効果を有する。
【図面の簡単な説明】
【図1】本発明の第1の実施例のブロック図である。
【図2】図1のブロックの動作を説明するためのプログ
ラム模式図である。
【図3】図1のROMデータ作成回路の模式ブロック図
である。
【図4】本発明の第2の実施例のブロック図である。
【図5】(a),(b)は従来のマイクロコンピュータ
の誤動作防止回路の一例のブロック図である。
【符号の説明】
1 データROM 2B,2C 分岐情報ROM 3,5 判定論理回路 6,7 データファイル 8 変換プログラムメモリ 31 デコード回路 32 SRラッチ 51 ラッチ回路 52 インクリメンタ 53 比較回路 54 2AND SA アドレス信号 SJ 判定信号 SWD ウォッチドッグ信号

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 アドレス信号で指定されたアドレスの命
    令あるいは、データを出力するデータROMと、該デー
    タROMと共通のアドレスを有しかつ分岐命令等での分
    岐先である事を示すデータが格納されている分岐情報R
    OMと、前記分岐命令を検出して該分岐命令を正常に実
    行したか判定する判定論理回路を有することを特徴とす
    るマイクロコンピュータの誤動作防止回路。
  2. 【請求項2】 ニーモニック言語で記述されたプログラ
    ムおよび分岐命令の分岐先である事を示すデータが格納
    されているデータファイルと、ニーモニック言語と機械
    語の対応が示されている対応データファイルと、該対応
    データファイルを参照して前記データファイルのプログ
    ラムを機械語に変換してデータROMおよび分岐情報R
    OMのデータを作成する変換プログラムメモリを有する
    ことを特徴とするマイクロコンピュータの誤動作防止回
    路。
JP4051195A 1992-03-10 1992-03-10 マイクロコンピュータの誤動作防止回路 Pending JPH05250209A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4051195A JPH05250209A (ja) 1992-03-10 1992-03-10 マイクロコンピュータの誤動作防止回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4051195A JPH05250209A (ja) 1992-03-10 1992-03-10 マイクロコンピュータの誤動作防止回路

Publications (1)

Publication Number Publication Date
JPH05250209A true JPH05250209A (ja) 1993-09-28

Family

ID=12880103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4051195A Pending JPH05250209A (ja) 1992-03-10 1992-03-10 マイクロコンピュータの誤動作防止回路

Country Status (1)

Country Link
JP (1) JPH05250209A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59111551A (ja) * 1982-12-16 1984-06-27 Toshiba Corp 動作記録装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59111551A (ja) * 1982-12-16 1984-06-27 Toshiba Corp 動作記録装置

Similar Documents

Publication Publication Date Title
US6681280B1 (en) Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
EP0372751B1 (en) Pipelined data-processing apparatus
KR100238917B1 (ko) 마이크로프로세서장치 및 그 동작 관리 방법
US6553512B1 (en) Method and apparatus for resolving CPU deadlocks
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
JPH05250209A (ja) マイクロコンピュータの誤動作防止回路
US5283891A (en) Error information saving apparatus of computer
US5790872A (en) Interrupt control handler for a RISC-type microprocessor
US20040019773A1 (en) Illegal instruction processing method and processor
JPS6336545B2 (ja)
JP2783285B2 (ja) 情報処理装置
JP2616542B2 (ja) 疑似障害発生システム
JP2001188688A (ja) 暴走検知回路
US6845443B2 (en) Method of processing a repeat block efficiently in a processor wherein the repeat count is not decremented in a specific case to prevent error in execution
JPH02300944A (ja) 暴走検出回路
JP2503210B2 (ja) マイクロプログラム制御装置
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JPS6161412B2 (ja)
JPH05257751A (ja) マイクロコンピュータ
JPH0784826A (ja) マイクロプロセッサ
JPS61202234A (ja) アドレス制御回路
JPH04353923A (ja) 電子計算機の並列命令実行方式
JPH0581013A (ja) プロセツサ
JPS61223952A (ja) デ−タ処理装置のリトライ機能確認方式
JPH05108384A (ja) マイクロプロセツサ

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980203