Nothing Special   »   [go: up one dir, main page]

JP3088286B2 - Program runaway detection circuit, detection method, detection software development apparatus, and software generation method - Google Patents

Program runaway detection circuit, detection method, detection software development apparatus, and software generation method

Info

Publication number
JP3088286B2
JP3088286B2 JP08136693A JP13669396A JP3088286B2 JP 3088286 B2 JP3088286 B2 JP 3088286B2 JP 08136693 A JP08136693 A JP 08136693A JP 13669396 A JP13669396 A JP 13669396A JP 3088286 B2 JP3088286 B2 JP 3088286B2
Authority
JP
Japan
Prior art keywords
program
instruction
checksum
data
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
Application number
JP08136693A
Other languages
Japanese (ja)
Other versions
JPH09319621A (en
Inventor
宏文 山本
Original Assignee
日本電気アイシーマイコンシステム株式会社
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 日本電気アイシーマイコンシステム株式会社 filed Critical 日本電気アイシーマイコンシステム株式会社
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)

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 thereof, and more particularly to a program runaway detection circuit for detecting whether a program executed by a microcomputer has runaway. The present invention relates to a software development apparatus for generating a runaway detection object program for a microcomputer with a built-in program runaway detection circuit, and a detection software generation method therefor.

【0002】[0002]

【従来の技術】ウォッチドッグタイマを使用した従来の
暴走検出の構成例を示した図6を参照すると、ウォッチ
ドッグタイマー15は一般的にはフリーランニングカウ
ンタにより構成され、キャンセルパルスを入力すること
によって、フリーランニングカウンタがクリアされる。
2. Description of the Related Art Referring to FIG. 6, which shows a configuration example of a conventional runaway detection using a watchdog timer, a watchdog timer 15 is generally constituted by a free running counter. , 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 using a charge / discharge of a capacitance element and a resistance element in addition to a function using a digital counter.

【0005】一般的なマイクロコンピュータ16は、リ
セット信号RESETバー入力やポート出力を備え、そ
の内部は、主要部のみ図示してある。プログラムカウン
タ161、ROM部162、命令デコーダ163等から
なり、ROM部162はアドレス・ラッチ164とアド
レス・デコーダ165とROMセルアレイ166とセン
スアンプ167と出力バッファ168とからなる。マイ
クロコンピュータ16のリセット入力端はウォッチドッ
グタイマ15のリセット出力端に接続され、マイクロコ
ンピュータ16のキャンセルパルス出力端はウォッチド
ッグタイマ15のキャンセルパルス入力端に接続され
る。
The general microcomputer 16 has a reset signal RESET bar input and a port output, and only the main part is shown inside. The ROM 162 includes 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 terminal of the microcomputer 16 is connected to the reset output terminal of the watchdog timer 15, and the cancel pulse output terminal of the microcomputer 16 is connected to the cancel pulse input terminal of the watchdog timer 15.

【0006】このような、ウォッチドッグタイマ15を
使用してマイクロコンピュータ16の暴走を検出する方
法のフローチャートを示した図7(a)およびその動作
タイミングチャートを示した図7(b)を参照すると、
マイクロコンピュータ16は、イニシャライズ後(S3
1)の通常動作時、タイミング検出時間を経過したか否
かを判断し(S32)、所定の時間、つまりメイン周期
が経過するとメイン周期ごとにウォッチドッグタイマ1
5のキャンセルパルスを汎用ポートから出力した(S3
3)後に、メイン処理を実行する(S34)。
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 will be described. ,
After initialization (S3)
At the time of 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 has elapsed, the watchdog timer 1 is set for each main cycle.
5 was output from the general-purpose port (S3
3) Later, the main processing is executed (S34).

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

【0008】ウォッチドッグタイマ15はキャンセルパ
ルスが入力されなくなると、暴走検出時間経過後、リセ
ット信号を出力する。
When the cancel pulse is no longer input, the watchdog timer 15 outputs a reset signal after a 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 Application Laid-Open No. 5-257746. Referring to FIG. 8, which shows a configuration of a runaway detection circuit and a software development device using the same, the runaway detection circuit is provided for detecting a program runaway state without being affected by a 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 content of the upper part 21 is incremented by 1 in the increment unit 23 and stored in the latch 26. The counter 20 is incremented, and the comparator 25 compares whether the lower part 22 is equal to the value of the constant storage part 24, and when it is equal, or when a carry occurs from the lower part 22 to the upper part 21. , Upper part 21 of program counter 20 and latch 26
Are determined by runaway determination section 28 as to whether or not the contents are equal.

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

【0012】[0012]

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

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

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

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

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

【0017】本発明のプログラム暴走検出方法の特徴
は、プログラム実行アドレスを計数するプログラムカウ
ンタと、前記プログラムカウンタの内容を一時保持する
アドレス・ラッチと、このアドレス・ラッチ出力に応答
して実行すべきアドレスを選択するアドレス・デコーダ
と、オブジェクトプログラム命令のオペコード格納部お
よびオペランド格納部からなるROMセルアレイと、こ
のROMセルアレイ出力のオペコードおよびオペランド
・データをセンスアンプを介して入力する出力バッファ
とを有する単一のマイクロコンピュータに内蔵され、こ
マイクロコンピュータが実行するプログラムの暴走有
無を検出するプログラム暴走検出回路において、前記出
力バッファが出力する前記オペコードを解読するととも
に前記オペランド・データの出力を指示するための暴走
検出用チェック命令を検出する命令デコーダと、前記プ
ログラムカウンタがインクリメントされるごとに前記プ
ログラムカウンタの内容を累積加算する加算器と、この
加算結果を保持するチェックサムバッファと、前記オブ
ジェクトプログラム命令格納されるオブジェクトプロ
グラムエリアの任意の位置に予め配置される前記暴走検
出用チェック命令のオペランド部に格納されたチェック
サムデータと前記チェックサムバッファ出力の前記プロ
グラム実行アドレスの累積加算値とを比較する比較器と
を備え、この比較器の不一致出力信号をリセット信号と
して、前記プログラムの暴走検出と同時に前記マイクロ
コンピュータ自身の内部回路もリセットすることにあ
る。
A feature of the program runaway detection method of the present invention is that a program counter for counting program execution addresses is provided.
And the contents of the program counter are temporarily stored.
Address latch and respond to this address latch output
Address decoder that selects the address to be executed
And the opcode storage for object program instructions
ROM cell array consisting of
ROM cell array output opcodes and operands
・ Output buffer for inputting data via sense amplifier
Built into a single microcomputer with
In the program runaway detection circuit for detecting a runaway existence of a program the microcomputer to execute the said output
When decoding the opcode output by the force buffer,
Runaway for instructing the output of the operand data to
An instruction decoder for detecting a detection check instruction, an adder for cumulatively adding the contents of said program counter every time the program counter is incremented, and checksum buffer for holding the addition result, the of <br/> object professional project program instructions Ru stored
The runaway inspection previously arranged at an arbitrary position in the gram area
The checksum data stored in the operand part of the output check instruction and the checksum buffer output
And a comparator for comparing the cumulative execution value of the program execution address with
And the mismatch output signal of this comparator is
The microcontroller simultaneously with the detection of runaway of the program.
It is also about resetting the internal circuit of the computer itself .

【0018】また、前記比較器は、前記オブジェクトプ
ログラム命令が格納される前記オブジェクトプログラム
エリアの最後尾に予め配置される前記暴走検出用チェッ
ク命令のオペランド部に格納されたチェックサムデータ
と前記チェックサムバッファからの出力データであるプ
ログラム実行アドレスの累積加算値とを比較するための
比較器とすることもできる。
Further, the comparator includes the object processor.
The object program in which program instructions are stored
The runaway detection check previously arranged at the end of the area
Checksum data stored in the operand part of the instruction
And the output data from the checksum buffer.
To compare the program execution address with the cumulative addition value.
Ru can be a comparator.

【0019】さらに、前記比較器は、前記オブジェクト
プログラム命令が格納される前記オブジェクトプログラ
ムエリアの分岐命令の直前に予め配置される前記暴走検
出用チェック命令のオペランド部に格納されたチェック
サムデータと前記チェックサムバッファからの出力デー
タであるプログラム実行アドレスの累積加算値とを比較
するための比較器とすることもできる。
[0019] Further, the comparator may be arranged so that the object
The object program in which program instructions are stored;
Runaway detection that is pre-arranged immediately before a branch instruction
Check stored in the operand part of the check command
Sum data and the output data from the checksum buffer
The program execution address, which is the data
Ru can also be a comparator for.

【0020】本発明のプログラム暴走回路の他の特徴
は、マイクロコンピュータが実行するプログラムの暴走
有無を検出するプログラム暴走検出回路であって、プロ
グラム実行アドレスを計数するプログラムカウンタと、
前記プログラムカウンタがインクリメントされるごとに
前記プログラムカウンタの内容を累積加算する加算器
と、この加算結果を保持するチェックサムバッファと、
予めオブジェクトプログラム命令に格納されたチェック
サムデータと前記チェックサムバッファからの出力デー
タとを比較する比較器とからなるプログラム暴走検出回
路において、プログラムの分岐命令実行時には、前記チ
ェックサムバッファをクリアすることにある
Another feature of the program runaway circuit of the present invention
Is a program runaway by a microcomputer
A program runaway detection circuit that detects the presence or absence
A program counter for counting program execution addresses,
Each time the program counter is incremented
Adder for cumulatively adding the contents of the program counter
And a checksum buffer for holding the addition result,
Checks previously stored in object program instructions
Sum data and the output data from the checksum buffer
Program runaway detection consisting of a comparator that compares
In road, at the time of execution of the branch instruction of the program is to clear the checksum buffer.

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

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

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

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

【0025】[0025]

【発明の実施の形態】次に、本発明のプログラム暴走検
出回路および暴走検出と検出用ソフトウェアの開発装置
およびそのソフトウェア生成方法を図面を参照しながら
説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, a program runaway detection circuit, a runaway detection and detection software development apparatus and a software generation method of 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 which shows a block diagram of the first embodiment, a ROM address currently being executed or a ROM address to be executed next is stored, and increment (1 is added) every time an instruction is executed. The program counter 1 to be executed, the contents of the program counter 1 are fetched, temporarily held, an address latch 2 to be output to the address decoder 3, and an address to be executed based on input data from the address latch 2 are selected. , Address decoder 3 for activating address lines of ROM cell array 4
And an operation code storage unit 5 and an operand storage unit 6 for storing instruction data groups converted from a program in advance and sensing the operation code and operand data stored at the address activated by the address decoder 3. The ROM cell array 4 to be output to the amplifier 7, the operation code storage unit 5 for storing the instruction code of the program, the operand storage unit 6 for storing the operand of the instruction, and the operation code and the operand data output from the ROM cell array 4 are input. , Output buffer 8
, An output buffer 8 which receives and amplifies an opcode and operand data output from the sense amplifier 7 and outputs the amplified data to an instruction decoder 9.
An instruction (hereinafter referred to as a check instruction) for instructing input of the operand data output from the output buffer 8 to the comparator 12 as a result of interpreting the operation code input from the output buffer 8 and further interpreting the operation code. , An adder 10 that inputs the contents of the program counter 1 and the checksum buffer 11, adds the contents, and outputs the addition result to the checksum buffer 11. A checksum buffer 11 for storing the contents as needed and outputting the stored contents to a comparator 12, an instruction operand portion of an output buffer 8 and data of the checksum buffer 11 are input via switches 13 and 14, respectively, and a comparison result is output. And a comparator 12.

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

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

【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 to FIG. 2 showing a program for explaining the runaway circuit and FIG. 3 showing a flowchart 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 stores an instruction that does not branch afterwards, such as a NOP instruction or a transfer instruction.
It is incremented each time a command is read and executed (S3, S4). When the program counter 1 is "0000"
When "h", the checksum buffer becomes "0000h".

【0031】すなわち、プログラムカウンタ1が“00
00h”で0番地を実行中に、プログラムカウンタ1の
内容“0000h”とチェックサムバッファ11の内容
“0000h”を加算器10によって加算し、加算結果
の“0000h”をチェックサムバッファ11に格納す
る(S5)。
That is, if the program counter 1 is "00"
While address 0 is being executed 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 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, if the program counter 1 is "00"
While address 1 is being executed at 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 added 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". When the program counter 1 is “0002h”, the checksum buffer 1
1 is “0003h”.

【0036】すなわち、プログラムカウンタ1が“00
02h”で2番地を実行中に、プログラムカウンタ1の
内容“0002h”とチェックサムバッファ11の内容
“0001h”を加算器10によって加算し、加算結果
の“0003h”をチェックサムバッファ11に格納す
る。
That is, if 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 added 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". At address 3, a check command and checksum data are stored. 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 set to "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 added result "0006h" is stored in the checksum buffer 11. I do.

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

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

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

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

【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 to 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" (S1, S2) as described above.

【0045】次に、プログラムカウンタ1がインクリメ
ントされて“0001h”となるべきところが、ノイズ
等の外乱により突如変化し、“0002h”になったと
する。
Next, it is assumed that the place where the program counter 1 should be incremented to "0001h" is suddenly changed to "0002h" due to 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".
During execution of address 2 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 added 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". At address 3, a check command and checksum data are stored. While the program counter 1 is executing address 3 at "0003h", 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 added result "0005h" is checked. The data is stored in the buffer 11 (S5).

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

【0049】チェックサムバッファの内容と、チェック
命令のオペランド部の値が不一致であったので、比較器
12から不一致信号(リセット信号)が出力される(S
9)。
Since the contents of the checksum buffer and the value of the operand portion 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 unintended abnormal value due to disturbance such as noise, it is possible to detect the abnormality and output a mismatch signal from the comparator 12. .

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

【0052】上述した第1の実施の形態では、アドレス
分岐しない命令、例えばNOP命令や転送命令などを実
行する場合の動作について説明した。通常は当然なが
ら、プログラムには分岐命令も含まれているので、第2
の実施例ではこの分岐命令実行時の動作について説明す
る。
In the first embodiment described above, the operation in the case of executing an instruction that does not branch an address, for example, a NOP instruction or a transfer instruction has been described. Usually, of course, the program also contains a branch instruction, so the second
In the embodiment, the operation at the time of executing the branch instruction 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 module C as indicated by the arrow in the figure. Therefore, if a check instruction is executed at the end of each of the program modules A, B, and C, a runaway from the beginning of the program module can be detected.

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

【0056】次に、第1および第2の実施の形態におけ
るROMセルアレイ4に格納されるオブジェクトプログ
ラムを生成するソフトウェア開発装置について説明す
る。
Next, a software development apparatus for generating an object program stored in the ROM cell array 4 according to 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 operand of the check instruction)
Is incorporated in the object program, and it is assumed that 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 software that generates a personal computer and an object program that operates on the personal computer.

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

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

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

【0062】ソースプログラムを1命令分読み込み(S
12)、分岐命令か否かを判断する(S13)。分岐命
令でなければ、割り当てられた絶対アドレスをチェック
サムデータに加算する(S14)。この動作を、チェッ
ク命令を読み込むまで行う(S15)。
The source program is read 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 performed until the check command is read (S15).

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

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

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

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

【0067】[0067]

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

【図面の簡単な説明】[Brief description of the 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 a conventional runaway detection using a conventional watchdog timer.

【図7】従来のウォッチドッグタイマを使用してマイク
ロコンピュータの暴走を検出する方法のフローチャート
である。
FIG. 7 is a flowchart of a conventional method for detecting runaway of a microcomputer using a 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 unit 6, Operand storage unit 7, 167 Sense amplifier 8, 168 Output buffer 9, 163 Instruction decoder DESCRIPTION OF SYMBOLS 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

フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 - 11/34 G06F 9/45 G06F 11/00 350 Continuation of the front page (58) Field surveyed (Int.Cl. 7 , DB name) G06F 11/28-11/34 G06F 9/45 G06F 11/00 350

Claims (8)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 プログラム実行アドレスを計数するプロ
グラムカウンタと、前記プログラムカウンタの内容を一
時保持するアドレス・ラッチと、このアドレス・ラッチ
出力に応答して実行すべきアドレスを選択するアドレス
・デコーダと、オブジェクトプログラム命令のオペコー
ド格納部およびオペランド格納部からなるROMセルア
レイと、このROMセルアレイ出力のオペコードおよび
オペランド・データをセンスアンプを介して入力する出
力バッファとを有する単一のマイクロコンピュータに内
蔵され、このマイクロコンピュータが実行するプログラ
ムの暴走有無を検出するプログラム暴走検出回路におい
て、前記出力バッファが出力する前記オペコードを解読
するとともに前記オペランド・データの出力を指示する
ための暴走検出用チェック命令を検出する命令デコーダ
と、前記プログラムカウンタがインクリメントされるご
とに前記プログラムカウンタの内容を累積加算する加算
器と、この加算結果を保持するチェックサムバッファ
と、前記オブジェクトプログラム命令格納されるオブ
ジェクトプログラムエリアの任意の位置に予め配置され
る前記暴走検出用チェック命令のオペランド部に格納さ
れたチェックサムデータと前記チェックサムバッファ出
力の前記プログラム実行アドレスの累積加算値とを比較
する比較器とを備え、この比較器の不一致出力信号をリ
セット信号として、前記プログラムの暴走検出と同時に
前記マイクロコンピュータ自身の動作をリセットするこ
とを特徴とするプログラム暴走検出回路。
1. A program for counting a program execution address.
Gram counter and the contents of the program counter.
The address latch to hold and the address latch
Address that selects the address to be executed in response to the output
.Decoder and operation code of object program instruction
ROM cell storage consisting of a memory storage unit and an operand storage unit.
Ray, the opcode of this ROM cell array output, and
Operand data input via sense amplifier
In a single microcomputer with a power buffer
It is built, the program runaway detection circuit for detecting a runaway existence of a program which the microcomputer executes, decrypting the opcode said output buffer outputs
And output of the operand data
Instruction decoder for detecting runaway detection check instruction
When the adder contents of said program counter accumulatively adds each time the program counter is incremented, and checksum buffer for holding the addition result, the object program instructions Ru stored of
Is located beforehand at any position in the project program area.
Stored in the operand section of the runaway detection check instruction
Out the checksum buffer with the checksum data
And a comparator for comparing the output of the comparator with the cumulative addition value of the program execution address.
As a set signal, at the same time
Program runaway detection circuit, wherein a reset to Rukoto the operation of the microcomputer itself.
【請求項2】 前記比較器は、前記オブジェクトプログ
ラム命令が格納される前記オブジェクトプログラムエリ
アの最後尾に予め配置される前記暴走検出用チェック命
令のオペランド部に格納されたチェックサムデータと前
記チェックサムバッファからの出力データであるプログ
ラム実行アドレスの累積加算値とを比較するための比較
器である請求項1記載のプログラム暴走検出回路。
2. The checksum data stored in an operand portion of the runaway detection check instruction which is preliminarily arranged at the end of the object program area where the object program instruction is stored, and the checksum 2. The program runaway detection circuit according to claim 1, wherein the comparator is a comparator for comparing the output data from the buffer with a cumulative sum of program execution addresses.
【請求項3】 前記比較器は、前記オブジェクトプログ
ラム命令が格納される前記オブジェクトプログラムエリ
アの分岐命令の直前に予め配置される前記暴走検出用チ
ェック命令のオペランド部に格納されたチェックサムデ
ータと前記チェックサムバッファからの出力データであ
るプログラム実行アドレスの累積加算値とを比較するた
めの比較器である請求項1記載のプログラム暴走検出回
路。
3. The method according to claim 1, wherein the comparator is configured to execute a check sum data stored in an operand portion of the runaway detection check instruction which is arranged in advance immediately before a branch instruction in the object program area in which the object program instruction is stored. 2. The program runaway detection circuit according to claim 1, wherein the comparator is a comparator for comparing the output data from the checksum buffer with a cumulative addition value of a program execution address.
【請求項4】 マイクロコンピュータが実行するプログ
ラムの暴走有無を検出するプログラム暴走検出回路であ
って、プログラム実行アドレスを計数するプログラムカ
ウンタと、前記プログラムカウンタがインクリメントさ
れるごとに前記プログラムカウンタの内容を累積加算す
る加算器と、この加算結果を保持するチェックサムバッ
ファと、予めオブジェクトプログラム命令に格納された
チェックサムデータと前記チェックサムバッファからの
出力データとを比較する比較器とからなるプログラム暴
走検出回路において、プログラムの分岐命令実行時に
は、前記チェックサムバッファをクリアすることを特徴
とするプログラム暴走検出回路。
4. A program executed by a microcomputer.
This is a program runaway detection circuit that detects the runaway of the ram.
The program module that counts program execution addresses
Counter and the program counter are incremented.
Each time the program counter is added
Adder, and a checksum buffer that holds the addition result.
And stored in the object program instruction in advance.
Checksum data and the data from the checksum buffer
A program including a comparator for comparing with output data
In run detection circuit, when a branch instruction execution programs characterized by clearing the checksum buffer
Program runaway detection circuit to be.
【請求項5】 プログラム実行アドレスを計数するプロ
グラムカウント手段と、このプログラムカウント手段が
インクリメントされるごとに前記プログラムカウント手
段のカウントされた内容を累積加算する加算手段と、こ
の加算手段の加算結果を保持するチェックサムバッファ
手段と、予めオブジェクトプログラム命令に格納された
チェックサムデータと前記チェックサムバッファ手段か
らの出力データとを比較する比較手段とを用いて、 前記プログラムカウント手段をクリアするステップと、
前記チェックサムバッファ手段をクリアするステップ
と、前記プログラムカウント手段の指示する1命令分を
読み込むステップと、読み込んだ前記命令が分岐命令か
それ以外の命令かを判定するステップと、分岐命令であ
れば前記チェックサムデータをクリアし、それ以外の命
令であればこの命令のアドレス値を前記チェックサムバ
ッフア手段の内容に加算するステップと、読み込んだ前
記命令のオペレーションコードを前記比較手段に出力を
指示するチェック命令であるか否かを判断するステップ
と、前記判断結果が前記チェック命令でなければ前記1
命令分を読み込むステップに戻して次の命令を読み込む
ステップと、前記判断結果が前記チェック命令であれば
前記チェックサムデータと前記チェック命令のオペラン
ド値を比較するステップとからなり、前記比較の結果不
一致であればその不一致信号によりマイクロコンピュー
タが実行するプログラムの暴走を検出することを特徴と
するプログラム暴走検出方法。
5. A program counting means for counting a program execution address, an adding means for accumulatively adding the contents counted by the program counting means each time the program counting means is incremented, and a result of the addition by the adding means. Clearing the program counting means by using a held checksum buffer means, and comparing means for comparing checksum data previously stored in an object program instruction with output data from the checksum buffer means,
Clearing the checksum buffer means, reading one instruction specified by the program counting means, determining whether the read instruction is a branch instruction or any other instruction, Clearing the checksum data and adding the address value of the instruction to the contents of the checksum buffer means if it is any other instruction; and instructing the comparison means to output the operation code of the read instruction to the comparison means. Determining whether or not the instruction is a check instruction to execute;
Returning to the step of reading instructions and reading the next instruction; and if the result of the determination is the check instruction, comparing the checksum data with the operand value of the check instruction. Then, a program runaway detection method characterized by detecting runaway of a program executed by the microcomputer based on 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, A software development device for generating the object program of a microcomputer having a built-in program runaway detection circuit including a comparator for comparing checksum data stored in a program instruction and output data from the checksum buffer, And an instruction embedding means for analyzing input source program instructions, calculating checksum data of an execution address in program execution, and incorporating the calculated checksum data into an object program instruction. Software development equipment for detecting program runaway.
【請求項7】 前記オブジェクトプログラムに組み込ま
れるチェック命令およびチェック命令のオペランド部に
なる前記チェックサムデータは、ソースプログラムをオ
ブジェクト変換するときにこのオブジェクトプログラム
を絶対アドレス空間にマッピングして前記チェック命令
の前記オペランド部を生成する請求項6記載のプログラ
ム暴走の検出用ソフトウエアの開発装置。
7. A check instruction to be incorporated in the object program and the checksum data serving as an operand part of the check instruction, the object program is mapped to an absolute address space when the source program is converted into an object, and the check 7. The software development apparatus according to claim 6, wherein the operand section is generated.
【請求項8】 プログラム実行アドレスを計数するプロ
グラムカウント手段と、前記プログラムカウント手段が
インクリメントされるごとに前記プログラムカウンタの
内容を累積加算する加算手段と、この加算手段の加算結
果を保持するチェックサムバッファ手段と、予めオブジ
ェクトプログラム命令に格納されたチェックサムデータ
と前記チェックサムバッファ手段からの出力データとを
比較する比較手段とからなるプログラム暴走検出手段を
用いるマイクロコンピュータのオブジェクトプログラム
を生成するソフトウエア生成方法であって、前記チェッ
クサムデータをクリアするステップと、ソースプログラ
ムを1命令分読み込み分岐命令か否かを判断するステッ
プと、この判断結果が否の場合、割り当てられた絶対ア
ドレスを前記チェックサムデータに加算するステップ
と、前記チェック命令であるか否かを判断するステップ
と、この判断結果が否の場合、前記ソースプログラムを
1命令分読み込むステップへ戻し、前記判断結果が前記
チェック命令であると判断した場合は累積加算された前
記チェックサムデータの値を前記チェック命令のオペラ
ンド部に格納するステップと、前記分岐命令であるか否
かの判断において分岐命令である場合は前記チェックサ
ムデータをクリアするステップとからなることを特徴と
するプログラム暴走の検出用ソフトウエア生成方法。
8. A program counting means for counting a program execution address, an adding means for accumulatively adding the contents of the program counter each time the program counting means is incremented, and a checksum for holding an addition result of the adding means. Software for generating an object program of a microcomputer using a program runaway detecting means comprising buffer means and comparing means for comparing checksum data previously stored in an object program instruction with output data from the checksum buffer means A step of clearing the checksum data; reading one source program instruction to determine whether the instruction is a branch instruction; if the determination result is negative, the assigned absolute address is checked. Adding to the sum data, determining whether the instruction is the check instruction, and if the determination result is negative, returning to reading the source program for one instruction, and determining that the instruction is the check instruction. Storing the value of the checksum data that has been cumulatively added in the operand portion of the check instruction; and determining whether or not the instruction is a branch instruction. A method for generating software for detecting program runaway, comprising 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 JPH09319621A (en) 1997-12-12
JP3088286B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4849606B2 (en) 2006-04-28 2012-01-11 株式会社日立製作所 Control flow error detection method, data processing apparatus, and compiler
JP5070513B2 (en) * 2006-12-18 2012-11-14 株式会社大一商会 Game machine
JP6434840B2 (en) * 2015-03-30 2018-12-05 日立オートモティブシステムズ株式会社 Electronic control unit

Also Published As

Publication number Publication date
JPH09319621A (en) 1997-12-12

Similar Documents

Publication Publication Date Title
US5526498A (en) Pipeline processor, with a return address stack and two stack pointers, for storing pre-return processed addresses
KR101738640B1 (en) Apparatus and method for compression of trace data
US20080177990A1 (en) Synthesized assertions in a self-correcting processor and applications thereof
EP0706121B1 (en) Instruction prefetch circuit and cache device
JPH02202642A (en) Device for supervising program action
US7966480B2 (en) Register pointer trap to prevent errors due to an invalid pointer value in a register
JP3088286B2 (en) Program runaway detection circuit, detection method, detection software development apparatus, and software generation method
JPH07120284B2 (en) Data processing device
JP2817786B2 (en) Simulation apparatus and simulation method
US7634640B2 (en) Data processing apparatus having program counter sensor
US20030084272A1 (en) Handling problematic events in a data processing apparatus
JP2762829B2 (en) Electronic computer
KR100239438B1 (en) Cpu having function for preventing malfuction
US20040019773A1 (en) Illegal instruction processing method and processor
JP2525492B2 (en) Programmable controller
KR960003052B1 (en) Microprocessor having cashe memory unit
JP3214413B2 (en) emulator
US5327542A (en) Data processor implementing a two&#39;s complement addressing technique
JP3120434B2 (en) Program operation analysis method
JPH1165622A (en) Programmable controller
JP2002163126A (en) Event detecting circuit embedded in debugging cpu, event detecting method, and external peripheral circuit
JP3130421B2 (en) Program analysis method and apparatus
JPS6118045A (en) Detecting system of program runaway
JP3716635B2 (en) Information processing apparatus and interrupt control method thereof
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