JPH09319621A - Circuit, method for detecting program runaway, software developing device for detection and software generating method for the same - Google Patents

Circuit, method for detecting program runaway, software developing device for detection and software generating method for the same

Info

Publication number
JPH09319621A
JPH09319621A JP8136693A JP13669396A JPH09319621A JP H09319621 A JPH09319621 A JP H09319621A JP 8136693 A JP8136693 A JP 8136693A JP 13669396 A JP13669396 A JP 13669396A JP H09319621 A JPH09319621 A JP H09319621A
Authority
JP
Japan
Prior art keywords
program
instruction
checksum
runaway
data
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.)
Granted
Application number
JP8136693A
Other languages
Japanese (ja)
Other versions
JP3088286B2 (en
Inventor
Hirofumi Yamamoto
宏文 山本
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 IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems Co Ltd
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 IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP08136693A priority Critical patent/JP3088286B2/en
Publication of JPH09319621A publication Critical patent/JPH09319621A/en
Application granted granted Critical
Publication of JP3088286B2 publication Critical patent/JP3088286B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To detect runaway by more precisely monitoring the normal execution of a program by cumulatively adding the values of a program counter at the time of program execution and comparing the result with a check sum integrated into an object program. SOLUTION: In order to detect the presence/absence of runaway of the program to be executed by a microcomputer, a program counter 1 counts the number of program execution addresses. Each time, the program counter 1 is incremented, an adder 10 cumulatively adds the contents of the program counter 1 and a check sum buffer 11 holds this added result. Therefore, when the contents of the program counter 1 are updated with the execution of the program and an instruction decoder 9 detects a check instruction from check sum data previously stored in an object program instruction, a comparator 12 compares the contents of the check sum buffer 11 with the operand part data of the check instruction so that a program runaway state can be detected.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明はプログラム暴走検出
回路および検出方法と検出用ソフトウェアの開発装置お
よびそのソフトウェア生成方法に係わり、特にマイクロ
コンピュータが実行するプログラムの暴走の有無を検出
するプログラム暴走検出回路および検出方法とそのプロ
グラム暴走検出回路内蔵のマイクロコンピュータの暴走
検出用オブジェクトプログラムを生成するソフトウエア
開発装置およびその検出用ソフトウェア生成方法に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a program runaway detection circuit, a detection method, a detection software development apparatus and a software generation method therefor, and more particularly to a program runaway detection circuit for detecting the presence or absence of runaway of a program executed by a microcomputer. The present invention relates to a software development device for generating an object program for runaway detection of a microcomputer having a runaway detection circuit and a software generation method for the detection.

【0002】[0002]

【従来の技術】ウォッチドッグタイマを使用した従来の
暴走検出の構成例を示した図6を参照すると、ウォッチ
ドッグタイマー15は一般的にはフリーランニングカウ
ンタにより構成され、キャンセルパルスを入力すること
によって、フリーランニングカウンタがクリアされる。
2. Description of the Related Art Referring to FIG. 6 showing an example of a conventional configuration for detecting runaway using a watchdog timer, a watchdog timer 15 is generally composed of a free running counter, and by inputting a cancel pulse. , The free running counter is cleared.

【0003】フリーランニングカウンタがオーバーフロ
ーすると、リセット信号RESETバーを出力する。
When the free running counter overflows, a reset signal RESET bar is output.

【0004】フリーランニングカウンタの働きをするも
のとして、デジタル・カウンタを用いるものの他、容量
素子および抵抗素子の充放電を利用するのもがある。
As a function of a free-running counter, there is a method of using charge / discharge of a capacitance element and a resistance element in addition to a method of using a digital counter.

【0005】一般的なマイクロコンピュータ16は、リ
セット信号RESETバー入力やポート出力を備え、そ
の内部は、主要部のみ図示してある。プログラムカウン
タ161、ROM部162、命令デコーダ163等から
なり、ROM部162はアドレス・ラッチ164とアド
レス・デコーダ165とROMセルアレイ166とセン
スアンプ167と出力バッファ168とからなる。マイ
クロコンピュータ16のリセット入力端はウォッチドッ
グタイマ15のリセット出力端に接続され、マイクロコ
ンピュータ16のキャンセルパルス出力端はウォッチド
ッグタイマ15のキャンセルパルス入力端に接続され
る。
A general microcomputer 16 is provided with a reset signal RESET bar input and a port output, and inside thereof, only main parts are shown. It comprises a program counter 161, a ROM section 162, an instruction decoder 163, etc. The ROM section 162 comprises an address latch 164, an address decoder 165, a ROM cell array 166, a sense amplifier 167 and an output buffer 168. The reset input end of the microcomputer 16 is connected to the reset output end of the watchdog timer 15, and the cancel pulse output end of the microcomputer 16 is connected to the cancel pulse input end of the watchdog timer 15.

【0006】このような、ウォッチドッグタイマ15を
使用してマイクロコンピュータ16の暴走を検出する方
法のフローチャートを示した図7(a)およびその動作
タイミングチャートを示した図7(b)を参照すると、
マイクロコンピュータ16は、イニシャライズ後(S3
1)の通常動作時、タイミング検出時間を経過したか否
かを判断し(S32)、所定の時間、つまりメイン周期
が経過するとメイン周期ごとにウォッチドッグタイマ1
5のキャンセルパルスを汎用ポートから出力した(S3
3)後に、メイン処理を実行する(S34)。
Referring to FIG. 7A showing a flowchart of a method of detecting runaway of the microcomputer 16 using the watchdog timer 15 and FIG. 7B showing an operation timing chart thereof. ,
The microcomputer 16 performs initialization (S3
During the normal operation of 1), it is determined whether or not the timing detection time has elapsed (S32), and when a predetermined time, that is, the main cycle elapses, the watchdog timer 1 is set for each main cycle.
The cancel pulse of 5 is output from the general-purpose port (S3
After 3), main processing is executed (S34).

【0007】メイン周期実行中にマイクロコンピュータ
1が暴走する(例えば、メイン周期の中で無限ループと
なった場合)と、それ以後キャンセルパルスを出力しな
くなる。
When the microcomputer 1 runs out of control during execution of the main cycle (for example, when an infinite loop occurs in the main cycle), the cancel pulse is not output thereafter.

【0008】ウォッチドッグタイマ15はキャンセルパ
ルスが入力されなくなると、暴走検出時間経過後、リセ
ット信号を出力する。
When the cancel pulse is no longer input, the watchdog timer 15 outputs a reset signal after the runaway detection time has elapsed.

【0009】マイクロコンピュータ16は、リセット信
号RESETバーが入力されると、リセットされ、0番
地からプログラムを正常に実行する。
When the reset signal RESET bar is input, the microcomputer 16 is reset and normally executes the program from address 0.

【0010】更に、従来の暴走検出方法の一例が特開平
5−257746号公報に記載されている。同公報記載
の暴走検出回路およびそれを用いたソフトウェア開発装
置の構成を示した図8を参照すると、この暴走検出回路
は、プログラム構造に影響されることなくプログラム暴
走状態を検出することを目的としており、その暴走検出
動作は、プログラムカウンタ20を上位部21と下位部
22に分け、予め上位部21の内容にインクリメント部
23で+1してラッチ26に格納しておき、プログラム
実行に伴ってプログラムカウンタ20がインクリメント
され、下位部22が定数格納部24の値と等しくなった
かどうかを比較器25で比較し、等しくなったとき、ま
たは下位部22から上位部21へ桁上がりが発生したと
きに、プログラカウンタ20の上位部21とラッチ26
の内容が等しいかを暴走判定部28で検出する。
Further, an example of a conventional runaway detection method is described in Japanese Patent Laid-Open No. 5-257746. Referring to FIG. 8 showing the configuration of the runaway detection circuit and the software development apparatus using the runaway detection circuit described in the publication, this runaway detection circuit aims at detecting the program runaway state without being affected by the program structure. In the runaway detection operation, the program counter 20 is divided into an upper part 21 and a lower part 22, and the contents of the upper part 21 are incremented by 1 in the increment part 23 and stored in the latch 26 in advance. The counter 20 is incremented, and the comparator 25 compares whether or not the lower part 22 becomes equal to the value of the constant storage part 24, and when they become equal, or when a carry occurs from the lower part 22 to the upper part 21. , The upper portion 21 of the programming counter 20 and the latch 26
The runaway determination unit 28 detects whether the contents of the above are the same.

【0011】さらに、分岐命令が実行された場合は、正
常動作を継続していても、ラッチしていた内容と、分岐
後のプログラムカウンタ上位部21の内容が必ずしも一
致しないため、分岐命令実行時にフラグ29をセット
し、分岐命令直後は比較しないようにしている。
Further, when the branch instruction is executed, the latched contents and the contents of the program counter upper part 21 after the branch do not always match even if the normal operation is continued. The flag 29 is set so that the comparison is not performed immediately after the branch instruction.

【0012】[0012]

【発明が解決しようとする課題】上述した従来のウォッ
チドッグタイマを用いた暴走検出回路および暴走検出方
法は、プログラムが暴走しキャンセルパルスの出力処理
を含んで無限ループに入った場合、暴走しているにもか
かわらずキャンセルパルスを発生し続けるため暴走を検
出できない。
The above-described conventional runaway detection circuit and runaway detection method using a watchdog timer causes a runaway when a program goes into an infinite loop including a cancellation pulse output process. However, the runaway cannot be detected because the cancel pulse continues to be generated.

【0013】また、プログラムの暴走が一番地飛んでし
まっただけで、プログラムの実行を大きく変化させなか
った場合、キャンセルパルスの停止に至らず、暴走を検
出できない。
Further, if the program runaway has only jumped to the ground and the program execution is not changed significantly, the cancel pulse is not stopped and the runaway cannot be detected.

【0014】さらに、図8に示した従来の暴走検出回路
および暴走検出方法は、プログラムカウンタ20の上位
部21の内容が正しいか否かを確認しているのみで、下
位部22がカウントを誤ったとき、すなわちプログラム
の暴走が一番地飛んでしまう等のときには、その誤りを
検出できない。
Further, the conventional runaway detecting circuit and runaway detecting method shown in FIG. 8 only confirms whether or not the contents of the upper part 21 of the program counter 20 are correct, and the lower part 22 makes an incorrect count. When the program runs out of control, the error cannot be detected.

【0015】さらにまた、分岐命令実行時は、フラグ2
9をセットし、比較結果が必ず正常(暴走していない)
を出力する構成となっており、分岐命令実行時に正常に
分岐したか否かを検出できない欠点がある。
Furthermore, when the branch instruction is executed, the flag 2
Set 9 and the comparison result is always normal (not runaway)
Is output, and there is a drawback that it cannot detect whether or not the branch is normally executed when the branch instruction is executed.

【0016】本発明の目的は、上述した欠点に鑑みなさ
れたものであり、プログラム実行時のプログラムカウン
タの値を累積加算しオブジェクトプログラムに組み込ま
れたチェックサムと比較することにより、プログラムの
正常実行をより詳細に監視し、暴走を検出する暴走検出
回路および暴走検出方法と、この暴走検出回路を内蔵し
たマイクロコンプータのオブジェクトプログラムを生成
するソフトウエア開発装置およびこの装置におけるチェ
ックサム算出をするためのソフトウェア生成方法を提供
することにある。
The object of the present invention has been made in view of the above-mentioned drawbacks, and the value of the program counter at the time of program execution is cumulatively added and compared with the checksum incorporated in the object program to execute the program normally. A runaway detection circuit and a runaway detection method for monitoring runaway in more detail and detecting a runaway, a software development device for generating an object program of a micro computer incorporating this runaway detection circuit, and a checksum calculation for this device. It is to provide a software generation method.

【0017】[0017]

【課題を開決するための手段】本発明のプログラム暴走
検出回路の特徴は、マイクロコンピュータが実行するプ
ログラムの暴走有無を検出するプログラム暴走検出回路
において、プログラム実行アドレスを計数するプログラ
ムカウンタと、前記プログラムカウンタがインクリメン
トされるごとに前記プログラムカウンタの内容を累積加
算する加算器と、この加算結果を保持するチェックサム
バッファと、予めオブジェクトプログラム命令に格納さ
れたチェックサムデータと前記チェックサムバッファか
らの出力データとを比較する比較器とからなることにあ
る。
The program runaway detection circuit of the present invention is characterized by a program counter for counting program execution addresses in a program runaway detection circuit for detecting the presence or absence of runaway of a program executed by a microcomputer, and the program. An adder that cumulatively adds the contents of the program counter each time the counter is incremented, a checksum buffer that holds the addition result, checksum data stored in advance in an object program instruction, and output from the checksum buffer And a comparator for comparing the data.

【0018】また、前記比較器の不一致出力信号をリセ
ット信号として用いて、前記プログラムの暴走検出と同
時に前記マイクロコンピュータをリセットする。
Further, the mismatch output signal of the comparator is used as a reset signal to reset the microcomputer simultaneously with the detection of runaway of the program.

【0019】さらに、前記オブジェクトプログラム命令
に格納された前記チェックサムデータが、前記プログラ
ム実行アドレスを累積加算したデータであるようにす
る。
Further, the checksum data stored in the object program instruction is data obtained by cumulatively adding the program execution address.

【0020】さらにまた、プログラムの分岐命令実行時
には、前記チェックサムバッファをクリアする。
Furthermore, the checksum buffer is cleared when a branch instruction of the program is executed.

【0021】本発明のプログラム暴走検出方法の特徴
は、プログラム実行アドレスを計数するプログラムカウ
ント手段と、このプログラムカウント手段がインクリメ
ントされるごとに前記プログラムカウント手段のカウン
トされた内容を累積加算する加算手段と、この加算手段
の加算結果を保持するチェックサムバッファ手段と、予
めオブジェクトプログラム命令に格納されたチェックサ
ムデータと前記チェックサムバッファ手段からの出力デ
ータとを比較する比較手段とを用いて、前記プログラム
カウント手段をクリアするステップと、前記チェックサ
ムバッファ手段をクリアするステップと、前記プログラ
ムカウント手段の指示する1命令分を読み込むステップ
と、読み込んだ前記命令が分岐命令かそれ以外の命令か
を判定するステップと、分岐命令であれば前記チェック
サムデータをクリアし、それ以外の命令であればこの命
令のアドレス値を前記チェックサムバッフア手段の内容
に加算するステップと、読み込んだ前記命令のオペレー
ションコードを前記比較手段に出力を指示するチェック
命令であるか否かを判断するステップと、前記判断結果
が前記チェック命令でなければ前記1命令分を読み込む
ステップに戻して次の命令を読み込むステップと、前記
判断結果が前記チェック命令であれば前記チェックサム
データと前記チェック命令のオペランド値を比較するス
テップとからなり、前記比較の結果不一致であればその
不一致信号によりマイクロコンピュータが実行するプロ
グラムの暴走を検出することにある。
The program runaway detecting method of the present invention is characterized by a program counting means for counting program execution addresses and an adding means for cumulatively adding the counted contents of the program counting means each time the program counting means is incremented. And a checksum buffer means for holding the addition result of the adding means and a comparing means for comparing the checksum data stored in advance in the object program instruction with the output data from the checksum buffer means. Clearing the program count means, clearing the checksum buffer means, reading one instruction designated by the program count means, and determining whether the read instruction is a branch instruction or another instruction Steps to do If the instruction is a branch instruction, the checksum data is cleared, and if it is another instruction, the step of adding the address value of this instruction to the contents of the checksum buffer means, and the operation code of the instruction read A step of judging whether or not it is a check command for instructing the comparing means to output, a step of returning to the step of reading the one command and reading the next command if the judgment result is not the check command, the judgment If the result is the check instruction, it comprises the step of comparing the checksum data with the operand value of the check instruction. If the result of the comparison is a mismatch, the runaway of the program executed by the microcomputer is detected by the mismatch signal. Especially.

【0022】本発明のプログラム暴走の検出用ソフトウ
エアの開発装置の特徴は、プログラム実行アドレスを計
数するプログラムカウンタと、前記プログラムカウンタ
がインクリメントされるごとに前記プログラムカウンタ
の内容を累積加算する加算器と、この加算結果を保持す
るチェックサムバッファと、予めオブジェクトプログラ
ム命令に格納されたチェックサムデータと前記チェック
サムバッファからの出力データとを比較する比較器とか
らなるプログラム暴走検出回路を内蔵したマイクロコン
ピュータの前記オブジェクトプログラムを生成するソフ
トウエア開発装置であって、入力されるソースプログラ
ム命令を解析し、プログラム実行における実行アドレス
のチェックサムデータを算出し、この算出されたチェッ
クサムデータをオブジェクトプログラム命令に組み込む
命令組み込み手段を備えることにある。
The feature of the program runaway detection software development apparatus of the present invention is that a program counter for counting program execution addresses and an adder for cumulatively adding the contents of the program counter each time the program counter is incremented. And a checksum buffer for holding the addition result, and a comparator for comparing the checksum data stored in advance in the object program instruction with the output data from the checksum buffer. A software development device for generating the object program of a computer, which analyzes an input source program instruction, calculates checksum data of an execution address in program execution, and calculates this checksum data. Lies in comprising instructions incorporation unit that incorporates the object program instructions.

【0023】また、前記オブジェクトプログラムに組み
込まれるチェック命令およびチェック命令のオペランド
部になる前記チェックサムデータは、ソースプログラム
をオブジェクト変換するときにこのオブジェクトプログ
ラムを絶対アドレス空間にマッピングして前記チェック
命令の前記オペランド部を生成する。
Further, the check instruction incorporated in the object program and the check sum data used as the operand portion of the check instruction are mapped to the absolute address space of the source program when the source program is converted into an object and the check instruction data of the check instruction is stored. The operand part is generated.

【0024】本発明のプログラム暴走の検出用ソフトウ
ェア生成方法の特徴は、プログラム実行アドレスを計数
するプログラムカウント手段と、前記プログラムカウン
ト手段がインクリメントされるごとに前記プログラムカ
ウンタの内容を累積加算する加算手段と、この加算手段
の加算結果を保持するチェックサムバッファ手段と、予
めオブジェクトプログラム命令に格納されたチェックサ
ムデータと前記チェックサムバッファ手段からの出力デ
ータとを比較する比較手段とからなるプログラム暴走検
出手段を用いるマイクロコンピュータのオブジェクトプ
ログラムを生成するソフトウエア開発方法であって、前
記チェックサムデータをクリアするステップと、ソース
プログラムを1命令分読み込み分岐命令か否かを判断す
るステップと、この判断結果が否の場合、割り当てられ
た絶対アドレスを前記チェックサムデータに加算するス
テップと、前記チェック命令であるか否かを判断するス
テップと、この判断結果が否の場合、前記ソースプログ
ラムを1命令分読み込むステップへ戻し、前記判断結果
が前記チェック命令であると判断した場合は累積加算さ
れた前記チェックサムデータの値を前記チェック命令の
オペランド部に格納するステップと、前記分岐命令であ
るか否かの判断において分岐命令である場合は前記チェ
ックサムデータをクリアするステップとからなることに
ある。
The feature of the software runaway detection software generation method of the present invention is that the program count means for counting the program execution address and the addition means for cumulatively adding the contents of the program counter each time the program count means is incremented. And program runaway detection comprising checksum buffer means for holding the addition result of the addition means and comparison means for comparing the checksum data stored in advance in the object program instruction with the output data from the checksum buffer means. A software development method for generating an object program for a microcomputer using the means, comprising: a step of clearing the checksum data; a step of reading the source program for one instruction and determining whether or not it is a branch instruction. If the determination result is negative, the step of adding the assigned absolute address to the checksum data, the step of determining whether or not the check instruction is made, and if the determination result is negative, the source program is set to 1 Returning to the step of reading instructions, if the judgment result is the check instruction, the step of storing the cumulatively added value of the checksum data in the operand part of the check instruction; If it is a branch instruction in the judgment as to whether or not it is a branch instruction, the checksum data is cleared.

【0025】[0025]

【発明の実施の形態】次に、本発明のプログラム暴走検
出回路および暴走検出と検出用ソフトウェアの開発装置
およびそのソフトウェア生成方法を図面を参照しながら
説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Next, a program runaway detection circuit, a runaway detection and detection software development apparatus and a software generation method therefor according to the present invention will be described with reference to the drawings.

【0026】まず、第1の実施の形態のブロック図を示
した図1を参照すると、現在実行中のROMアドレスあ
るいは次に実行すべきROMアドレスを格納し、命令実
行ごとにインクリメント(1を加算する)されるプログ
ラムカウンタ1と、プログラムカウンタ1の内容を取り
込み、一時保持し、アドレス・デコーダ3へ出力するア
ドレス・ラッチ2と、アドレス・ラッチ2からの入力デ
ータにより実行すべきアドレスを選択し、ROMセルア
レイ4のアドレス線を活性化するアドレス・デコーダ3
と、オペコード格納部5とオペランド格納部6からな
り、予めプログラムから変換された命令データ群を格納
するとともに、アドレス・デコーダ3により活性化され
たアドレスに格納されているオペコードおよびオペラン
ド・データをセンスアンプ7に出力するROMセルアレ
イ4と、プログラムの命令コードを格納するオペコード
格納部5と、命令のオペランドを格納するオペランド格
納部6と、ROMセルアレイ4より出力されたオペコー
ドおよびオペランド・データを入力し、出力バッファ8
に出力するセンスアンプ7と、センスアンプ7が出力す
るオペコードおよびオペランド・データを入力し、増幅
した後、命令デコーダ9に出力する出力バッファ8と、
出力バッファ8から入力されるオペコードを解釈すると
ともに、更にオペコードを解釈した結果、出力バッファ
8から出力されるオペランド・データを比較器12に入
力することを指示する命令(以下、チェック命令と称
す)を検出する命令デコーダ9と、プログラムカウンタ
1とチェックサムバッファ11の内容を入力し、加算し
た後、加算結果をチェックサムバッファ11に出力する
加算器10と、加算器10から入力されるデータを随時
記憶するとともに、記憶内容を比較器12に出力するチ
ェックサムバッファ11と、出力バッファ8の命令オペ
ランド部およびチェックサムバッファ11のデータをそ
れぞれスイッチ13および14を介して入力し、比較結
果を出力する比較器12とを備えて構成される。
First, referring to FIG. 1 showing a block diagram of the first embodiment, a ROM address which is currently being executed or a ROM address which is to be executed next is stored and incremented (addition of 1 is performed at each instruction execution. Selected), the address of the program counter 1 fetched by the program counter 1, temporarily held, and output to the address decoder 3, and the address to be executed is selected by the input data from the address latch 2. , Address decoder 3 for activating address lines of ROM cell array 4
And an opcode storage unit 5 and an operand storage unit 6, which stores a group of instruction data converted from a program in advance and senses the opcode and operand data stored at the address activated by the address decoder 3. The ROM cell array 4 that outputs to the amplifier 7, the operation code storage unit 5 that stores the instruction code of the program, the operand storage unit 6 that stores the operand of the instruction, and the operation code and operand data output from the ROM cell array 4 are input. , Output buffer 8
A sense amplifier 7 for outputting to, and an output buffer 8 for inputting and amplifying the operation code and operand data output by the sense amplifier 7 and then outputting to the instruction decoder 9;
An instruction (hereinafter referred to as a check instruction) that interprets the opcode input from the output buffer 8 and further inputs the operand data output from the output buffer 8 as a result of the interpretation of the opcode. The contents of the program counter 1 and the checksum buffer 11 are input and added, and the adder 10 that outputs the addition result to the checksum buffer 11 and the data input from the adder 10 A checksum buffer 11 that stores the contents as needed and outputs the stored contents to the comparator 12, the instruction operand portion of the output buffer 8 and the data of the checksum buffer 11 are input via the switches 13 and 14, respectively, and the comparison result is output. And a comparator 12 that operates.

【0027】ここで、加算器10のビット数は任意であ
るが、プログラムカウンタ1のビット数と同じかそれ以
上が望ましく、また、チェックサムバッファ11のビッ
ト数は任意であるが、プログラムカウンタ1のビット数
と同じかそれ以上が望ましい。
Although the number of bits of the adder 10 is arbitrary, it is preferably equal to or larger than the number of bits of the program counter 1, and the number of bits of the checksum buffer 11 is arbitrary. It is preferable that the number of bits is equal to or more.

【0028】上述した構成からなる暴走検出回路におい
て、プログラム実行に伴ってプログラムカウンタ1の内
容が更新されていき、更新内容を加算し、加算結果をチ
ェックサムバッファ11に随時記憶し、チェック命令を
命令デコーダ9が検出すると、チェックサムバッファ1
1の内容とチェック命令のオペランド部データとを比較
器12で比較することにより、プログラム暴走状態を検
出する。
In the runaway detection circuit having the above-mentioned configuration, the contents of the program counter 1 are updated as the program is executed, the updated contents are added, the addition result is stored in the checksum buffer 11 at any time, and the check command is issued. When the instruction decoder 9 detects, the checksum buffer 1
By comparing the contents of 1 and the operand data of the check instruction with the comparator 12, the program runaway state is detected.

【0029】このような暴走検出回路を用いる具体的な
動作について、簡単なプログラム例を用いて説明する。
暴走回路説明用のプログラムを示した図2およびプログ
ラム暴走検出方法のフローチャートを示した図3を併せ
て参照すると、マイクロコンピュータがリセットされた
後、プログラムカウンタ1およびチェックサムバッファ
11の内容は“0000h”となる(S1、S2)。
A specific operation using such a runaway detection circuit will be described using a simple program example.
Referring also to FIG. 2 showing a program for explaining the runaway circuit and FIG. 3 showing a flow chart of the program runaway detection method, after the microcomputer is reset, the contents of the program counter 1 and the checksum buffer 11 are “0000h. "(S1, S2).

【0030】プログラムカウンタ1は、その後アドレス
分岐しない命令、例えばNOP命令や転送命令などを1
命令分ずつ読み込み実行するごとにインクリメントされ
る(S3、S4)。プログラムカウンタ1が“0000
h”のとき、チェックサムバッファは“0000h”と
なる。
The program counter 1 executes an instruction that does not branch an address thereafter, such as a NOP instruction or a transfer instruction.
It is incremented each time the instruction is read and executed (S3, S4). Program counter 1 is “0000
When it is "h", the checksum buffer is "0000h".

【0031】すなわち、プログラムカウンタ1が“00
00h”で0番地を実行中に、プログラムカウンタ1の
内容“0000h”とチェックサムバッファ11の内容
“0000h”を加算器10によって加算し、加算結果
の“0000h”をチェックサムバッファ11に格納す
る(S5)。
That is, the program counter 1 is "00".
During execution of address 0 at "00h", the content "0000h" of the program counter 1 and the content "0000h" of the checksum buffer 11 are added by the adder 10 and the addition result "0000h" is stored in the checksum buffer 11. (S5).

【0032】次にプログラムカウンタ1がインクリメン
トされて“0001h”となる。
Next, the program counter 1 is incremented to "0001h".

【0033】プログラムカウンタ1が“0001h”の
とき、チェックサムバッファ11は“0001h”とな
る。
When the program counter 1 is "0001h", the checksum buffer 11 is "0001h".

【0034】すなわち、プログラムカウンタ1が“00
01h”で1番地を実行中に、プログラムカウンタ1の
内容“0001h”とチェックサムバッファ11の内容
“0000h”を加算器10によって加算し、加算結果
の“0001h”をチェックサムバッファ11に格納す
る。
That is, the program counter 1 is "00".
While the address 1 is being executed with 01h, the content “0001h” of the program counter 1 and the content “0000h” of the checksum buffer 11 are added by the adder 10, and the addition result “0001h” is stored in the checksum buffer 11. .

【0035】さらに、プログラムカウンタ1がインクリ
メントされて“0002h”となる。プログラムカウン
タ1が“0002h”のとき、チェックサムバッファ1
1は“0003h”となる。
Further, the program counter 1 is incremented to "0002h". Checksum buffer 1 when the program counter 1 is "0002h"
1 becomes “0003h”.

【0036】すなわち、プログラムカウンタ1が“00
02h”で2番地を実行中に、プログラムカウンタ1の
内容“0002h”とチェックサムバッファ11の内容
“0001h”を加算器10によって加算し、加算結果
の“0003h”をチェックサムバッファ11に格納す
る。
That is, the program counter 1 is "00".
While address 2 is being executed at 02h, the content “0002h” of the program counter 1 and the content “0001h” of the checksum buffer 11 are added by the adder 10, and the addition result “0003h” is stored in the checksum buffer 11. .

【0037】さらに、プログラムカウンタ1がインクリ
メントされて“0003h”となる。3番地にはチェッ
ク命令とチェックサムデータが格納されている。プログ
ラムカウンタ1が“0003h”のとき、チェックサム
バッファ11は“0006h”となる。
Further, the program counter 1 is incremented to "0003h". A check command and checksum data are stored at address 3. When the program counter 1 is "0003h", the checksum buffer 11 is "0006h".

【0038】すなわち、プログラムカウンタ1が“00
02h”で2番地を実行中に、プログラムカウンタ1の
内容“0002h”とチェックサムバッファ11の内容
“0001h”とを加算器10によって加算し、加算結
果の“0006h”をチェックサムバッファ11に格納
する。
That is, the program counter 1 is "00".
While address 2 is being executed at "02h", the contents "0002h" of the program counter 1 and the contents "0001h" of the checksum buffer 11 are added by the adder 10, and the addition result "0006h" is stored in the checksum buffer 11. To do.

【0039】同時(プログラムカウンタ=“0003
h”)に、チェック命令であることを命令デコーダ9が
解釈すると(S6)、チェックサムバッファ11の内容
(=“0006h”)とチェック命令のオペランド部の
値(=“0006h”)とを比較器12が比較する(S
7)。
Simultaneously (program counter = “0003
When the instruction decoder 9 interprets that the instruction is a check instruction (h ") (S6), the content of the checksum buffer 11 (=" 0006h ") is compared with the value of the operand portion of the check instruction (=" 0006h "). Vessel 12 compares (S
7).

【0040】チェックサムバッファ11の内容およびチ
ェック命令のオペランド部の値が同一であったので、比
較器12から一致信号が出力される(S8)。
Since the contents of the checksum buffer 11 and the value of the operand part of the check instruction are the same, the coincidence signal is output from the comparator 12 (S8).

【0041】チェック命令を実行後に、チェックサムバ
ッファ11の内容は“0000h”に自動的に設定(ク
リア)され(S10)、プログラムカウンタは1がイン
クリメントされ(S11)、それ以後は、上述したした
動作と同様な動作が繰り返される。
After executing the check command, the content of the checksum buffer 11 is automatically set (cleared) to "0000h" (S10), the program counter is incremented by 1 (S11), and thereafter, as described above. The same operation as the operation is repeated.

【0042】上述した動作は、プログラムカウンタ1
が、0000h→0001h→0002h→0003h
と正常に変化した場合について説明した。
The above-described operation is performed by the program counter 1
But 0000h → 0001h → 0002h → 0003h
And explained about the case of normal change.

【0043】次に、プログラムカウンタ1が正常に変化
しなかった場合、例えば0000h→0002h→00
03hと変化した動作(0001hを飛ばしてしまった
場合)について説明する。
Next, when the program counter 1 does not change normally, for example, 0000h → 0002h → 00
The operation changed from 03h (when 0001h is skipped) will be described.

【0044】マイクロコンピュータがリセットされる
と、上述した説明と同様に、プログラムカウンタ1およ
びチェックサムバッファ11の内容は“0000h”と
なる(S1、S2)。
When the microcomputer is reset, the contents of the program counter 1 and the checksum buffer 11 become "0000h" as in the above description (S1, S2).

【0045】次に、プログラムカウンタ1がインクリメ
ントされて“0001h”となるべきところが、ノイズ
等の外乱により突如変化し、“0002h”になったと
する。
Next, it is assumed that the place where the program counter 1 should be incremented to "0001h" suddenly changes to "0002h" due to a disturbance such as noise.

【0046】このとき、プログラムカウンタ1が“00
02h”で2番地を実行中、プログラムカウンタ1の内
容“0002h”とチェックサムバッファ11の内容
“0000h”を加算器10によって加算し、加算結果
の“0002h”をチェックサムバッファ11に格納す
る(S5)。
At this time, the program counter 1 is set to "00".
While address 2 is being executed at 02h, the content "0002h" of the program counter 1 and the content "0000h" of the checksum buffer 11 are added by the adder 10, and the addition result "0002h" is stored in the checksum buffer 11 ( S5).

【0047】さらに、プログラムカウンタ1がインクリ
メントされて“0003h”となる。3番地にはチェッ
ク命令とチェックサムデータが格納されている。プログ
ラムカウンタ1が“0003h”で3番地を実行中、プ
ログラムカウンタ1の内容“0003h”とチェックサ
ムバッファ11の内容“0002h”とを加算器12に
よって加算し、加算結果の“0005h”をチェックサ
ムバッファ11に格納する(S5)。
Further, the program counter 1 is incremented to "0003h". A check command and checksum data are stored at address 3. When the program counter 1 is "0003h" and the third address is being executed, the content "0003h" of the program counter 1 and the content "0002h" of the checksum buffer 11 are added by the adder 12, and the addition result "0005h" is checksummed. The data is stored in the buffer 11 (S5).

【0048】同時(プログラムカウンタ=“0003
h”)に、チェック命令であることを命令デコーダ9が
解釈すると(S6)、チェックサムバッファ11内容
(=“0005h”)とチェック命令のオペランド部の
値(=“0006h”)を比較器12が比較する(S
7)。
Simultaneously (program counter = “0003
When the instruction decoder 9 interprets that the instruction is a check instruction (h ”) (S6), the content of the checksum buffer 11 (=“ 0005h ”) and the value of the operand portion of the check instruction (=“ 0006h ”) are compared by the comparator 12 Compare (S
7).

【0049】チェックサムバッファの内容と、チェック
命令のオペランド部の値が不一致であったので、比較器
12から不一致信号(リセット信号)が出力される(S
9)。
Since the contents of the checksum buffer and the value of the operand part of the check instruction do not match, the comparator 12 outputs a mismatch signal (reset signal) (S).
9).

【0050】このように、プログラムカウンタ1の値が
ノイズ等の外乱により、意図しない異常な値に変化した
場合に、異常であることを検出し、比較器12から不一
致信号を出力することができる。
As described above, when the value of the program counter 1 changes to an abnormal value which is not intended due to disturbance such as noise, it is possible to detect the abnormality and output the mismatch signal from the comparator 12. .

【0051】さらに、比較器12の出力をマイクロコン
ピュータのリセット信号として用いれば、異常検出と同
時に、自動的にマイクロコンピュータをリセットするこ
とができる。
Further, if the output of the comparator 12 is used as a reset signal for the microcomputer, the microcomputer can be automatically reset at the same time when the abnormality is detected.

【0052】上述した第1の実施の形態では、アドレス
分岐しない命令、例えばNOP命令や転送命令などを実
行する場合の動作について説明した。通常は当然なが
ら、プログラムには分岐命令も含まれているので、第2
の実施例ではこの分岐命令実行時の動作について説明す
る。
In the above-described first embodiment, the operation in the case of executing an instruction that does not cause an address branch, such as a NOP instruction or a transfer instruction, has been described. Normally, of course, the program also contains branch instructions, so the second
In this embodiment, the operation when this branch instruction is executed will be described.

【0053】分岐命令を含むプログラムの一例を示した
図4を参照すると、分岐命令実行時にチェックサムバッ
ファ11をクリアするようにする。正常なプログラム分
岐の分岐先は、各プログラムモジュールの先頭アドレス
になっているはずである。
Referring to FIG. 4 showing an example of a program including a branch instruction, the checksum buffer 11 is cleared when the branch instruction is executed. The branch destination of a normal program branch should be the start address of each program module.

【0054】例えば、モジュールA条件分岐命令は、図
中の矢印で示すようにモジュールCの先頭アドレスを指
している。したがって、それぞれのプログラムモジュー
ルA、BおよびCの最後尾においてチェック命令が実行
されるようにすれば、プログラムモジュールの先頭から
の暴走を検出することができる。
For example, the module A conditional branch instruction points to the head address of the module C as indicated by the arrow in the figure. Therefore, if the check instruction is executed at the end of each program module A, B, and C, runaway from the beginning of the program module can be detected.

【0055】図中の矢印で示すように異常なプログラム
分岐をした場合、すなわち、プログラムモジュールAの
条件分岐命令がプログラムモジュールCの途中のアドレ
スに分岐した場合も、プログラムモジュールCの最後尾
のチェック命令によって暴走を検出することができる。
同様に、それぞれのプログラムモジュールA、Bおよび
Cの最後尾においてチェック命令が実行されるようにす
れば、プログラムモジュールの途中からの暴走を検出す
ることができる。
When an abnormal program branch is made as shown by the arrow in the figure, that is, when the conditional branch instruction of the program module A branches to an address in the middle of the program module C, the last check of the program module C is checked. Runaway can be detected by an instruction.
Similarly, if the check instruction is executed at the end of each program module A, B, and C, runaway from the middle of the program module can be detected.

【0056】次に、第1および第2の実施の形態におけ
るROMセルアレイ4に格納されるオブジェクトプログ
ラムを生成するソフトウェア開発装置について説明す
る。
Next, a software development device for generating an object program stored in the ROM cell array 4 in the first and second embodiments will be described.

【0057】上述した第1および第2の実施の形態で
は、暴走検出のための専用命令(チェック命令およびチ
ェック命令オペランド部に当たるチェックサムデータ)
がオブジェクトプログラムに組み入れられ、当該オブジ
ェクトプログラムがROMセルアレイ4にあらかじめ格
納されていることを前提にしている。
In the above-described first and second embodiments, a dedicated instruction for detecting runaway (check instruction and checksum data corresponding to the check instruction operand portion)
Is incorporated into an object program, and the object program is stored in the ROM cell array 4 in advance.

【0058】この専用命令を組み入れたオブジェクトプ
ログラムは、図示しない、一般的なソフトウェア開発装
置にて生成される。このソフトウェア開発装置は、一般
的にはパーソナルコンピュータと、パーソナルコンピュ
ータ上で動作するオブジェクトプログラムを生成するソ
フトウェアである。
An object program incorporating this dedicated instruction is generated by a general software development device (not shown). This software development device is generally a personal computer and software that generates an object program that operates on the personal computer.

【0059】当該オブジェクトプログラムを生成するソ
フトウェアは、図2に示すアセンブラ言語で記述された
ソースプログラムをオブジェクトプログラムに変換する
際に、または当該オブジェクトプログラムを絶対アドレ
スにマッピングする際に、チェック命令のオペランド部
(チェックサムデータ)を計算し、オペランド値を自動
的に生成する。
The software for generating the object program is an operand of a check instruction when converting the source program written in the assembler language shown in FIG. 2 into an object program or when mapping the object program to an absolute address. The part (checksum data) is calculated, and the operand value is automatically generated.

【0060】または、一度チェックサムデータ以外のオ
ブジェクトプログラムをアセンブラおよびリンカにて作
成し、その後チェックサムデータを専用のソフトウエア
にて生成してもよい。
Alternatively, an object program other than the checksum data may be created once by the assembler and linker, and then the checksum data may be created by dedicated software.

【0061】チェックサムデータの生成の一例のアルゴ
リズムをフローチャートで示した図5を参照すると、ま
ず、チェックサムデータを0にする(S11)。
Referring to FIG. 5, which is a flowchart showing an example of an algorithm for generating checksum data, first, the checksum data is set to 0 (S11).

【0062】ソースプログラムを1命令分読み込み(S
12)、分岐命令か否かを判断する(S13)。分岐命
令でなければ、割り当てられた絶対アドレスをチェック
サムデータに加算する(S14)。この動作を、チェッ
ク命令を読み込むまで行う(S15)。
Read the source program for one instruction (S
12) It is determined whether the instruction is a branch instruction (S13). If it is not a branch instruction, the assigned absolute address is added to the checksum data (S14). This operation is repeated until the check command is read (S15).

【0063】チェック命令を読み込むと、累積加算され
たチェックサムデータの値をチェック命令オペランド部
に格納する(S16)。
When the check command is read, the value of the checksum data cumulatively added is stored in the check command operand part (S16).

【0064】その後、チェックサムデータを0にし、再
度チェック命令を読み込むまで同様の処理を繰り返す。
After that, the checksum data is set to 0, and the same processing is repeated until the check command is read again.

【0065】分岐命令を読み込んだ場合には、チェック
サムデータを0にする。
When the branch instruction is read, the checksum data is set to 0.

【0066】本暴走検出方法を有効に利用するために
は、チェック命令を分岐命令の直前に配置する。そうす
れば、分岐命令直前までのプログラムの暴走を検出で
き、さらに、分岐時正常に分岐したか(プログラムモジ
ュールの先頭に分岐したか)を検出できる。
In order to effectively use this runaway detection method, the check instruction is placed immediately before the branch instruction. By doing so, it is possible to detect runaway of the program up to immediately before the branch instruction, and further to detect whether the branch normally occurred (branch to the head of the program module).

【0067】[0067]

【発明の効果】上述した本発明のプログラム暴走検出回
路および検出方法と検出用ソフトウェアの開発装置およ
びそのソフトウェア生成方法は、プログラム実行アドレ
スを計数するプログラムカウンタと、プログラムカウン
タがインクリメントされるごとにプログラムカウンタの
内容を累積加算して得られる加算データと、プログラム
実行アドレスを累積加算し予めオブジェクトプログラム
命令に格納されたチェックサムデータと、加算データと
チェックサムデータを比較する比較器とを有し、加算デ
ータとチェックサムデータを比較し暴走を検出する方法
を備えるので、プログラム実行時のプログラムカウンタ
の値を累積加算しオブジェクトプログラムに組み込まれ
たチェックサムと比較することにより、プログラムの正
常実行をより詳細に監視できる。さらに、暴走検出回路
を内蔵したマイクロコンピュータのソフトウエア開発装
置であって、入力されるソースプログラム命令を解析し
て、プログラム実行アドレスのチェックサムを算出し、
オブジェクトプログラム命令に組み込む命令組み込み手
段を備えることにより、チェックサムデータを容易に作
成することができ、マイクロコンピュータのソフトウェ
ア開発の効率向上に寄与する。
As described above, the program runaway detection circuit and detection method, the detection software development apparatus, and the software generation method thereof according to the present invention include a program counter for counting program execution addresses, and a program counter for each increment of the program counter. It has addition data obtained by cumulatively adding the contents of the counter, checksum data cumulatively added to the program execution address and stored in advance in the object program instruction, and a comparator for comparing the addition data and the checksum data, Since there is a method to detect runaway by comparing the added data and checksum data, the normal execution of the program can be improved by cumulatively adding the value of the program counter at the time of program execution and comparing it with the checksum built into the object program. The details It can be monitored. Furthermore, in a software development device of a microcomputer having a runaway detection circuit built-in, an input source program instruction is analyzed to calculate a checksum of a program execution address,
By providing the instruction embedding means incorporated in the object program instruction, the checksum data can be easily created, which contributes to the efficiency improvement of the software development of the microcomputer.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1の実施の形態におけるプログラム
暴走検出回路を示すブロック図である。
FIG. 1 is a block diagram showing a program runaway detection circuit according to a first embodiment of the present invention.

【図2】プログラム暴走検出回路説明用の簡単なプログ
ラムを示した図である。
FIG. 2 is a diagram showing a simple program for explaining a program runaway detection circuit.

【図3】プログラム暴走検出方法のフローチャートであ
る。
FIG. 3 is a flowchart of a program runaway detection method.

【図4】分岐命令を含むプログラムの一例を示した図で
ある。
FIG. 4 is a diagram showing an example of a program including a branch instruction.

【図5】プログラム暴走検出回路のプログラムを生成す
るためのソフトウェア装置に組みこまれるソフトウェア
生成アルゴリズムを示す図である。
FIG. 5 is a diagram showing a software generation algorithm incorporated in a software device for generating a program for a program runaway detection circuit.

【図6】従来の ウォッチドッグタイマを使用した従来
の暴走検出の構成図である。
FIG. 6 is a configuration diagram of conventional runaway detection using a conventional watchdog timer.

【図7】従来のウォッチドッグタイマを使用してマイク
ロコンピュータの暴走を検出する方法のフローチャート
である。
FIG. 7 is a flowchart of a method for detecting runaway of a microcomputer using a conventional watchdog timer.

【図8】従来の暴走検出回路およびそれを用いたソフト
ウェア開発装置の構成を示した図である。
FIG. 8 is a diagram showing a configuration of a conventional runaway detection circuit and a software development device using the same.

【符号の説明】[Explanation of symbols]

1,20,161 プログラムカウンタ(PC) 2,164 アドレス・ラッチ 3,165 アドレス・デコーダ 4,166 ROMセルアレイ 5 オペコード格納部 6 オペランド格納部 7,167 センスアンプ 8,168 出力バッファ 9,163 命令デコーダ 10 加算器 11 チェックサムバッファ 12,25,27 比較器 13,14 スイッチ 15 ウォッチドッグタイマ 16 マイクロコンピュータ 21 上位部 22 下位部 23 インクリメント部 24 定数格納部 26 ラッチ 28 暴走判定部 29 フラグ 162 ROM部 1,20,161 Program counter (PC) 2,164 Address latch 3,165 Address decoder 4,166 ROM cell array 5 Opcode storage 6 Operand storage 7,167 Sense amplifier 8,168 Output buffer 9,163 Instruction decoder 10 Adder 11 Checksum Buffer 12, 25, 27 Comparator 13, 14 Switch 15 Watchdog Timer 16 Microcomputer 21 Upper Part 22 Lower Part 23 Increment Part 24 Constant Storage Part 26 Latch 28 Runaway Judgment Part 29 Flag 162 ROM Part

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 マイクロコンピュータが実行するプログ
ラムの暴走有無を検出するプログラム暴走検出回路にお
いて、プログラム実行アドレスを計数するプログラムカ
ウンタと、前記プログラムカウンタがインクリメントさ
れるごとに前記プログラムカウンタの内容を累積加算す
る加算器と、この加算結果を保持するチェックサムバッ
ファと、予めオブジェクトプログラム命令に格納された
チェックサムデータと前記チェックサムバッファからの
出力データとを比較する比較器とからなることを特徴と
するプログラム暴走検出回路。
1. A program runaway detection circuit for detecting the presence or absence of runaway of a program executed by a microcomputer, and a program counter for counting program execution addresses, and cumulative addition of the contents of the program counter each time the program counter is incremented. And a checksum buffer for holding the addition result, and a comparator for comparing the checksum data previously stored in the object program instruction with the output data from the checksum buffer. Program runaway detection circuit.
【請求項2】 前記比較器の不一致出力信号をリセット
信号として用いて、前記プログラムの暴走検出と同時に
前記マイクロコンピュータをリセットする請求項1記載
のプログラム暴走検出回路。
2. The program runaway detection circuit according to claim 1, wherein the microcomputer runaway detection circuit is reset at the same time when the program runaway is detected by using a mismatch output signal of the comparator as a reset signal.
【請求項3】 前記オブジェクトプログラム命令に格納
されたチェックサムデータが、前記プログラム実行アド
レスを累積加算したデータである請求項1記載のプログ
ラム暴走検出回路。
3. The program runaway detection circuit according to claim 1, wherein the checksum data stored in the object program instruction is data obtained by cumulatively adding the program execution address.
【請求項4】 プログラムの分岐命令実行時には、前記
チェックサムバッファをクリアする請求項1記載のプロ
グラム暴走検出回路。
4. The program runaway detection circuit according to claim 1, wherein the checksum buffer is cleared when a branch instruction of a program is executed.
【請求項5】 プログラム実行アドレスを計数するプロ
グラムカウント手段と、このプログラムカウント手段が
インクリメントされるごとに前記プログラムカウント手
段のカウントされた内容を累積加算する加算手段と、こ
の加算手段の加算結果を保持するチェックサムバッファ
手段と、予めオブジェクトプログラム命令に格納された
チェックサムデータと前記チェックサムバッファ手段か
らの出力データとを比較する比較手段とを用いて、 前記プログラムカウント手段をクリアするステップと、
前記チェックサムバッファ手段をクリアするステップ
と、前記プログラムカウント手段の指示する1命令分を
読み込むステップと、読み込んだ前記命令が分岐命令か
それ以外の命令かを判定するステップと、分岐命令であ
れば前記チェックサムデータをクリアし、それ以外の命
令であればこの命令のアドレス値を前記チェックサムバ
ッフア手段の内容に加算するステップと、読み込んだ前
記命令のオペレーションコードを前記比較手段に出力を
指示するチェック命令であるか否かを判断するステップ
と、前記判断結果が前記チェック命令でなければ前記1
命令分を読み込むステップに戻して次の命令を読み込む
ステップと、前記判断結果が前記チェック命令であれば
前記チェックサムデータと前記チェック命令のオペラン
ド値を比較するステップとからなり、前記比較の結果不
一致であればその不一致信号によりマイクロコンピュー
タが実行するプログラムの暴走を検出することを特徴と
するプログラム暴走検出方法。
5. A program counting means for counting a program execution address, an adding means for cumulatively adding the counted contents of the program counting means each time the program counting means is incremented, and an addition result of the adding means. A step of clearing the program counting means by using a checksum buffer means for holding the checksum data stored in advance in an object program instruction and a comparing means for comparing the output data from the checksum buffer means,
If the instruction is a branch instruction, the step of clearing the checksum buffer means, the step of reading one instruction designated by the program count means, the step of determining whether the read instruction is a branch instruction or another instruction Instructing the step of clearing the checksum data and adding the address value of this instruction to the contents of the checksum buffer means if it is another instruction, and outputting the operation code of the read instruction to the comparison means. Determining whether it is a check command to be performed, and if the determination result is not the check command,
It is composed of a step of returning to the step of reading the instruction and reading the next instruction, and a step of comparing the checksum data with the operand value of the check instruction if the judgment result is the check instruction. If so, a program runaway detection method characterized by detecting runaway of the program executed by the microcomputer by the mismatch signal.
【請求項6】 プログラム実行アドレスを計数するプロ
グラムカウンタと、前記プログラムカウンタがインクリ
メントされるごとに前記プログラムカウンタの内容を累
積加算する加算器と、この加算結果を保持するチェック
サムバッファと、予めオブジェクトプログラム命令に格
納されたチェックサムデータと前記チェックサムバッフ
ァからの出力データとを比較する比較器とからなるプロ
グラム暴走検出回路を内蔵したマイクロコンピュータの
前記オブジェクトプログラムを生成するソフトウエア開
発装置であって、入力されるソースプログラム命令を解
析し、プログラム実行における実行アドレスのチェック
サムデータを算出し、この算出されたチェックサムデー
タをオブジェクトプログラム命令に組み込む命令組み込
み手段を備えたことを特徴とするプログラム暴走の検出
用ソフトウエアの開発装置。
6. A program counter for counting a program execution address, an adder for cumulatively adding the contents of the program counter each time the program counter is incremented, a checksum buffer for holding the addition result, and an object in advance. A software development device for generating the object program of a microcomputer including a program runaway detection circuit, which comprises a checksum data stored in a program command and a comparator for comparing output data from the checksum buffer. An instruction embedding means for analyzing input source program instructions, calculating checksum data of execution addresses in program execution, and incorporating the calculated checksum data into object program instructions A software development device for detecting runaway programs characterized by.
【請求項7】 前記オブジェクトプログラムに組み込ま
れるチェック命令およびチェック命令のオペランド部に
なる前記チェックサムデータは、ソースプログラムをオ
ブジェクト変換するときにこのオブジェクトプログラム
を絶対アドレス空間にマッピングして前記チェック命令
の前記オペランド部を生成する請求項6記載のプログラ
ム暴走の検出用ソフトウエアの開発装置。
7. The check instruction incorporated in the object program and the checksum data which becomes an operand part of the check instruction are mapped to an absolute address space when the source program is converted into an object, and the checksum data of the check instruction is stored. 7. The software development device for detecting program runaway according to claim 6, wherein the operand part is generated.
【請求項8】 プログラム実行アドレスを計数するプロ
グラムカウント手段と、前記プログラムカウント手段が
インクリメントされるごとに前記プログラムカウンタの
内容を累積加算する加算手段と、この加算手段の加算結
果を保持するチェックサムバッファ手段と、予めオブジ
ェクトプログラム命令に格納されたチェックサムデータ
と前記チェックサムバッファ手段からの出力データとを
比較する比較手段とからなるプログラム暴走検出手段を
用いるマイクロコンピュータのオブジェクトプログラム
を生成するソフトウエア生成方法であって、前記チェッ
クサムデータをクリアするステップと、ソースプログラ
ムを1命令分読み込み分岐命令か否かを判断するステッ
プと、この判断結果が否の場合、割り当てられた絶対ア
ドレスを前記チェックサムデータに加算するステップ
と、前記チェック命令であるか否かを判断するステップ
と、この判断結果が否の場合、前記ソースプログラムを
1命令分読み込むステップへ戻し、前記判断結果が前記
チェック命令であると判断した場合は累積加算された前
記チェックサムデータの値を前記チェック命令のオペラ
ンド部に格納するステップと、前記分岐命令であるか否
かの判断において分岐命令である場合は前記チェックサ
ムデータをクリアするステップとからなることを特徴と
するプログラム暴走の検出用ソフトウエア生成方法。
8. A program counting means for counting a program execution address, an adding means for cumulatively adding the contents of the program counter each time the program counting means is incremented, and a checksum for holding the addition result of the adding means. Software for generating an object program of a microcomputer using program runaway detection means, which comprises buffer means and comparison means for comparing checksum data previously stored in an object program instruction with output data from the checksum buffer means. A generation method, which is a step of clearing the checksum data, a step of reading the source program for one instruction, and a step of judging whether the branch instruction is a branch instruction. If the judgment result is no, the absolute address assigned is checked. The step of adding to the checksum data, the step of determining whether or not it is the check instruction, and if the result of this determination is no, return to the step of reading the source program for one instruction, and the result of the determination is the check instruction. When it is determined that the value of the checksum data that has been cumulatively added is stored in the operand part of the check instruction, and when it is a branch instruction in determining whether the branch instruction, the checksum data is stored. A method for generating software for detecting program runaway, which comprises a step of clearing.
JP08136693A 1996-05-30 1996-05-30 Program runaway detection circuit, detection method, detection software development apparatus, and software generation method Expired - Fee Related JP3088286B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08136693A JP3088286B2 (en) 1996-05-30 1996-05-30 Program runaway detection circuit, detection method, detection software development apparatus, and software generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08136693A JP3088286B2 (en) 1996-05-30 1996-05-30 Program runaway detection circuit, detection method, detection software development apparatus, and software generation method

Publications (2)

Publication Number Publication Date
JPH09319621A true JPH09319621A (en) 1997-12-12
JP3088286B2 JP3088286B2 (en) 2000-09-18

Family

ID=15181271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08136693A Expired - Fee Related JP3088286B2 (en) 1996-05-30 1996-05-30 Program runaway detection circuit, detection method, detection software development apparatus, and software generation method

Country Status (1)

Country Link
JP (1) JP3088286B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008148891A (en) * 2006-12-18 2008-07-03 Daiman:Kk Game machine
US7664939B2 (en) 2006-04-28 2010-02-16 Hitachi, Ltd. Method and apparatus for detecting false operation of computer
JP2016189118A (en) * 2015-03-30 2016-11-04 日立オートモティブシステムズ株式会社 Electronic control apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664939B2 (en) 2006-04-28 2010-02-16 Hitachi, Ltd. Method and apparatus for detecting false operation of computer
JP2008148891A (en) * 2006-12-18 2008-07-03 Daiman:Kk Game machine
JP2016189118A (en) * 2015-03-30 2016-11-04 日立オートモティブシステムズ株式会社 Electronic control apparatus

Also Published As

Publication number Publication date
JP3088286B2 (en) 2000-09-18

Similar Documents

Publication Publication Date Title
JP6345623B2 (en) Method and apparatus for predicting non-execution of conditional non-branching instructions
US5355459A (en) Pipeline processor, with return address stack storing only pre-return processed addresses for judging validity and correction of unprocessed address
US7975130B2 (en) Method and system for early instruction text based operand store compare reject avoidance
US6754856B2 (en) Memory access debug facility
KR101738640B1 (en) Apparatus and method for compression of trace data
US20110093683A1 (en) Program flow control
US20080263379A1 (en) Watchdog timer device and methods thereof
WO2009129052A1 (en) Code evaluation for in-order processing
JPH02202642A (en) Device for supervising program action
KR20010037992A (en) Branch predictor using branch prediction accuracy history
JPH09319621A (en) Circuit, method for detecting program runaway, software developing device for detection and software generating method for the same
US6990569B2 (en) Handling problematic events in a data processing apparatus
KR100239438B1 (en) Cpu having function for preventing malfuction
JP2525492B2 (en) Programmable controller
JP2646957B2 (en) Microprocessor with built-in cache and its trace system
JPH05216721A (en) Electronic computer
EP0525672A2 (en) Microprocessor with program tracing
JP3716635B2 (en) Information processing apparatus and interrupt control method thereof
JP2503223B2 (en) Prior control method
JP3130421B2 (en) Program analysis method and apparatus
Najjar et al. Pipeline Hazards Resolution for a New Programmable Instruction Set RISC Processor
JPH0475147A (en) Time monitoring device in information processing system
JP4702004B2 (en) Microcomputer
JPH1165622A (en) Programmable controller
JP2506199B2 (en) Electronics

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: 20000620

LAPS Cancellation because of no payment of annual fees