JPH1063541A - コンピュータシステムのプログラム暴走監視装置 - Google Patents
コンピュータシステムのプログラム暴走監視装置Info
- Publication number
- JPH1063541A JPH1063541A JP8217359A JP21735996A JPH1063541A JP H1063541 A JPH1063541 A JP H1063541A JP 8217359 A JP8217359 A JP 8217359A JP 21735996 A JP21735996 A JP 21735996A JP H1063541 A JPH1063541 A JP H1063541A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- address
- program
- branch destination
- instruction
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 CPUの大きな負荷となることなくプログラ
ム暴走を適切に検出することができるコンピュータシス
テムのプログラム暴走監視装置を提供する。 【解決手段】 プログラムの分岐命令によって分岐した
直後に実行すべき命令が記憶されたプログラムメモリの
記憶位置を示す分岐先アドレスを記憶した分岐先記憶手
段が備えられ、プログラムカウンタの出力値が不連続に
変化したことを検知して分岐検知信号を発生し、その分
岐検知信号に応答してプログラムカウンタの出力値によ
って指定されるアドレスと分岐先記憶手段に記憶された
分岐先アドレスとを比較してその比較結果が不一致であ
るならば暴走検出信号を発生する。 【効果】 CPUが暴走検出のために特定の処理を実行
することなくプログラム暴走を適切に検出することがで
きる。
ム暴走を適切に検出することができるコンピュータシス
テムのプログラム暴走監視装置を提供する。 【解決手段】 プログラムの分岐命令によって分岐した
直後に実行すべき命令が記憶されたプログラムメモリの
記憶位置を示す分岐先アドレスを記憶した分岐先記憶手
段が備えられ、プログラムカウンタの出力値が不連続に
変化したことを検知して分岐検知信号を発生し、その分
岐検知信号に応答してプログラムカウンタの出力値によ
って指定されるアドレスと分岐先記憶手段に記憶された
分岐先アドレスとを比較してその比較結果が不一致であ
るならば暴走検出信号を発生する。 【効果】 CPUが暴走検出のために特定の処理を実行
することなくプログラム暴走を適切に検出することがで
きる。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムにおけるプログラム暴走監視装置に関する。
テムにおけるプログラム暴走監視装置に関する。
【0002】
【従来の技術】コンピュータシステムにおいては、CP
U(中央処理装置)の動作が外乱ノイズ等の影響により
プログラムの実行順に従った正常な動作から逸脱してい
わゆるプログラム暴走することがある。このプログラム
暴走を監視するために実際のプログラム処理中において
一定時間毎に特定の処理がCPUにて実行されるように
しておき、その特定の処理の実行結果からコンピュータ
の正常動作が確認されていた。
U(中央処理装置)の動作が外乱ノイズ等の影響により
プログラムの実行順に従った正常な動作から逸脱してい
わゆるプログラム暴走することがある。このプログラム
暴走を監視するために実際のプログラム処理中において
一定時間毎に特定の処理がCPUにて実行されるように
しておき、その特定の処理の実行結果からコンピュータ
の正常動作が確認されていた。
【0003】
【発明が解決しようとする課題】しかしながら、そのよ
うな従来のプログラム暴走監視においては、かかる特定
の処理を実行する間隔である一定時間を長く設定すれ
ば、特定の処理によるCPUに課せられる負荷は少なく
て済むが、CPUがプログラム暴走した場合にそのプロ
グラム暴走が生じてから検出するまでの誤動作期間が長
くなり、その誤動作期間に例えば、RAM(ランダムア
クセスメモリ)の記憶データが不適切に書き換えられる
等のコンピュータシステムが受ける悪影響が甚大であ
る。一方、一定時間を短く設定すれば、誤動作期間が短
くなるが、特定の処理によるCPUに課せられる負荷は
大きくなるという問題がある。
うな従来のプログラム暴走監視においては、かかる特定
の処理を実行する間隔である一定時間を長く設定すれ
ば、特定の処理によるCPUに課せられる負荷は少なく
て済むが、CPUがプログラム暴走した場合にそのプロ
グラム暴走が生じてから検出するまでの誤動作期間が長
くなり、その誤動作期間に例えば、RAM(ランダムア
クセスメモリ)の記憶データが不適切に書き換えられる
等のコンピュータシステムが受ける悪影響が甚大であ
る。一方、一定時間を短く設定すれば、誤動作期間が短
くなるが、特定の処理によるCPUに課せられる負荷は
大きくなるという問題がある。
【0004】そこで、本発明の目的は、CPUの大きな
負荷となることなくプログラム暴走を適切に検出するこ
とができるコンピュータシステムのプログラム暴走監視
装置を提供することにある。
負荷となることなくプログラム暴走を適切に検出するこ
とができるコンピュータシステムのプログラム暴走監視
装置を提供することにある。
【0005】
【課題を解決するための手段】本発明のコンピュータシ
ステムのプログラム暴走監視装置は、少なくとも1つの
分岐命令を含む複数の命令からなるプログラムが記憶さ
れたプログラムメモリの記憶位置をプログラムカウンタ
の出力値によってアドレス指定し、その指定された前記
プログラムメモリの記憶位置に記憶されたプログラムの
命令を読み出して実行するコンピュータシステムのプロ
グラム暴走監視装置であって、プログラムの分岐命令に
よって分岐した直後に実行すべき命令が記憶されたプロ
グラムメモリの記憶位置を示す分岐先アドレスを記憶し
た分岐先記憶手段と、プログラムカウンタの出力値が不
連続に変化したことを検知して分岐検知信号を発生する
分岐検知手段と、分岐検知信号に応答してプログラムカ
ウンタの出力値によって指定されるアドレスと分岐先記
憶手段に記憶された分岐先アドレスとを比較してその比
較結果が不一致であるならば暴走検出信号を発生する比
較手段とを備えたことを特徴としている。
ステムのプログラム暴走監視装置は、少なくとも1つの
分岐命令を含む複数の命令からなるプログラムが記憶さ
れたプログラムメモリの記憶位置をプログラムカウンタ
の出力値によってアドレス指定し、その指定された前記
プログラムメモリの記憶位置に記憶されたプログラムの
命令を読み出して実行するコンピュータシステムのプロ
グラム暴走監視装置であって、プログラムの分岐命令に
よって分岐した直後に実行すべき命令が記憶されたプロ
グラムメモリの記憶位置を示す分岐先アドレスを記憶し
た分岐先記憶手段と、プログラムカウンタの出力値が不
連続に変化したことを検知して分岐検知信号を発生する
分岐検知手段と、分岐検知信号に応答してプログラムカ
ウンタの出力値によって指定されるアドレスと分岐先記
憶手段に記憶された分岐先アドレスとを比較してその比
較結果が不一致であるならば暴走検出信号を発生する比
較手段とを備えたことを特徴としている。
【0006】
【発明の実施の形態】以下、本発明の実施例を図面を参
照しつつ詳細に説明する。図1は本発明によるプログラ
ム暴走監視装置を備えたコンピュータシステムを概略的
に示している。このコンピュータシステムにおいて、C
PU(中央処理装置)11の内蔵のプログラムカウンタ
(PC)11aの出力から延びたアドレスバス12には
RAM(ランダムアクセスメモリ)13、ROM(リー
ドオンリメモリ)14、分岐先メモリ15及び暴走監視
回路16が接続されている。また、CPU(中央処理装
置)11から延びたデータバス17にはRAM13及び
ROM14が接続されている。
照しつつ詳細に説明する。図1は本発明によるプログラ
ム暴走監視装置を備えたコンピュータシステムを概略的
に示している。このコンピュータシステムにおいて、C
PU(中央処理装置)11の内蔵のプログラムカウンタ
(PC)11aの出力から延びたアドレスバス12には
RAM(ランダムアクセスメモリ)13、ROM(リー
ドオンリメモリ)14、分岐先メモリ15及び暴走監視
回路16が接続されている。また、CPU(中央処理装
置)11から延びたデータバス17にはRAM13及び
ROM14が接続されている。
【0007】ROM14にはCPU11が実行するプロ
グラムが予め記憶され、CPU11は内蔵のプログラム
カウンタ11aの値で指定されるROM14のアドレス
から命令を読み出してその命令を実行する。分岐先メモ
リ15は例えば、リードオンリメモリからなり、ROM
14の各アドレスに対応した記憶位置を有している。す
なわち、分岐先メモリ15にはROM14と同一のアド
レスが割り当てられててる。更に、分岐先メモリ15に
はROM14に記憶されたプログラム中の強制ジャンプ
命令や条件ジャンプ命令等の分岐命令の分岐先アドレス
だけが予め記憶されている。プログラム中の最初のアド
レスから最初の分岐命令のアドレスまでの分岐先メモリ
15の記憶位置にはその最初の分岐命令の分岐先アドレ
スが記憶される。またプログラム中の1つの分岐命令の
アドレスの次のアドレスから次の分岐命令のアドレスま
での分岐先メモリ15の記憶位置には次の分岐命令の分
岐先アドレスが記憶される。分岐先メモリ15はアドレ
スバス12から供給されるアドレスデータが示すアドレ
スに記憶された分岐先アドレスをデータ値として出力す
る。
グラムが予め記憶され、CPU11は内蔵のプログラム
カウンタ11aの値で指定されるROM14のアドレス
から命令を読み出してその命令を実行する。分岐先メモ
リ15は例えば、リードオンリメモリからなり、ROM
14の各アドレスに対応した記憶位置を有している。す
なわち、分岐先メモリ15にはROM14と同一のアド
レスが割り当てられててる。更に、分岐先メモリ15に
はROM14に記憶されたプログラム中の強制ジャンプ
命令や条件ジャンプ命令等の分岐命令の分岐先アドレス
だけが予め記憶されている。プログラム中の最初のアド
レスから最初の分岐命令のアドレスまでの分岐先メモリ
15の記憶位置にはその最初の分岐命令の分岐先アドレ
スが記憶される。またプログラム中の1つの分岐命令の
アドレスの次のアドレスから次の分岐命令のアドレスま
での分岐先メモリ15の記憶位置には次の分岐命令の分
岐先アドレスが記憶される。分岐先メモリ15はアドレ
スバス12から供給されるアドレスデータが示すアドレ
スに記憶された分岐先アドレスをデータ値として出力す
る。
【0008】なお、分岐先メモリ15としてはRAMを
用いることもできる。その場合にはシステム起動時に必
要な分岐先アドレスがそのRAMに書き込まれるように
すれば良いである。暴走監視回路16は図2に示すよう
に、分岐先レジスタ20と、アドレスバス12に各々接
続されたアドレスインクリメンタ21、分岐検知回路2
2及び分岐先アドレス比較回路23とを有している。分
岐先レジスタ20は分岐先メモリ15から読み出された
分岐先アドレスを保持する。この分岐先アドレスは次の
命令がCPU11において設置されるまで(分岐した場
合には分岐先アドレスがCPU11のプログラムカウン
タ11aから出力されるまで)保持されて出力される。
アドレスインクリメンタ21はプログラマブルカウンタ
からなり、CPU11から供給される動作情報信号の内
容に応じてアドレスバス12からアドレスデータを入力
してそれを計数初期値とし、クロックパルスの発生タイ
ミングで1ずつカウントアップする。よって、アドレス
インクリメンタ21の出力値はCPU11が分岐命令で
実行アドレスをジャンプしない限りはプログラムカウン
タ11aの計数値と同一である。分岐検知回路22はア
ドレスインクリメンタ21の出力に接続され、アドレス
インクリメンタ21の出力値とアドレスバス12のアド
レスデータ値とを比較し、その比較結果が不一致のとき
分岐検知信号を発生する。分岐先アドレス比較回路23
は分岐検知回路22の出力に接続され、分岐検知回路2
2から分岐検知信号が供給されるようになっている。更
に、分岐先アドレス比較回路23は、分岐検知回路22
から分岐検知信号が供給されたときには、分岐レジスタ
20が保持出力している分岐先アドレスとアドレスバス
12から供給されるアドレスデータが示すアドレスとを
比較する。分岐先アドレス比較回路23の比較結果が暴
走監視出力信号としてCPU11に出力される。
用いることもできる。その場合にはシステム起動時に必
要な分岐先アドレスがそのRAMに書き込まれるように
すれば良いである。暴走監視回路16は図2に示すよう
に、分岐先レジスタ20と、アドレスバス12に各々接
続されたアドレスインクリメンタ21、分岐検知回路2
2及び分岐先アドレス比較回路23とを有している。分
岐先レジスタ20は分岐先メモリ15から読み出された
分岐先アドレスを保持する。この分岐先アドレスは次の
命令がCPU11において設置されるまで(分岐した場
合には分岐先アドレスがCPU11のプログラムカウン
タ11aから出力されるまで)保持されて出力される。
アドレスインクリメンタ21はプログラマブルカウンタ
からなり、CPU11から供給される動作情報信号の内
容に応じてアドレスバス12からアドレスデータを入力
してそれを計数初期値とし、クロックパルスの発生タイ
ミングで1ずつカウントアップする。よって、アドレス
インクリメンタ21の出力値はCPU11が分岐命令で
実行アドレスをジャンプしない限りはプログラムカウン
タ11aの計数値と同一である。分岐検知回路22はア
ドレスインクリメンタ21の出力に接続され、アドレス
インクリメンタ21の出力値とアドレスバス12のアド
レスデータ値とを比較し、その比較結果が不一致のとき
分岐検知信号を発生する。分岐先アドレス比較回路23
は分岐検知回路22の出力に接続され、分岐検知回路2
2から分岐検知信号が供給されるようになっている。更
に、分岐先アドレス比較回路23は、分岐検知回路22
から分岐検知信号が供給されたときには、分岐レジスタ
20が保持出力している分岐先アドレスとアドレスバス
12から供給されるアドレスデータが示すアドレスとを
比較する。分岐先アドレス比較回路23の比較結果が暴
走監視出力信号としてCPU11に出力される。
【0009】図3はROM14にアドレス順に記憶され
たプログラムの命令を部分的に示している。ここで、一
般命令とは分岐を伴わない命令であり、例えば、演算命
令、データ移動命令及び制御命令である。分岐命令は無
条件に分岐する強制ジャンプ命令、或いは所定の条件を
満足すれば分岐しその条件を満足しなれば分岐しない条
件ジャンプ命令のように分岐先アドレスを有する命令で
ある。各分岐命令には分岐先アドレスが($AA)のよ
うに付加されている。なお、「$」はそれに続く値がア
ドレスであることを示し、また、分かり易くするために
16進数で2桁のアドレスとしている。
たプログラムの命令を部分的に示している。ここで、一
般命令とは分岐を伴わない命令であり、例えば、演算命
令、データ移動命令及び制御命令である。分岐命令は無
条件に分岐する強制ジャンプ命令、或いは所定の条件を
満足すれば分岐しその条件を満足しなれば分岐しない条
件ジャンプ命令のように分岐先アドレスを有する命令で
ある。各分岐命令には分岐先アドレスが($AA)のよ
うに付加されている。なお、「$」はそれに続く値がア
ドレスであることを示し、また、分かり易くするために
16進数で2桁のアドレスとしている。
【0010】図4は図3に示したプログラムに対応した
分岐先メモリ15の記憶内容をアドレス順に部分的に示
している。すなわち、図3のプログラムから分かるよう
に、ROM14のアドレス$04には分岐命令($A
A)が記憶されているので、分岐先メモリ15のアドレ
ス$00から$04までの各記憶位置にはアドレス$A
Aが記憶されている。ROM14においてアドレス$0
4の次に分岐命令が存在するのはアドレス$1Aであ
り、そのアドレス$1Aには分岐命令($BB)が記憶
されているので、分岐先メモリ15のアドレス$05〜
$1Aの各記憶位置にはアドレス$BBが記憶されてい
る。また同様に、ROM14においてアドレス$1Aの
次に分岐命令が存在するのはアドレス$23であり、そ
のアドレス$23Aには分岐命令($CC)が記憶され
ているので、分岐先メモリ15のアドレス$1B〜$2
3の各記憶位置にはアドレス$CCが記憶されている。
このようにプログラム中の1つの分岐命令のアドレスの
次のアドレスから次の分岐命令のアドレスまでの分岐先
メモリ15の各記憶位置には次の分岐命令の分岐先アド
レスが記憶される。
分岐先メモリ15の記憶内容をアドレス順に部分的に示
している。すなわち、図3のプログラムから分かるよう
に、ROM14のアドレス$04には分岐命令($A
A)が記憶されているので、分岐先メモリ15のアドレ
ス$00から$04までの各記憶位置にはアドレス$A
Aが記憶されている。ROM14においてアドレス$0
4の次に分岐命令が存在するのはアドレス$1Aであ
り、そのアドレス$1Aには分岐命令($BB)が記憶
されているので、分岐先メモリ15のアドレス$05〜
$1Aの各記憶位置にはアドレス$BBが記憶されてい
る。また同様に、ROM14においてアドレス$1Aの
次に分岐命令が存在するのはアドレス$23であり、そ
のアドレス$23Aには分岐命令($CC)が記憶され
ているので、分岐先メモリ15のアドレス$1B〜$2
3の各記憶位置にはアドレス$CCが記憶されている。
このようにプログラム中の1つの分岐命令のアドレスの
次のアドレスから次の分岐命令のアドレスまでの分岐先
メモリ15の各記憶位置には次の分岐命令の分岐先アド
レスが記憶される。
【0011】次に、CPU11が図3に示したプログラ
ムに従って動作する場合の暴走監視回路16の動作のに
ついて説明する。CPU11がプログラムのアドレス$
00の命令から実行を開始する場合、CPU11のプロ
グラムカウンタ11aによるクロックパルスに同期した
計数動作によってアドレス$00から順番にアドレスが
指定される。その指定アドレスを示すアドレスデータが
アドレスバス12を介してROM14及び分岐先メモリ
15に供給される。ROM14からは指定アドレスの記
憶位置の命令が読み出されてデータバス17を介してC
PU11に供給され、CPU11はROM14から命令
が供給される毎にその命令を解読して実行する。その命
令が分岐命令であるならば、その実行結果に応じて分岐
先アドレスに分岐するか否かが判別される。分岐しない
場合には、プログラムカウンタ11aの値は次のクロッ
クパルスに応答してそのままカウントアップされる。分
岐する場合には、プログラムカウンタ11aに分岐先ア
ドレスがセットされ、その分岐先アドレスを示すアドレ
スデータがアドレスバス12を介してROM14及び分
岐先メモリ15に供給される。ROM14からはその分
岐先アドレスの記憶位置の命令が読み出されてデータバ
ス17を介してCPU11に供給され、CPU11が命
令を解読して実行することにより、上記の動作を繰り返
すことになる。
ムに従って動作する場合の暴走監視回路16の動作のに
ついて説明する。CPU11がプログラムのアドレス$
00の命令から実行を開始する場合、CPU11のプロ
グラムカウンタ11aによるクロックパルスに同期した
計数動作によってアドレス$00から順番にアドレスが
指定される。その指定アドレスを示すアドレスデータが
アドレスバス12を介してROM14及び分岐先メモリ
15に供給される。ROM14からは指定アドレスの記
憶位置の命令が読み出されてデータバス17を介してC
PU11に供給され、CPU11はROM14から命令
が供給される毎にその命令を解読して実行する。その命
令が分岐命令であるならば、その実行結果に応じて分岐
先アドレスに分岐するか否かが判別される。分岐しない
場合には、プログラムカウンタ11aの値は次のクロッ
クパルスに応答してそのままカウントアップされる。分
岐する場合には、プログラムカウンタ11aに分岐先ア
ドレスがセットされ、その分岐先アドレスを示すアドレ
スデータがアドレスバス12を介してROM14及び分
岐先メモリ15に供給される。ROM14からはその分
岐先アドレスの記憶位置の命令が読み出されてデータバ
ス17を介してCPU11に供給され、CPU11が命
令を解読して実行することにより、上記の動作を繰り返
すことになる。
【0012】アドレスデータがアドレスバス12を介し
てROM14及び分岐先メモリ15に供給されると、上
記のようにROM14からは命令が読み出される一方、
分岐先メモリ15においてはアドレスデータで指定され
る記憶位置に記憶された分岐先アドレスが読み出されて
分岐レジスタ20に保持される。分岐レジスタ20に保
持された分岐先アドレスはプログラムカウンタ11aの
出力値が$00のときには直ちに分岐先アドレス比較回
路23に出力されるが、それ以降は上記したように次の
命令がCPU11において設置されるまで保持されて分
岐先アドレス比較回路23に供給される。
てROM14及び分岐先メモリ15に供給されると、上
記のようにROM14からは命令が読み出される一方、
分岐先メモリ15においてはアドレスデータで指定され
る記憶位置に記憶された分岐先アドレスが読み出されて
分岐レジスタ20に保持される。分岐レジスタ20に保
持された分岐先アドレスはプログラムカウンタ11aの
出力値が$00のときには直ちに分岐先アドレス比較回
路23に出力されるが、それ以降は上記したように次の
命令がCPU11において設置されるまで保持されて分
岐先アドレス比較回路23に供給される。
【0013】アドレスインクリメンタ21においては、
CPU11から供給される動作情報信号の内容に応じて
アドレスバス12からプログラムカウンタ11aの値で
あるアドレスデータが入力された後には、そのアドレス
データ値を初期値としてクロックパルスに同期してアッ
プ計数(インクリメント)を行なって出力するので、プ
ログラムカウンタ11aに分岐先アドレスがセットされ
ない限りにおいてはプログラムカウンタ11aの計数値
と同一の値が分岐検知回路22に出力される。よって、
プログラムカウンタ11aに分岐先アドレスがセットさ
れない限りにおいては分岐検知回路22はアドレスイン
クリメンタ21の出力値とアドレスバス12からのアド
レスデータ値とが一致するので分岐検知信号を発生しな
い。
CPU11から供給される動作情報信号の内容に応じて
アドレスバス12からプログラムカウンタ11aの値で
あるアドレスデータが入力された後には、そのアドレス
データ値を初期値としてクロックパルスに同期してアッ
プ計数(インクリメント)を行なって出力するので、プ
ログラムカウンタ11aに分岐先アドレスがセットされ
ない限りにおいてはプログラムカウンタ11aの計数値
と同一の値が分岐検知回路22に出力される。よって、
プログラムカウンタ11aに分岐先アドレスがセットさ
れない限りにおいては分岐検知回路22はアドレスイン
クリメンタ21の出力値とアドレスバス12からのアド
レスデータ値とが一致するので分岐検知信号を発生しな
い。
【0014】上記したように分岐動作が行われたためプ
ログラムカウンタ11aに分岐先アドレスがセットされ
た場合には、CPU11からアドレスインクリメンタ2
1に供給される動作情報信号の内容は直ちに変化せず、
アドレスインクリメンタ21の出力値は単にアップ計数
された値であるので、アドレスインクリメンタ21の出
力値とアドレスバス12からのアドレスデータ値とが一
致しない。これにより分岐検知回路22は分岐検知信号
を発生する。
ログラムカウンタ11aに分岐先アドレスがセットされ
た場合には、CPU11からアドレスインクリメンタ2
1に供給される動作情報信号の内容は直ちに変化せず、
アドレスインクリメンタ21の出力値は単にアップ計数
された値であるので、アドレスインクリメンタ21の出
力値とアドレスバス12からのアドレスデータ値とが一
致しない。これにより分岐検知回路22は分岐検知信号
を発生する。
【0015】分岐検知信号は分岐先アドレス比較回路2
3に供給されるので、この分岐検知信号に応答して分岐
先アドレス比較回路23は分岐レジスタ20から出力さ
れている分岐先アドレスとアドレスバス12から供給さ
れるアドレスデータが示す現アドレスとを比較する。分
岐先アドレスと現アドレスとが一致するならば、プログ
ラムカウンタ11aが示す実際に分岐した先のアドレス
が予め定められた分岐先アドレスと一致するので、分岐
動作は正しく行われたことなる。よって、分岐先アドレ
ス比較回路23は正常を示す暴走監視出力信号を出力す
る。
3に供給されるので、この分岐検知信号に応答して分岐
先アドレス比較回路23は分岐レジスタ20から出力さ
れている分岐先アドレスとアドレスバス12から供給さ
れるアドレスデータが示す現アドレスとを比較する。分
岐先アドレスと現アドレスとが一致するならば、プログ
ラムカウンタ11aが示す実際に分岐した先のアドレス
が予め定められた分岐先アドレスと一致するので、分岐
動作は正しく行われたことなる。よって、分岐先アドレ
ス比較回路23は正常を示す暴走監視出力信号を出力す
る。
【0016】一方、プログラムカウンタ11aの出力値
が通常のカウントアップ動作をすることなくプログラム
暴走により変化した場合には、上記の分岐動作の場合と
同様にアドレスインクリメンタ21の出力値とアドレス
バス12からのアドレスデータ値とが一致しなくなるの
で、分岐検知回路22は分岐検知信号を発生する。しか
しながら、プログラム暴走により変化したプログラムカ
ウンタ11aの出力値は分岐レジスタ20が出力してい
る分岐先アドレスとは一致することは通常ないので、分
岐先アドレス比較回路23は異常を示す暴走監視出力信
号を暴走検出信号として出力する。この異常を示す暴走
監視出力信号はリセット信号としてCPU11に供給さ
れ、CPU11の動作を初期状態にさせることになる。
が通常のカウントアップ動作をすることなくプログラム
暴走により変化した場合には、上記の分岐動作の場合と
同様にアドレスインクリメンタ21の出力値とアドレス
バス12からのアドレスデータ値とが一致しなくなるの
で、分岐検知回路22は分岐検知信号を発生する。しか
しながら、プログラム暴走により変化したプログラムカ
ウンタ11aの出力値は分岐レジスタ20が出力してい
る分岐先アドレスとは一致することは通常ないので、分
岐先アドレス比較回路23は異常を示す暴走監視出力信
号を暴走検出信号として出力する。この異常を示す暴走
監視出力信号はリセット信号としてCPU11に供給さ
れ、CPU11の動作を初期状態にさせることになる。
【0017】図5は図3に示したプログラムの実行によ
る命令の進行具合並びにプログラムカウンタ11aによ
り指定されるアドレス及び分岐レジスタ20から出力さ
れるアドレスの各変化を示している。ここで、命令の進
行は二重線で示したように、図3に示したプログラム中
のアドレス$04及び$1Aの分岐命令に対してCPU
11は分岐せずそのまま次のアドレスの命令を実行し、
アドレス$23の分岐命令に対しては分岐して分岐先ア
ドレス$CCの命令を実行するものとする。
る命令の進行具合並びにプログラムカウンタ11aによ
り指定されるアドレス及び分岐レジスタ20から出力さ
れるアドレスの各変化を示している。ここで、命令の進
行は二重線で示したように、図3に示したプログラム中
のアドレス$04及び$1Aの分岐命令に対してCPU
11は分岐せずそのまま次のアドレスの命令を実行し、
アドレス$23の分岐命令に対しては分岐して分岐先ア
ドレス$CCの命令を実行するものとする。
【0018】すなわち、プログラム中のアドレス$04
の分岐命令($AA)が実行され、分岐命令($AA)
の実行より分岐せずそのまま次のアドレス$05の命令
が実行される。アドレス$05が実行されるまでは分岐
レジスタ20から出力されるアドレスは$AAである。
アドレス$05の次のアドレス$06が指定されると、
分岐レジスタ20から出力されるアドレスは$BBとな
る。その後、アドレス$1Aの分岐命令($BB)が実
行され、更にアドレス$1Bが実行されるまでは分岐レ
ジスタ20から出力されるアドレスは$BBである。分
岐命令($BB)の実行より分岐せずそのまま次のアド
レス$1Bの命令が実行される。そして、アドレス$1
Bの次のアドレス$1Cが指定されると、分岐レジスタ
20から出力されるアドレスは$CCとなる。その後、
アドレス$23の分岐命令($CC)が実行され、分岐
命令($CC)実行より分岐することになりその分岐先
アドレス$CCにプログラムカウンタ11aがセットさ
れると、分岐検知信号が発生する。この分岐検知信号の
発生により分岐先アドレス比較回路23の比較動作が行
なわれる。分岐レジスタ20から出力されるアドレスと
現アドレスとは共に$CCで一致するので分岐先アドレ
ス比較回路23の出力信号からは正常と判断される。
の分岐命令($AA)が実行され、分岐命令($AA)
の実行より分岐せずそのまま次のアドレス$05の命令
が実行される。アドレス$05が実行されるまでは分岐
レジスタ20から出力されるアドレスは$AAである。
アドレス$05の次のアドレス$06が指定されると、
分岐レジスタ20から出力されるアドレスは$BBとな
る。その後、アドレス$1Aの分岐命令($BB)が実
行され、更にアドレス$1Bが実行されるまでは分岐レ
ジスタ20から出力されるアドレスは$BBである。分
岐命令($BB)の実行より分岐せずそのまま次のアド
レス$1Bの命令が実行される。そして、アドレス$1
Bの次のアドレス$1Cが指定されると、分岐レジスタ
20から出力されるアドレスは$CCとなる。その後、
アドレス$23の分岐命令($CC)が実行され、分岐
命令($CC)実行より分岐することになりその分岐先
アドレス$CCにプログラムカウンタ11aがセットさ
れると、分岐検知信号が発生する。この分岐検知信号の
発生により分岐先アドレス比較回路23の比較動作が行
なわれる。分岐レジスタ20から出力されるアドレスと
現アドレスとは共に$CCで一致するので分岐先アドレ
ス比較回路23の出力信号からは正常と判断される。
【0019】この図5のプログラム実行進行状態におい
てプログラムカウンタ11aが示すアドレスが$20か
らプログラム暴走により矢印で示したように$EFに移
動してしまった場合には、分岐検知信号が発生するの
で、分岐先アドレス比較回路23の比較動作が行なわれ
る。しかしながら、このときの分岐レジスタ20の保持
出力アドレスは$CCであるので、現アドレス$EFと
一致しない。よって、分岐先アドレス比較回路23の出
力信号からは異常と判断される。
てプログラムカウンタ11aが示すアドレスが$20か
らプログラム暴走により矢印で示したように$EFに移
動してしまった場合には、分岐検知信号が発生するの
で、分岐先アドレス比較回路23の比較動作が行なわれ
る。しかしながら、このときの分岐レジスタ20の保持
出力アドレスは$CCであるので、現アドレス$EFと
一致しない。よって、分岐先アドレス比較回路23の出
力信号からは異常と判断される。
【0020】なお、上記した実施例においては、アドレ
スインクリメンタ21のアドレスバス12からのアドレ
スデータ取込はCPU11からの動作情報信号の内容か
ら行なわれているが、分岐検知回路22から出力される
分岐検知信号に応答して行なっても良い。また、アドレ
スインクリメンタ21は、CPU11がRAM13につ
いてデータの読書中、割り込みによるアドレスの変更
時、或いは、割り込み処理又はサブルーチンの処理から
通常の処理に戻る場合等の動作時にはカウントアップを
停止する。このカウントアップの停止は動作情報信号に
応じて行なわれる。更に、カウントアップの停止時には
動作情報信号に応じて分岐先アドレス比較回路23の比
較動作も停止される。
スインクリメンタ21のアドレスバス12からのアドレ
スデータ取込はCPU11からの動作情報信号の内容か
ら行なわれているが、分岐検知回路22から出力される
分岐検知信号に応答して行なっても良い。また、アドレ
スインクリメンタ21は、CPU11がRAM13につ
いてデータの読書中、割り込みによるアドレスの変更
時、或いは、割り込み処理又はサブルーチンの処理から
通常の処理に戻る場合等の動作時にはカウントアップを
停止する。このカウントアップの停止は動作情報信号に
応じて行なわれる。更に、カウントアップの停止時には
動作情報信号に応じて分岐先アドレス比較回路23の比
較動作も停止される。
【0021】また、上記した実施例においては、異常を
示す暴走監視出力信号が出力された場合にはCPU11
のみがリセットされるが、これに限らず、システム全体
をリセットしても良いし、リセットすることなく所定の
暴走検出時の処理を行ってからプログラム処理に戻って
も良い。更に、異常箇所を解析するためにシステムの動
作状況を例えば、プリンタ出力又は外部メモリに記録し
てからリセットするようにしても良い。また、マルチプ
ルコンピュータシステムの場合には異常が検出されたシ
ステムから出力されたデータ等の結果をその後の処理に
おける判断の材料から排除することも可能である。
示す暴走監視出力信号が出力された場合にはCPU11
のみがリセットされるが、これに限らず、システム全体
をリセットしても良いし、リセットすることなく所定の
暴走検出時の処理を行ってからプログラム処理に戻って
も良い。更に、異常箇所を解析するためにシステムの動
作状況を例えば、プリンタ出力又は外部メモリに記録し
てからリセットするようにしても良い。また、マルチプ
ルコンピュータシステムの場合には異常が検出されたシ
ステムから出力されたデータ等の結果をその後の処理に
おける判断の材料から排除することも可能である。
【0022】更に、上記した実施例において、暴走監視
回路16はCPU11の電源18及びグランドとは各々
分離された電源19及びグランドを有している。これは
同一の電源又はグランドの異常がCPU11及び暴走監
視回路16の双方に同時に影響を与えることを回避する
ためである。また、上記した実施例において、分岐先メ
モリ15はROM14の全てのアドレスに対応した記憶
位置を有し、その各記憶位置に分岐先アドレスが記憶さ
れているが、ROM14に記憶されたプログラムにおい
て分岐命令が位置するアドレスが実行されるまでは分岐
先メモリ15の1つの記憶位置から同一の分岐先アドレ
スが読み出されるようにすることも例えば、ロジック回
路を用いれば容易にできる。このように分岐先メモリ1
5にて必要な数の分岐先アドレスだけを記憶配置するこ
とにより、分岐先メモリ15の記憶容量は小さくて良い
ことになる。
回路16はCPU11の電源18及びグランドとは各々
分離された電源19及びグランドを有している。これは
同一の電源又はグランドの異常がCPU11及び暴走監
視回路16の双方に同時に影響を与えることを回避する
ためである。また、上記した実施例において、分岐先メ
モリ15はROM14の全てのアドレスに対応した記憶
位置を有し、その各記憶位置に分岐先アドレスが記憶さ
れているが、ROM14に記憶されたプログラムにおい
て分岐命令が位置するアドレスが実行されるまでは分岐
先メモリ15の1つの記憶位置から同一の分岐先アドレ
スが読み出されるようにすることも例えば、ロジック回
路を用いれば容易にできる。このように分岐先メモリ1
5にて必要な数の分岐先アドレスだけを記憶配置するこ
とにより、分岐先メモリ15の記憶容量は小さくて良い
ことになる。
【0023】また、上記した実施例における分岐検知回
路22はアドレスインクリメンタ21の出力値とアドレ
スバス12に供給されているアドレスデータ値とを比較
しているが、アドレスバス12に供給されているアドレ
スデータ値が不連続に変化したことを単に検出したとき
分岐検知信号を発生しても良い。なお、プログラム中の
一般命令だけが実行されているときのプログラムカウン
タ11aの出力値の変化が連続であり、そのような連続
変化をしない場合が不連続である。また、実施例におい
ては、プログラムカウンタ11aの出力値は1ずつ変化
するように示したが、これに限らず、所定値ずつ例え
ば、2ずつ変化しても良い。
路22はアドレスインクリメンタ21の出力値とアドレ
スバス12に供給されているアドレスデータ値とを比較
しているが、アドレスバス12に供給されているアドレ
スデータ値が不連続に変化したことを単に検出したとき
分岐検知信号を発生しても良い。なお、プログラム中の
一般命令だけが実行されているときのプログラムカウン
タ11aの出力値の変化が連続であり、そのような連続
変化をしない場合が不連続である。また、実施例におい
ては、プログラムカウンタ11aの出力値は1ずつ変化
するように示したが、これに限らず、所定値ずつ例え
ば、2ずつ変化しても良い。
【0024】更に、本発明のプログラム暴走監視装置を
CPUにプログラム暴走の特定の処理を一定時間毎に行
なわせる従来の暴走検出方法と組み合わせても良い。こ
のように組み合わせることにより、暴走検出精度を向上
させることができる。例えば、図6に示すように、RO
Mに割り当てられたアドレス中にEEPROM(電気的
消去が可能なプログラマブルROM)を書込/消去する
サブルーチンが位置しているとすると、符号Aで示す例
では正常動作から分岐しない暴走が生じて少なくとも一
定時間以上の時間経過してから実行位置がサブルーチン
に達し、そのサブルーチンが実行されてEEPROMの
データが破壊される場合である。また符号Bで示す例で
は正常動作から分岐による暴走が生じて実行位置が直ち
にサブルーチンに達し、そのサブルーチンが実行されて
EEPROMのデータが破壊される場合である。例Aの
場合には一定時間毎に特定の処理が行なわれる従来の暴
走検出方法が有効と考えられる。一方、例Bの場合には
従来の暴走検出方法では暴走検出が難しく本発明のプロ
グラム暴走監視装置を用いることが有効と考えらる。よ
って、本発明のプログラム暴走監視装置と従来の暴走検
出方法と組み合わせて備えれば、上記の例A,Bの双方
の場合に対応することができる。
CPUにプログラム暴走の特定の処理を一定時間毎に行
なわせる従来の暴走検出方法と組み合わせても良い。こ
のように組み合わせることにより、暴走検出精度を向上
させることができる。例えば、図6に示すように、RO
Mに割り当てられたアドレス中にEEPROM(電気的
消去が可能なプログラマブルROM)を書込/消去する
サブルーチンが位置しているとすると、符号Aで示す例
では正常動作から分岐しない暴走が生じて少なくとも一
定時間以上の時間経過してから実行位置がサブルーチン
に達し、そのサブルーチンが実行されてEEPROMの
データが破壊される場合である。また符号Bで示す例で
は正常動作から分岐による暴走が生じて実行位置が直ち
にサブルーチンに達し、そのサブルーチンが実行されて
EEPROMのデータが破壊される場合である。例Aの
場合には一定時間毎に特定の処理が行なわれる従来の暴
走検出方法が有効と考えられる。一方、例Bの場合には
従来の暴走検出方法では暴走検出が難しく本発明のプロ
グラム暴走監視装置を用いることが有効と考えらる。よ
って、本発明のプログラム暴走監視装置と従来の暴走検
出方法と組み合わせて備えれば、上記の例A,Bの双方
の場合に対応することができる。
【0025】
【発明の効果】以上説明したように、本発明によれば、
プログラムの分岐命令によって分岐した直後に実行すべ
き命令が記憶されたプログラムメモリの記憶位置を示す
分岐先アドレスを記憶した分岐先メモリが備えられ、プ
ログラムカウンタの出力値が不連続に変化したことを検
知したときプログラムカウンタの出力値によって指定さ
れるアドレスと分岐先メモリに記憶された分岐先アドレ
スとを比較し、その比較結果が不一致であるならば暴走
検出信号を発生するので、CPUが暴走検出のために特
定の処理を実行することなくプログラム暴走を適切に検
出することができる。
プログラムの分岐命令によって分岐した直後に実行すべ
き命令が記憶されたプログラムメモリの記憶位置を示す
分岐先アドレスを記憶した分岐先メモリが備えられ、プ
ログラムカウンタの出力値が不連続に変化したことを検
知したときプログラムカウンタの出力値によって指定さ
れるアドレスと分岐先メモリに記憶された分岐先アドレ
スとを比較し、その比較結果が不一致であるならば暴走
検出信号を発生するので、CPUが暴走検出のために特
定の処理を実行することなくプログラム暴走を適切に検
出することができる。
【図1】本発明のプログラム暴走監視装置を適用したコ
ンピュータシステムを示すブロック図である。
ンピュータシステムを示すブロック図である。
【図2】暴走監視回路の構成を示すブロック図である。
【図3】ROM内のアドレス毎の命令を示す図である。
【図4】分岐先メモリのアドレス毎の分岐先アドレスを
示す図である。
示す図である。
【図5】図1の装置の動作を説明するために命令の進行
を示す例である。
を示す例である。
【図6】2つの異なる暴走の例を示すためのアドレス空
間図である。
間図である。
11 CPU 11a プログラムカウンタ 12 アドレスバス 13 RAM 14 ROM 15 分岐先メモリ 16 暴走監視回路 17 データバス 20 分岐先レジスタ 21 アドレスインクリメンタ 22 分岐検知回路 23 分岐先アドレス比較回路
Claims (3)
- 【請求項1】 少なくとも1つの分岐命令を含む複数の
命令からなるプログラムが記憶されたプログラムメモリ
の記憶位置をプログラムカウンタの出力値によってアド
レス指定し、その指定された前記プログラムメモリの記
憶位置に記憶されたプログラムの命令を読み出して実行
するコンピュータシステムのプログラム暴走監視装置で
あって、 前記プログラムの分岐命令によって分岐した直後に実行
すべき命令が記憶されたプログラムメモリの記憶位置を
示す分岐先アドレスを記憶した分岐先記憶手段と、 前記プログラムカウンタの出力値が不連続に変化したこ
とを検知して分岐検知信号を発生する分岐検知手段と、 前記分岐検知信号に応答して前記プログラムカウンタの
出力値によって指定されるアドレスと前記分岐先記憶手
段に記憶された分岐先アドレスとを比較してその比較結
果が不一致であるならば暴走検出信号を発生する比較手
段と、を備えたことを特徴とするプログラム暴走監視装
置。 - 【請求項2】 前記分岐検知手段は、前記プログラムカ
ウンタの初期値からクロックパルスに同期してアップ計
数してその計数値を出力するアドレスインクリメンタ
と、前記プログラムカウンタの出力値と前記アドレスイ
ンクリメンタの計数値とが不一致のとき分岐検知信号を
発生する分岐検知回路とを有することを特徴とする請求
項1記載のプログラム暴走監視装置。 - 【請求項3】 前記分岐先記憶手段には前記プログラム
メモリと同一のアドレス群が割り当てられており、前記
プログラムメモリにおいて分岐命令が記憶された記憶位
置のアドレスまでのアドレス順の各アドレスに対応する
前記分岐先記憶手段の各記憶位置にはその分岐命令の分
岐先アドレスが各々記憶されていることを特徴とする請
求項1記載のプログラム暴走監視装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8217359A JPH1063541A (ja) | 1996-08-19 | 1996-08-19 | コンピュータシステムのプログラム暴走監視装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8217359A JPH1063541A (ja) | 1996-08-19 | 1996-08-19 | コンピュータシステムのプログラム暴走監視装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1063541A true JPH1063541A (ja) | 1998-03-06 |
Family
ID=16702946
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8217359A Pending JPH1063541A (ja) | 1996-08-19 | 1996-08-19 | コンピュータシステムのプログラム暴走監視装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1063541A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE10240088B4 (de) * | 2002-08-30 | 2007-11-29 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung |
| US7634640B2 (en) | 2002-08-30 | 2009-12-15 | Infineon Technologies Ag | Data processing apparatus having program counter sensor |
| US7664939B2 (en) | 2006-04-28 | 2010-02-16 | Hitachi, Ltd. | Method and apparatus for detecting false operation of computer |
| JP2011154459A (ja) * | 2010-01-26 | 2011-08-11 | Renesas Electronics Corp | コンピュータシステムのプログラム異常動作検出装置 |
| JP2013140431A (ja) * | 2011-12-28 | 2013-07-18 | Aisin Aw Co Ltd | 車両用制御装置および方法 |
| JP2014174758A (ja) * | 2013-03-08 | 2014-09-22 | Denso Corp | 処理装置 |
| JP2018514306A (ja) * | 2015-04-28 | 2018-06-07 | 青▲島▼海▲尓▼洗衣机有限公司 | 洗濯機の故障検出及び処理方法 |
-
1996
- 1996-08-19 JP JP8217359A patent/JPH1063541A/ja active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE10240088B4 (de) * | 2002-08-30 | 2007-11-29 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung |
| US7634640B2 (en) | 2002-08-30 | 2009-12-15 | Infineon Technologies Ag | Data processing apparatus having program counter sensor |
| US7664939B2 (en) | 2006-04-28 | 2010-02-16 | Hitachi, Ltd. | Method and apparatus for detecting false operation of computer |
| JP2011154459A (ja) * | 2010-01-26 | 2011-08-11 | Renesas Electronics Corp | コンピュータシステムのプログラム異常動作検出装置 |
| JP2013140431A (ja) * | 2011-12-28 | 2013-07-18 | Aisin Aw Co Ltd | 車両用制御装置および方法 |
| US9080661B2 (en) | 2011-12-28 | 2015-07-14 | Aisin Aw Co., Ltd. | Vehicle control device and method |
| JP2014174758A (ja) * | 2013-03-08 | 2014-09-22 | Denso Corp | 処理装置 |
| JP2018514306A (ja) * | 2015-04-28 | 2018-06-07 | 青▲島▼海▲尓▼洗衣机有限公司 | 洗濯機の故障検出及び処理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4298934A (en) | Programmable memory protection logic for microprocessor systems | |
| US6212134B1 (en) | Watch dog timer system | |
| KR860003552A (ko) | 마이크로 프로그램 가능 시스템 | |
| US20090217090A1 (en) | Method, operating system and computing hardware for running a computer program | |
| JP2000194455A (ja) | デ―タ処理装置、そのデ―タ処理方法 | |
| KR100894251B1 (ko) | 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법 | |
| JP2011154459A (ja) | コンピュータシステムのプログラム異常動作検出装置 | |
| JP2988518B2 (ja) | マルチプロセッサ制御方式 | |
| JP2508305B2 (ja) | 初期値決定装置 | |
| US4815025A (en) | Arrangement for supervising a data processing system | |
| JP2870202B2 (ja) | プロセッサ間相互監視方法及びその装置 | |
| JPS62175834A (ja) | 中央処理装置の暴走検出回路 | |
| JPH06187140A (ja) | 処理装置 | |
| JPH11110207A (ja) | 情報処理装置 | |
| EP3796175A1 (en) | Non intrusive multicore debugging based on pc counter | |
| JPH10283219A (ja) | 情報処理装置起動方式 | |
| JPS629442A (ja) | 誤り検出回路 | |
| JPH0764822A (ja) | マイクロコンピュータ | |
| JPS59191662A (ja) | プログラム暴走検出方式 | |
| JPH11306047A (ja) | 暴走検出装置 | |
| JPS61213938A (ja) | アドレス一致信号発生方式 | |
| JPH11272490A (ja) | 診断制御システム | |
| JPS63155330A (ja) | マイクロプログラム制御装置 | |
| JPH04318628A (ja) | 中央演算処理装置 | |
| JPH05204681A (ja) | ソフトウェアの異常検出装置 |