JPH0764822A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH0764822A
JPH0764822A JP5211892A JP21189293A JPH0764822A JP H0764822 A JPH0764822 A JP H0764822A JP 5211892 A JP5211892 A JP 5211892A JP 21189293 A JP21189293 A JP 21189293A JP H0764822 A JPH0764822 A JP H0764822A
Authority
JP
Japan
Prior art keywords
instruction
signal line
data
subroutine
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5211892A
Other languages
English (en)
Inventor
Takashi Fujii
岳志 藤井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP5211892A priority Critical patent/JPH0764822A/ja
Publication of JPH0764822A publication Critical patent/JPH0764822A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【目的】 サブルーチン演算命令実行時や割り込み処理
時などにおいてプログラムカウンタの内容を変更する際
の、プログラムカウンタの誤動作を直接検出することが
できるマイクロコンピュータを得る。 【構成】 第1の命令の実行時に当該命令のコードに含
まれているデータを保持する記憶手段と、記憶手段の保
持データと第2の命令のコードに含まれているデータ
を、第2の命令の実行時に比較する比較手段と、この比
較手段の比較結果に基づいてCPUに対してリセット等
の割り込みを発生させる割り込み手段を設けた。 【効果】 マイクロコンピュータが暴走状態となったこ
とをより早く検出することが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、プログラムカウンタ
の誤動作による暴走を検出する機能を具備したマイクロ
コンピュータに関するものである。
【0002】
【従来の技術】図6は従来のマイクロコンピュータを示
すブロック図である。図において、1は当該マイクロコ
ンピュータの演算・制御の処理を実行する中央処理装置
(以下CPUという)であり、2はCPU1の処理動作
を規定する命令コード(プログラム)が格納された読み
取り専用メモリ(以下ROMという)である。また、前
記CPU1内において、3はその計数値によってROM
2の番地を指示する働きをするプログラムカウンタ、4
はサブルーチン呼び出し命令やサブルーチンからメイン
ルーチンへの復帰命令などのサブルーチン演算命令実行
時や、割り込み処理時にプログラムカウンタ3の内容を
一時退避させるスタックレジスタ、5はROM2から読
み込んだ命令コードに従ってCPU1の各機能ブロック
を制御する命令制御回路、6は演算、転送、入出力等の
データ処理を行うアキュムレータであり、7は命令制御
回路5の制御に従ってデータの演算処理を実行する演算
論理ユニットである。
【0003】8はCPU1内のプログラムカウンタ3の
内容をROM2や図示を省略したその他の周辺回路に出
力する働きをするアドレスバスであり、9はROM2か
らの命令コードやその他の周辺回路からのデータをCP
U1に伝える働きをするデータバスである。10はCP
U1のサブルーチン演算命令実行時や割り込み処理時に
おけるプログラムカウンタ3の誤動作などによる暴走を
検出する、暴走検出手段の一つとしてのウオッチドック
タイマであり、このウオッチドックタイマ10内におい
て、11はクロック信号をアップカウントする8ビット
のアップカウンタ、12はこのアップカウンタ11のオ
ーバーフロー信号にてCPU1をリセットするためのリ
セット信号を出力するリセット回路である。なお、a〜
1,qおよびx〜zは各種信号が伝送される信号線であ
る。
【0004】次に動作について説明する。当該マイクロ
コンピュータのリセットを解除すると、プログラムカウ
ンタ3には“0000H”が設定され、その計数値がア
ドレスとして信号線aを介してアドレスバス8に出力さ
れる。当該アドレスはアドレスバス8より信号線kを介
してROM2に入力され、ROM2は入力されたアドレ
スに従って該当する番地に格納されている命令コードを
読み出し、それを信号線1を介してデータバス9に出力
する。データバス9に出力された命令コードは信号線e
を介して命令制御回路5に入力され、命令制御回路5は
入力された命令コードに従って、CPU1の各機能ブロ
ックに対する制御信号を出力する。例えば、アキュムレ
ータ6の内容をインクリメントする命令コードが命令制
御回路5に入力されると、命令制御回路5は信号線i,
jを介してアキュムレータ6と演算論理ユニット7にア
キュムレータ値をインクリメントする制御信号を出力
し、アキュムレータ値は演算論理ユニット7によって
“1”インクリメントされる。以上の動作によって“0
000H”番地の命令コードに対する演算が終了する
と、プログラムカウンタ3は“1”インクリメントされ
た“0001H”となり、ROM2から次の命令コード
が出力される。
【0005】ここで、サブルーチン呼び出し命令を実行
すると、現在のプログラムカウンタ3の値は信号線dを
介してスタックレジスタ4に退避され、ROM2から信
号線1を介してデータバス9に出力された新しい値が、
信号線bを介してプログラムカウンタ3に設定されるこ
とによって、CPU1はサブルーチンプログラムに従っ
て処理を実行する。また、サブルーチンからの復帰命令
を実行すると、プログラムカウンタ3には信号線cを介
してスタックレジスタ4に退避しておいた値が設定さ
れ、CPU1はサブルーチンに飛ぶ前のメインルーチン
のプログラムに従って処理を実行する。
【0006】図7は従来のマイクロコンピュータにおい
てサブルーチンコールを行う場合のプログラムの進み方
を示す説明図である。次にこの図6を用いて、従来のマ
イクロコンピュータにおけるサブルーチンコール実行時
の動作について説明する。マイクロコンピュータのリセ
ットを解除すると、プログラムカウンタ3に“0000
H”が設定され、CPU1はメインルーチンの先頭番地
である“0000H”番地から命令を実行する。プログ
ラムカウンタ3はCPU1が命令を実行する度に“1”
ずつインクリメントされ、プログラムカウンタ3が“0
100H”になった時、“JSR,1000H”という
命令を実行する。ここでは“JSR,1000H”命令
はサブルーチンを呼び出す命令であるとし、命令コード
の一部に飛び先番地を示す“1000H”というデータ
を含んでいるものとする。この“JSR,1000H”
命令を実行すると、CPU1では現在のプログラムカウ
ンタ3の値である“0101H”をスタックレジスタ4
に退避し、プログラムカウンタ3には新しく“1000
H”が設定される。従って、CPU1はサブルーチンの
先頭番地である“1000H”番地から命令を実行する
ことになる。
【0007】次に、プログラムカウンタ3が“1100
H”になった時、“RTS”という命令を実行する。こ
こで、“RTS”命令はサブルーチンからの復帰命令で
あるとする。この“RTS”命令を実行すると、プログ
ラムカウンタ3にスタックレジスタ4に退避していた
“0101H”を戻し、CPU1はサブルーチンに飛ぶ
前のメインルーチンの番地である“0101H”番地か
ら命令を実行する。この一連の動作によってCPU1
は、メインルーチンのプログラムの途中からサブルーチ
ンのプログラムを実行し、サブルーチンのプログラム実
行した後メインルーチンのプログラムを実行する。
【0008】ここで、ウオッチドックタイマ10はCP
U1の暴走を検出し、リセットをかける働きをする。ア
ップカウンタ11には初期値として“00H”が設定さ
れており、マイクロコンピュータのリセットを解除する
と、信号線zを介して入力されるクロック信号に従って
アップカウントする。アップカウンタ11がアップカウ
ントを続けることによってオーバーフローが発生する
と、リセット回路12に対して信号線yを介してオーバ
ーフロー信号を出力し、リセット回路12は信号線qを
介してCPU1をリセットする信号を発生する。命令制
御回路5がウオッチドックタイマ10を初期化する命令
を実行すると、信号線xを介してアップカウンタ11を
クリアする信号を発生し、アップカウンタ11が“00
H”に初期化される。
【0009】従って、上記ウオッチドックタイマ10を
初期化する命令をプログラム中にある一定の間隔、即ち
正常動作時にはアップカウンタ11のオーバーフローが
発生しないように配置することによって、正常に動作し
ている間はCPU1にリセットがかからないようにして
いる。CPU1が暴走して、ウオッチドックタイマ10
の初期化命令が正常に実行されなくなると、アップカウ
ンタ11がオーバーフローしてしまうため、そのオーバ
ーフロー信号によってCPU1がリセットされる。
【0010】
【発明が解決しようとする課題】従来のマイクロコンピ
ュータは以上のように構成されているので、サブルーチ
ン呼び出し命令やサブルーチンからメインルーチンへの
復帰命令などのサブルーチン演算命令の実行時や、割り
込み処理時にプログラムカウンタ3の内容を変更する際
の、プログラムカウンタ3の誤動作を直接検出すること
ができず、マイクロコンピュータが暴走状態になったこ
とを即座に検出することができないという問題点があっ
た。
【0011】この発明は上記のような問題点を解消する
ためになされたもので、サブルーチン演算命令実行時や
割り込み処理時においてプログラムカウンタの内容を変
更する際の、プログラムカウンタの誤動作を直接検出す
ることができるマイクロコンピュータを得ることを目的
とする。
【0012】
【課題を解決するための手段】請求項1に記載の発明に
係るマイクロコンピュータは、第1の命令の実行時に記
憶手段に保持された当該命令のコードに含まれているデ
ータと、第2の命令のコードに含まれているデータを、
第2の命令の実行時に比較する比較手段、およびこの比
較手段の比較結果に基づいてCPUにリセット等の割り
込みを発生させる割り込み手段を設けたものである。
【0013】また、請求項2に記載の発明に係るマイク
ロコンピュータは、サブルーチン呼び出し命令やサブル
ーチンからメインルーチンへ復帰命令などサブルーチン
演算命令の実行時に記憶手段に保持された、当該サブル
ーチン演算命令に含まれるデータと、当該サブルーチン
演算命令実行後に新たに設定されたプログラムカウンタ
の示す番地のデータを比較する比較手段、およびこの比
較手段の比較結果に基づいてCPUにリセット等の割り
込みを発生させる割り込み手段を設けたものである。
【0014】また、請求項3に記載の発明に係るマイク
ロコンピュータは、周辺回路からの割り込み要求の実行
時に記憶手段に保持される所定のデータと、当該割り込
み要求の実行後に新たに設定されたプログラムカウンタ
の示す番地のデータを比較する比較手段、およびこの比
較手段の比較結果に基づいてCPUにリセット等の割り
込みを発生させる割り込み手段を設けたものである。
【0015】
【作用】請求項1に記載の発明における割り込み手段
は、第2の命令の実行時に比較手段が行う、第1の命令
の実行時に記憶手段に保持された当該命令のコードに含
まれているデータと、第2の命令のコードに含まれてい
るデータとの比較の結果に基づいて、CPUに対する割
り込みを発生させることにより、プログラムカウンタの
内容を変更する際の、プログラムカウンタの誤動作を直
接検出することが可能なマイクロコンピュータを実現す
る。
【0016】また、請求項2に記載の発明における割り
込み手段は、比較手段が行う、サブルーチン演算命令実
行時に記憶手段に保持されたデータと、当該サブルーチ
ン演算命令実行後に新たに設定されたプログラムカウン
タの示す番地のデータとの比較の結果に基づいて、CP
Uに対する割り込みを発生させることにより、サブルー
チン演算命令実行時においてプログラムカウンタの内容
を変更する際の、プログラムカウンタの誤動作を直接検
出することが可能なマイクロコンピュータを実現する。
【0017】また、請求項3に記載の発明における割り
込み手段は、比較手段が行う、周辺回路からの割り込み
要求実行時に記憶手段に保持されたデータと、当該割り
込み要求の実行後に新たに設定されたプログラムカウン
タの示す番地のデータとの比較の結果に基づいて、CP
Uに対する割り込みを発生させることにより、割り込み
処理時においてプログラムカウンタの内容を変更する際
の、プログラムカウンタの誤動作を直接検出することが
可能なマイクロコンピュータを実現する。
【0018】
【実施例】
実施例1.以下、この発明の実施例1を図について説明
する。図1は請求項1に記載した発明の一実施例を示す
ブロック図である。図において、1はCPU、2はRO
M、3はプログラムカウンタ、4はスタックレジスタ、
5は命令制御回路、6はアキュムレータ、7は演算論理
ユニット、8はアドレスバス、9はデータバスであり、
図6に同一符号を付した従来のそれらと同一、もしくは
相当部分であるため詳細な説明は省略する。
【0019】13はCPU1が第1の命令を実行した時
に、CPU1の命令制御回路5から信号線mを介して送
られてくる第1の命令のコードの一部に含まれているデ
ータを保持する働きをする記憶手段としてのアイデンテ
ィファイア・レジスタ(以下IDレジスタという)であ
る。なお、この第1の命令のコードの一部に含まれるデ
ータとは第1の命令のオペレションコード等を意味し、
例えば“SID,55H”として表される当該第1の命
令の“55H”の部分に相当する。14はCPU1が第
2の命令を実行した時に、CPU1の命令制御回路5か
ら信号線nを介して入力される第2の命令のコードの一
部に含まれているデータと、信号線oを介して入力され
るIDレジスタ13の保持データとを比較して、両者が
一致していない場合にはローレベルとなり、両者が一致
している場合、あるいは第2の命令が実行されていない
場合にはハイレベルとなる比較結果信号を信号線pに出
力する働きをする比較手段としての比較回路である。な
お、この第2の命令のコードの一部に含まれるデータと
は、第2の命令のオペレションコード等を意味し、例え
ば“CID,55H”として表される当該第2の命令の
“55H”の部分に相当する。15は信号線pを介して
入力される比較回路14の比較結果信号がローレベルと
なった時、信号線qを介してCPU1をリセットするた
めのリセット信号を出力する割り込み手段としてのリセ
ット回路である。
【0020】次に動作について説明する。この場合、暴
走検出以外の動作は、図6を用いて説明した従来のマイ
クロコンピュータの動作と同一であるので、その説明は
省略する。今、マイクロコンピュータが実行しているプ
ログラム中において、第1の命令としての“SID,5
5H”命令が実行されると、当該第1の命令のコードの
一部である“55H”が命令制御回路5から信号線mを
介してIDレジスタ13に設定される。次に第2の命令
としての“CID,55H”命令が実行されると、比較
回路14は信号線nを介して命令制御回路5から入力さ
れる前記第2の命令のコードの一部である。“55H”
と、信号線oを介して入力されるIDレジスタ13に保
持されている値とを比較し、比較結果信号を信号線pを
介してリセット回路15に出力する。リセット回路15
は信号線pを介して入力される前記比較結果信号がロー
レベルになった時、すなわち第2の命令である“CI
D”命令を実行した時に命令制御回路5から信号線nを
介して比較回路14に入力される命令のコードの一部
と、信号線oを介して入力されるIDレジスタ13に保
持されている値が一致しなかった場合に、CPU1をリ
セットするリセット信号を信号線qを介して出力する。
【0021】図2はこのような実施例1によるマイクロ
コンピュータにおいて、サブルーチンコールを行う時に
暴走が発生した場合の暴走検出方法を示す説明図であ
る。次にこの図2を用いて、実施例1のマイクロコンピ
ュータにおけるサブルーチンコール実行時の動作につい
て説明する。なお、暴走検出以外の動作については、図
6を用いて説明した従来のマイクロコンピュータの動作
と同一であるので、その説明は省略する。
【0022】まず、メインルーチンの先頭番地におい
て、“SID,00H”命令を実行し、IDレジスタ1
3に“00H”を設定する。処理が進行してプログラム
カウンタ3が“0100H”になった時、“JSR,1
000H”命令を実行して、CPU1はサブルーチンで
ある“1000H”番地の命令を実行する。“1000
H”番地の命令は“SID,55H”であるので、ID
レジスタ13には“55H”が設定される。次にサブル
ーチンの終わりにおいて、“CID,55H”命令を実
行し、IDレジスタ13に保持されている値と、“CI
D,55H”命令のコードの一部である“55H”を比
較回路14において比較する。プログラムが正常に実行
された場合、“CID,55H”命令実行時においてI
Dレジスタ13に保持されている値は“55H”である
ので、比較回路14から信号線pを介して出力される比
較結果信号はハイレベルであり、リセット回路15は信
号線qを介してリセット信号を出力しないので、CPU
1はリセットされず、そのままプログラムを実行する。
【0023】もし、“JSR,1000H”命令の実行
時においてプログラムカウンタの誤動作が発生し、例え
ばCPU1がサブルーチンの“1000H”番地の命令
をとばして“1001H”番地から命令を実行したとす
ると、サブルーチンの終わりにおいて“CID,55
H”命令を実行した時に、IDレジスタ13に保持され
ている値は“00H”のままである。従って、比較回路
14から信号線pを介して出力される比較結果信号はロ
ーレベルとなり、リセット回路15は信号線qを介して
リセット信号を出力し、CPU1をリセットする。
【0024】以上のように、この実施例1においては、
第1の命令である“SID”命令と第2の命令である
“CID”命令とを、正常動作時にはリセットがかから
ないようにプログラム中に多数配置し、“SID”命令
でIDレジスタ13に設定した値を“CID”命令でチ
ェックすることによって、マイクロコンピュータの暴走
を監視することができる。
【0025】なお、上記実施例1においては、“CI
D”命令によって暴走と判断した時に、マイクロコンピ
ュータをリセットする場合について説明したが、比較回
路14の比較結果に従って割り込み信号を発生し、CP
U1に割り込み処理を行わせるようにしてもよく、上記
実施例と同様にして暴走を検出することができる。
【0026】実施例2.次に、この発明の実施例2を図
について説明する。図3は請求項2に記載した発明の一
実施例を示すブロック図で、相当部分には図1と同一符
号を付してその説明を省略する。図において、16はC
PU1がサブルーチン呼び出し命令やサブルーチンから
メインルーチンへの復帰命令などのサブルーチン演算命
令を実行した時に、CPU1の命令制御回路5から信号
線rを介して送られてくる、当該サブルーチン演算命令
のコードの一部に含まれているデータを保持する働きを
する点で、図1に符号13を付したものとは異なった記
憶手段としてのIDレジスタである。なお、このサブル
ーチン演算命令のコードの一部に含まれるデータとは、
それら各サブルーチン演算命令のオペレションコード等
を意味している。より詳しくは、サブルーチン呼び出し
命令の場合には、“JSR,1000H,55H”とし
て表される命令の“55H”の部分に相当し、“100
0H”は飛び先番地のデータである。また、サブルーチ
ンからの復帰命令においては、“RTS,55H”とし
て表される命令の“55H”の部分に相当する。
【0027】17はCPU1がサブルーチン呼び出し命
令やサブルーチンからメインルーチンへの復帰命令など
のサブルーチン演算命令を実行した時にプログラムカウ
ンタ3の計数値が変化した後、命令制御回路5から信号
線sを介して入力されるROM2のデータと、信号線o
を介して入力されるIDレジスタ16の保持データとを
比較し、その比較結果の信号を信号線pに出力する働き
をする点で、図1に符号14を付したものとは異なった
比較手段としての比較回路である。なお、このプログラ
ムカウンタ3の計数値が変化した後に命令制御回路5か
ら信号線sを介して入力されるROM2のデータとは、
サブルーチン呼び出し命令の場合には、“JSR,10
00H,55H”命令を実行した時に実行される、サブ
ルーチンの先頭番地“1000H”のデータを意味して
おり、サブルーチンからのメインルーチンの復帰命令に
おいては、スタックレジスタ4に“0101H”が退避
されているとした場合に、“RTS,55H”命令を実
行した時に実行する、メインルーチンの復帰先番地であ
る“0101H”番地のデータを意味している。
【0028】次に動作について説明する。ここで、図4
はこのような実施例2によるマイクロコンピュータにお
いて、サブルーチンコールを行う時に暴走が発生した場
合の暴走検出方法を示す説明図である。次に、この図4
を用いて、実施例2におけるマイクロコンピュータの動
作について説明する。なお、暴走検出以外の動作につい
ては、図6を用いて説明した従来のマイクロコンピュー
タの動作と同一であるので、その説明は省略する。
【0029】マイクロコンピュータが実行しているプロ
グラムの“0100H”番地において、“JSR,10
00H,55H”命令を実行すると、命令のコードの一
部である“55H”が命令制御回路5から信号線rを介
してIDレジスタ16に設定される。次に、現在のプロ
グラムカウンタ3の値である“0101H”はスタック
レジスタ4に退避され、プログラムカウンタ3には新し
く“1000H”が設定されるので、CPU1はサブル
ーチンの先頭番地である“1000H”番地から命令を
実行する。命令制御回路5は、信号線1を介してデータ
バス9に出力され、信号線eを介して入力されるROM
2の“1000H”番地のデータを、信号線sを介して
比較回路17に出力する。
【0030】比較回路17は、信号線oを介して入力さ
れるIDレジスタ16の保持データと、命令制御回路5
から信号線sを介して入力されるサブルーチンの先頭番
地である“1000H”番地のデータを比較し、比較結
果信号を信号線pに出力する。信号線pに出力される比
較結果信号は、信号線oを介して入力されるIDレジス
タ16に保持されている値と、命令制御回路5から信号
線sを介して入力されるサブルーチンの先頭番地のデー
タが一致しない場合においてはローレベルであり、両者
が一致した場合、もしくはサブルーチン演算命令以外を
実行している場合にはハイレベルである。また、リセッ
ト回路15は比較回路17から信号線pを介して入力さ
れる比較結果信号がローレベルとなった時に、信号線q
を介してCPU1をリセットするためのリセット信号を
出力する。
【0031】なお、プログラム作成時には、正常動作時
においてリセットがかからないように、“JSR,10
00H,55H”命令のコードの一部である“55H”
と、サブルーチンの先頭番地である“1000H”番地
のデータが一致するようにプログラムしておく。もし、
“JSR,1000H,55H”命令の実行時において
プログラムカウンタ3の誤動作が発生し、例えばCPU
1がサブルーチンの“1000H”番地の命令をとばし
て“1001H”番地から命令を実行したとすると、
“1001H”番地のデータは“AAH”であるのでC
PU1はリセットされる。
【0032】次にサブルーチンの処理が進み、“RT
S,55H”命令が実行されると、当該命令のコードの
一部である“55H”が命令制御回路5から信号線rを
介してIDレジスタ16に設定される。プログラムカウ
ンタ3にはスタックレジスタ4に退避していた“010
1H”が新しく設定されるので、CPU1はメインルー
チンの復帰先番地である“0101H”番地から命令を
実行する。そのとき、命令制御回路5は、ROM2から
信号線1を介してデータバス9に出力され、信号線eを
介して入力される“0101H”番地のデータを、信号
線sを介して比較回路17に出力する。
【0033】比較回路17は、信号線oを介して入力さ
れるIDレジスタ16の保持データと、命令制御回路5
から信号線sを介して入力されるメインルーチンの復帰
先番地である“0101H”番地のデータを比較し、比
較結果信号を信号線pに出力する。信号線pに出力され
る比較結果信号は、信号線oを介して入力されるIDレ
ジスタ16に保持されている値と、命令制御回路5から
信号線sを介して入力されるメインルーチンの復帰先番
地のデータが一致しない場合においては、ローレベルで
あり、両者が一致した場合、もしくはサブルーチン演算
命令以外を実行している場合にはハイレベルである。ま
た、リセット回路15は比較回路17から信号線pを介
して入力される比較結果信号がローレベルになった時
に、信号線qを介してCPU1をリセットするためのリ
セット信号を出力する。
【0034】なお、プログラム作成時には、正常動作時
においてリセットがかからないように“RTS,55
H”命令のコードの一部である“55H”と、メインル
ーチンの復帰先番地である“0101H”番地のデータ
が一致するようにプログラムしておく。もし“RTS,
55H”命令の実行時においてプログラムカウンタ3の
誤動作が発生し、例えばCPU1がメインルーチンの
“0101H”番地の命令をとばして“0110H”番
地から命令を実行したとすると、“0110H”番地の
データは“AAH”であるのでCPU1はリセットされ
る。
【0035】以上のように、この実施例2においては、
サブルーチン呼び出し命令、あるいはサブルーチンから
メインルーチンへの復帰命令の一部に含まれるデータ
と、サブルーチンの先頭番地のデータ、あるいはメイン
ルーチンの復帰先番地のデータが一致するようにプログ
ラムを作成しておくことによって、サブルーチン演算命
令を実行した時に発生するプログラムカウンタ3の誤動
作を検出することが可能となり、マイクロコンピュータ
の暴走を監視することができる。
【0036】なお、上記実施例2においては、“JS
R”命令あるいは“RTS”命令によって暴走と判断し
た時に、マイクロコンピュータをリセットする場合につ
いて説明したが、比較回路17の比較結果に従って割り
込み信号を発生し、CPU1に割り込み処理を行わせる
ようにしてもよく、上記実施例と同様にして暴走を検出
することができる。
【0037】実施例3.次に、この発明の実施例3を図
について説明する。図5は請求項3に記載した発明の一
実施例を示すブロック図で、相当部分には図1と同一符
号を付してその説明を省略する。図において、18はア
ドレスバス8およびデータバス9に信号線vおよびwを
介して接続され、例えば時計処理などを当該マイクロコ
ンピュータの演算とは非同期に行っており、予め定めら
れたサイクルが経過した後に、信号線uを介してCPU
1に割り込み要求信号を出力する周辺回路であり、例え
ばタイマ回路などがこれに当たる。19はこの周辺回路
18から信号線uを介して割り込み要求信号が入力され
た時に、予めハードウェアで決められているデータを保
持する働きをする点で、図1に符号13を付したもの、
あるいは図3に符号16を付したものとは異なった記憶
手段としてのIDレジスタである。
【0038】20はCPU1が周辺回路18からの割り
込み要求の処理を実行した時に、プログラムカウンタ3
の計数値が変化した後に命令制御回路5から信号線tを
介して入力されるROM2のデータと、信号線oを介し
て入力されるIDレジスタ19の保持データとを比較
し、その比較結果の信号を信号線pに出力する働きをす
る点で、図1に符号14を付したもの、あるいは図3に
符号17を付したものとは異なった比較手段としての比
較回路である。なお、このプログラムカウンタ3の計数
値が変化した後に命令制御回路5から信号線tを介して
入力されるROM2のデータとは、周辺回路18からの
割り込み要求があった場合に実行される割り込みルーチ
ンの先頭番地のデータを意味している。
【0039】次に動作について説明する。なお、暴走検
出以外の動作については、図6を用いて説明した従来の
マイクロコンピュータの動作と同一であるので、その説
明は省略する。マイクロコンピュータがプログラムを実
行しているときに、周辺回路18から信号線uを介して
割り込み要求信号が出力されると、IDレジスタ19に
は予めハードウェアで決められているデータ、例えば
“55H”が設定される。換言すればIDレジスタ19
は周辺回路18から信号線uを介して割り込み要求信号
が入力されると、“55H”が設定されるようにハード
ウェア的に構成されている。また、CPU1では信号線
uを介して割り込み要求信号が入力されることによっ
て、現在のプログラムカウンタ3の値がスタックレジス
タ4に退避され、プログラムカウンタ3には予めハード
ウェアで決められているアドレス、例えば“1000
H”が新たに設定される。換言すれば、プログラムカウ
ンタ3は周辺回路18から信号線uを介して割り込み要
求信号が入力されると、現在のプログラムカウンタ3の
値をスタックレジスタ4に退避した後、“1000H”
を設定するようにハードウェア的に構成されている。
【0040】上記動作によって、プログラムカウンタ3
には“1000H”が設定されるので、CPU1は割り
込みルーチンの先頭番地である“1000H”番地から
命令を実行する。命令制御回路5は、信号線1を介して
データバス9に出力され、信号線eを介して入力される
ROM2の“1000H”番地のデータを、信号線tを
介して比較回路20に出力する。比較回路20は、信号
線oを介して入力されるIDレジスタ19の保持データ
と、命令制御回路5から信号線tを介して入力される割
り込みルーチンの先頭番地である“1000H”番地の
データを比較し、比較結果信号を信号線pに出力する。
信号線pに出力される比較結果信号は、信号線oを介し
て入力されるIDレジスタ19に保持されている値と、
命令制御回路5から信号線tを介して入力される割り込
みルーチンの先頭番地のデータが一致しない場合におい
てはローレベルであり、両者が一致した場合、もしくは
割り込み処理を行っていない場合にはハイレベルであ
る。リセット回路15は比較回路20から信号線pを介
して入力される比較結果信号がローレベルとなった時
に、信号線qを介してCPU1をリセットするためのリ
セット信号を出力する。
【0041】なお、プログラム作成時には、正常動作時
においてリセットがかからないように、割り込み処理時
にIDレジスタ19に設定される“55H”と、割り込
みルーチンの先頭番地である“1000H”番地のデー
タが一致するようにプログラムしておく。もし、割り込
み処理の実行時においてプログラムカウンタ3の誤動作
が発生すると、信号線oを介して入力されるIDレジス
タ19に保持されている値と、命令制御回路5から信号
線tを介して入力されるデータが一致しないので、CP
U1はリセットされる。
【0042】以上のように、この実施例3においては、
割り込み処理時にIDレジスタ19に設定されるデータ
と、割り込みルーチンの先頭番地のデータが一致するよ
うにプログラムを作成しておくことによって、割り込み
処理を実行した時に発生するプログラムカウンタ3の誤
動作を検出することが可能となり、マイクロコンピュー
タの暴走を監視することができる。
【0043】なお、上記実施例3においては、割り込み
処理時に暴走と判断した時に、マイクロコンピュータを
リセットする場合について説明したが、比較回路20の
比較結果に従って割り込み信号を発生し、CPU1に割
り込み処理を行わせるようにしてもよく、上記実施例と
同様にして暴走を検出することができる。
【0044】
【発明の効果】以上のように、請求項1に記載の発明に
よれば、第1の命令の実行時に当該命令のコードに含ま
れているデータを記憶手段に保持し、第2の命令の実行
時に比較手段が行う、当該記憶手段の保持データと第2
の命令のコードに含まれているデータの比較の結果に基
づいて、割り込み手段よりCPUに対する割り込みを発
生させるように構成したので、プログラムカウンタの内
容を変更する際の、プログラムカウンタの誤動作を直接
検出することができ、暴走状態となったことをより早く
検出可能なマイクロコンピュータが得られる効果があ
る。
【0045】また、請求項2に記載の発明によれば、サ
ブルーチン演算命令実行時に当該命令のコードに含まれ
ているデータを記憶手段に保持し、比較手段が行う、当
該記憶手段の保持データと、サブルーチン演算命令実行
後に新たに設定されたプログラムカウンタの示す番地の
データとの比較の結果に基づいて、割り込み手段よりC
PUに対する割り込みを発生させるように構成したの
で、サブルーチン演算命令実行時においてプログラムカ
ウンタの内容を変更する際の、プログラムカウンタの誤
動作を直接検出することができ、暴走状態となったこと
をより早く検出可能なマイクロコンピュータが得られる
効果がある。
【0046】また、請求項3に記載の発明における割り
込み手段は、周辺回路からの割り込み要求実行時に予め
決められた所定のデータを記憶手段に保持し、比較手段
が行う、当該記憶手段の保持データと、割り込み要求の
実行後に新たに設定されたプログラムカウンタの示す番
地のデータとの比較の結果に基づいて、割り込み手段よ
りCPUに対する割り込みを発生させるように構成した
ので、割り込み処理時においてプログラムカウンタの内
容を変更する際の、プログラムカウンタの誤動作を直接
検出することができ、暴走状態となったことをより早く
検出可能なマイクロコンピュータが得られる効果があ
る。
【図面の簡単な説明】
【図1】この発明の実施例1によるマイクロコンピュー
タを示すブロック図である。
【図2】上記実施例における暴走の検出方法を説明する
ための説明図である。
【図3】この発明の実施例2によるマイクロコンピュー
タを示すブロック図である。
【図4】上記実施例における暴走の検出方法を説明する
ための説明図である。
【図5】この発明の実施例3によるマイクロコンピュー
タを示すブロック図である。
【図6】従来のマイクロコンピュータを示すブロック図
である。
【図7】その暴走の検出方法を説明するための説明図で
ある。
【符号の説明】
1 CPU(中央処理装置) 3 プログラムカウンタ 13 記憶手段(IDレジスタ) 14 比較手段(比較回路) 15 割り込み手段(リセット回路) 16 記憶手段(IDレジスタ) 17 比較手段(比較回路) 18 周辺回路 19 記憶手段(IDレジスタ) 20 比較手段(比較回路)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 第1の命令の実行時に、中央処理装置よ
    り送られてくるデータを保持する記憶手段と、第2の命
    令の実行時に、前記中央処理装置より送られてくるデー
    タを前記記憶手段に保持されているデータと比較する比
    較手段と、前記比較手段の比較結果に基づいて前記中央
    処理装置に対する割り込みを発生させる割り込み手段と
    を備えたマイクロコンピュータ。
  2. 【請求項2】 サブルーチン呼び出し命令や前記サブル
    ーチンからメインルーチンへの復帰命令の実行時に、中
    央処理装置より送られてくるデータを保持する記憶手段
    と、前記サブルーチン呼び出し命令やサブルーチンから
    のメインルーチンへの復帰命令の実行後に、新しく設定
    されたプログラムカウンタの示す番地のデータを、前記
    記憶手段に保持されているデータと比較する比較手段
    と、前記比較手段の比較結果に基づいて前記中央処理装
    置に対する割り込みを発生させる割り込み手段とを備え
    たマイクロコンピュータ。
  3. 【請求項3】 周辺回路からの割り込み要求の実行時
    に、予め定められた所定のデータを保持する記憶手段
    と、前記割り込み要求の実行後に、新しく設定されたプ
    ログラムカウンタの示す番地のデータを、前記記憶手段
    に保持されているデータと比較する比較手段と、前記比
    較手段の比較結果に基づいて中央処理装置に対する割り
    込みを発生させる割り込み手段とを備えたマイクロコン
    ピュータ。
JP5211892A 1993-08-26 1993-08-26 マイクロコンピュータ Pending JPH0764822A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5211892A JPH0764822A (ja) 1993-08-26 1993-08-26 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5211892A JPH0764822A (ja) 1993-08-26 1993-08-26 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH0764822A true JPH0764822A (ja) 1995-03-10

Family

ID=16613374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5211892A Pending JPH0764822A (ja) 1993-08-26 1993-08-26 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JPH0764822A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014035740A (ja) * 2012-08-10 2014-02-24 Denso Corp 電子制御装置
KR20180019594A (ko) * 2015-06-22 2018-02-26 로베르트 보쉬 게엠베하 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014035740A (ja) * 2012-08-10 2014-02-24 Denso Corp 電子制御装置
KR20180019594A (ko) * 2015-06-22 2018-02-26 로베르트 보쉬 게엠베하 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
JP2018525712A (ja) * 2015-06-22 2018-09-06 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置
US11113099B2 (en) 2015-06-22 2021-09-07 Robert Bosch Gmbh Method and apparatus for protecting a program counter structure of a processor system and for monitoring the handling of an interrupt request

Similar Documents

Publication Publication Date Title
JP3176093B2 (ja) マイクロプロセッサの割込み制御装置
US5471620A (en) Data processor with means for separately receiving and processing different types of interrupts
US5042002A (en) Programmable controller with a directed sequencer
JP3397230B2 (ja) デバッグシステム
JP3202497B2 (ja) 情報処理装置
US4320454A (en) Apparatus and method for operand fetch control
JPH0764822A (ja) マイクロコンピュータ
JP2677719B2 (ja) 情報処理装置
US5761482A (en) Emulation apparatus
AU626067B2 (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
KR940011040B1 (ko) 마이크로컴퓨터
JP2001256044A (ja) データ処理装置
JP2000076081A (ja) タスクマネージャー及びプログラム記録媒体
EP0419174A2 (en) Data processing apparatus based on microprogram control
JPH0764886A (ja) シリアルインターフェイス装置を有する処理装置
KR100442290B1 (ko) 프로그램 카운터 제어회로
JP3171615B2 (ja) データ転送のリトライ制御方式
JP3231505B2 (ja) Mpuエミュレータ装置
JPH08263304A (ja) 演算処理装置
JPH09319592A (ja) マイクロコンピュータ
JPS63155330A (ja) マイクロプログラム制御装置
JP2503210B2 (ja) マイクロプログラム制御装置
JPS6118045A (ja) プログラムの暴走検出方式
JPH06187140A (ja) 処理装置
WO1993025967A1 (en) System for aiding debugging of integrated circuit microprocessor