JPH03292545A - プログラムループの検知回復装置 - Google Patents
プログラムループの検知回復装置Info
- Publication number
- JPH03292545A JPH03292545A JP2095659A JP9565990A JPH03292545A JP H03292545 A JPH03292545 A JP H03292545A JP 2095659 A JP2095659 A JP 2095659A JP 9565990 A JP9565990 A JP 9565990A JP H03292545 A JPH03292545 A JP H03292545A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- program counter
- counter
- program
- contents
- 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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、コンピュータプログラムの無限ループを検
知し自動回復させるためのプログラムループの検知回復
装置に関するものである。
知し自動回復させるためのプログラムループの検知回復
装置に関するものである。
第3図はコンピュータの逐次制御部を示す図であり、図
において、(1)はメインメモリ、(2)はメインメモ
リ(1)から読み出された命令を入れておく命令レジス
タ、(3)は命令のデコーダ、(4)はメインメモリ(
1)をアクセスするメモリアドレスレジスタ、(5)は
実行する命令のアドレスを保持するカレントプログラム
カウンタである。
において、(1)はメインメモリ、(2)はメインメモ
リ(1)から読み出された命令を入れておく命令レジス
タ、(3)は命令のデコーダ、(4)はメインメモリ(
1)をアクセスするメモリアドレスレジスタ、(5)は
実行する命令のアドレスを保持するカレントプログラム
カウンタである。
次に、動作について説明する。メインメモリ(1)から
読み出された命令は、−旦命令レジスタ(2)に入れら
れる。命令レジスタ(2)の命令コードは、命令デコー
ダ(3)により解読され、実行される。分岐命令の時は
、命令レジスタ(2)の例えは下位3バイトが飛び先ア
ドレスとして、カレントプログラムカウンタ(5)に入
れられる。その他の命令の時は、カレントプログラムカ
ウンタ(5)は、次の命令アドレスをポイントするため
に増加される。このカレントプログラムカウンタ(5)
の内容がメモリアドレスレジスタ(4)へ渡り、次の命
令の取り出しに使用される。
読み出された命令は、−旦命令レジスタ(2)に入れら
れる。命令レジスタ(2)の命令コードは、命令デコー
ダ(3)により解読され、実行される。分岐命令の時は
、命令レジスタ(2)の例えは下位3バイトが飛び先ア
ドレスとして、カレントプログラムカウンタ(5)に入
れられる。その他の命令の時は、カレントプログラムカ
ウンタ(5)は、次の命令アドレスをポイントするため
に増加される。このカレントプログラムカウンタ(5)
の内容がメモリアドレスレジスタ(4)へ渡り、次の命
令の取り出しに使用される。
従来の逐次制御方式の動作は、以上のようになされるの
で、プログラムの無限ループに陥った場合にそれが検知
できず、いたずらにCPUの時間を浪費してしまったり
、システムダウンとなってしまうという問題点があった
。
で、プログラムの無限ループに陥った場合にそれが検知
できず、いたずらにCPUの時間を浪費してしまったり
、システムダウンとなってしまうという問題点があった
。
また、特開平1−140350号公報には、プログラム
実行中に、プログラムカウンタの状態を監視し、プログ
ラムの暴走を検知する技術が開示されているが、ウォッ
チドッグタイマの改良に基づくもので、プログラムが実
行先のアドレスを予測して比較値を設定していくことは
困難で、プログラムの負担無く実現することはできない
。
実行中に、プログラムカウンタの状態を監視し、プログ
ラムの暴走を検知する技術が開示されているが、ウォッ
チドッグタイマの改良に基づくもので、プログラムが実
行先のアドレスを予測して比較値を設定していくことは
困難で、プログラムの負担無く実現することはできない
。
この発明は、上記のような点を鑑みてなされたもので、
プログラムの負担がなく、プログラムの無限ループを検
知できると共に、システムの回復を自動的に行い得るよ
うにする逐次制御方式のコンピュータに係るプログラム
ループの検知回復装置を得ることを目的とする。
プログラムの負担がなく、プログラムの無限ループを検
知できると共に、システムの回復を自動的に行い得るよ
うにする逐次制御方式のコンピュータに係るプログラム
ループの検知回復装置を得ることを目的とする。
(課題を解決するための手段)
この発明に係るプログラムループの検知回復装置は、実
行する命令のアドレスを保持するカレントプログラムカ
ウンタの内容を、一定時間間隔毎にセーブするオールド
プログラムカウンタを備える共に、一定時間間隔毎に上
記カレントプログラムカウンタと上記オールドプログラ
ムカウンタの内容を特定の下位mビットを除いて比較す
る比較検知手段と、上記比較検知手段からの一致信号を
カウントするカウントループと、上記ループカウンタの
値が特定の値に達したことを示すループ検出信号により
、上記カレントプログラムカウンタへ保持内容をロード
するようリスタートアドレスレジスタとを備えたもので
ある。
行する命令のアドレスを保持するカレントプログラムカ
ウンタの内容を、一定時間間隔毎にセーブするオールド
プログラムカウンタを備える共に、一定時間間隔毎に上
記カレントプログラムカウンタと上記オールドプログラ
ムカウンタの内容を特定の下位mビットを除いて比較す
る比較検知手段と、上記比較検知手段からの一致信号を
カウントするカウントループと、上記ループカウンタの
値が特定の値に達したことを示すループ検出信号により
、上記カレントプログラムカウンタへ保持内容をロード
するようリスタートアドレスレジスタとを備えたもので
ある。
〔作用)
この発明において、オールドプログラムカウンタは、一
定時間間隔毎に、カレントプログラムカウンタとして比
較され、特定の下位mビットを除いてアドレスの一致が
検査される。一致した場合は、ループカウンタをカウン
トアツプし、ループカウンタが特定の値に達した時に、
プログラムループ検知信号を出し、この信号により、リ
スタートアドレスレジスタの内容をカレントプログラム
カウンタへ移して、回復処理を起動する。
定時間間隔毎に、カレントプログラムカウンタとして比
較され、特定の下位mビットを除いてアドレスの一致が
検査される。一致した場合は、ループカウンタをカウン
トアツプし、ループカウンタが特定の値に達した時に、
プログラムループ検知信号を出し、この信号により、リ
スタートアドレスレジスタの内容をカレントプログラム
カウンタへ移して、回復処理を起動する。
(実施例〕
以下、この発明の一実施例を図について説明する。第1
図において、(1)はメインメモリ、(2)はメインメ
モリ(1)から読み出された命令を入れておく命令レジ
スタ、(3)は命令デコーダ、(4)はメインメモリ(
1)をアクセスするメモリアドレスレジスタ、(5)は
実行する命令のアドレスを保持するカレントプログラム
カウンタ、(6)はカレントプログラムカウンタの内容
を一定時間間隔毎にセーブするオールドプログラムカウ
ンタ、(ア)はカレントプログラムカウンタとオールド
プログラムカウンタを特定の下位mビットを除いて比較
し、カレント値とオールド値が一致した時は一致信号を
送出する比較検知手段、(8)は比較検知手段(7)か
らの一致信号をカウントするループカウンタ、(9)は
ループカウンタ(8)からのループ検出信号、(10)
は回復用のりスタートアドレスレジスタである。
図において、(1)はメインメモリ、(2)はメインメ
モリ(1)から読み出された命令を入れておく命令レジ
スタ、(3)は命令デコーダ、(4)はメインメモリ(
1)をアクセスするメモリアドレスレジスタ、(5)は
実行する命令のアドレスを保持するカレントプログラム
カウンタ、(6)はカレントプログラムカウンタの内容
を一定時間間隔毎にセーブするオールドプログラムカウ
ンタ、(ア)はカレントプログラムカウンタとオールド
プログラムカウンタを特定の下位mビットを除いて比較
し、カレント値とオールド値が一致した時は一致信号を
送出する比較検知手段、(8)は比較検知手段(7)か
らの一致信号をカウントするループカウンタ、(9)は
ループカウンタ(8)からのループ検出信号、(10)
は回復用のりスタートアドレスレジスタである。
次に、実施例の動作について第2図のフローチャートに
従って説明する。一定の時間間隔毎に、カレントプログ
ラムカウンタ(5)の内容はオールドプログラムカウン
タ(6)の内容と比較検知手段(7)により特定の下位
mビットを除いて比較される(ステップ521.S22
)。アドレスが一致しない場合は、ループカウンタ(
8)はOクリアされ、オールドプログラムカウンタ(6
)の内容はカレントプログラムカウンタ(5)の内容に
より更新される(ステップ523〜525)。
従って説明する。一定の時間間隔毎に、カレントプログ
ラムカウンタ(5)の内容はオールドプログラムカウン
タ(6)の内容と比較検知手段(7)により特定の下位
mビットを除いて比較される(ステップ521.S22
)。アドレスが一致しない場合は、ループカウンタ(
8)はOクリアされ、オールドプログラムカウンタ(6
)の内容はカレントプログラムカウンタ(5)の内容に
より更新される(ステップ523〜525)。
他方、アドレスが一致した場合は、ループカウンタ(8
)がインクリメントされる。プログラムの無限ループが
発生した場合は、ループのアドレスは通常メモリ空間の
狭いエリアに限定され、プログラムアドレスの下位mビ
ットは変動するが、上位の残りのビットは不変である。
)がインクリメントされる。プログラムの無限ループが
発生した場合は、ループのアドレスは通常メモリ空間の
狭いエリアに限定され、プログラムアドレスの下位mビ
ットは変動するが、上位の残りのビットは不変である。
従って、アドレスの一致が連続して検出され、ループカ
ウンタ(8)は連続的にカウントが増加していく。そし
である特定の値に達した時(例えばカウンタのあふれ)
に、ループカウンタ(8)はループ検出信号(9)を出
力する(ステップs23゜S26〜528)。このルー
プ検出信号(9)は、リスタートアドレスレジスタ(工
0)の内容をカレントプログラムカウンタ(5)へ転送
することにより、リスタート回復処理を起動する。
ウンタ(8)は連続的にカウントが増加していく。そし
である特定の値に達した時(例えばカウンタのあふれ)
に、ループカウンタ(8)はループ検出信号(9)を出
力する(ステップs23゜S26〜528)。このルー
プ検出信号(9)は、リスタートアドレスレジスタ(工
0)の内容をカレントプログラムカウンタ(5)へ転送
することにより、リスタート回復処理を起動する。
なお、上記実施例では、アドレスの比較検知手段(7)
と、ループカウンタ(8)をハードウェアで構成したも
のを示したが、マイクロプログラム制御にて同等の制御
を行なっても良い。
と、ループカウンタ(8)をハードウェアで構成したも
のを示したが、マイクロプログラム制御にて同等の制御
を行なっても良い。
また、上記実施例ではオールドプログラムカウンタ(6
)に、プログラムアドレスのみセーブする例を示したが
、多重仮想記憶システムのコンピュータの場合は、アド
レス空間識別子をも含めて、第2図のフローチャートの
処理をタイマー割込毎にオペレーティングシステムにて
行なえば、アドレス空間の毎のユーザプログラムのルー
プを検知することができる。
)に、プログラムアドレスのみセーブする例を示したが
、多重仮想記憶システムのコンピュータの場合は、アド
レス空間識別子をも含めて、第2図のフローチャートの
処理をタイマー割込毎にオペレーティングシステムにて
行なえば、アドレス空間の毎のユーザプログラムのルー
プを検知することができる。
また、上記実施例では、回復用のりスタートアドレスレ
ジスタ(10)を設けたが、マイクロコンピュータシス
テムの場合は、車にO番地からのりスタートであっても
良い。
ジスタ(10)を設けたが、マイクロコンピュータシス
テムの場合は、車にO番地からのりスタートであっても
良い。
また、上記実施例では、コンピュータの中央処理装置の
逐次制御部の場合について説明したが、入出力制御装置
やチャネル制御装置のマイクロプログラム制御部であっ
ても良く、上記実施例と同様の効果を奏する。
逐次制御部の場合について説明したが、入出力制御装置
やチャネル制御装置のマイクロプログラム制御部であっ
ても良く、上記実施例と同様の効果を奏する。
以上のように、この発明によれば、プログラムカウンタ
を一定時間毎にセーブし、カレント値とオールド値を比
較し、下位mビットを除いて一致した状態が継続した場
合をループと判定するようにしたので、プログラムの無
限ループを検知することができ、かつ、そのループを断
ち切って回復処理を行なうことができるので、むだなC
Pu時間の消費を防ぐことができ、また、システムダウ
ンやコンピュータ機器の自動回復を行なうことができる
。
を一定時間毎にセーブし、カレント値とオールド値を比
較し、下位mビットを除いて一致した状態が継続した場
合をループと判定するようにしたので、プログラムの無
限ループを検知することができ、かつ、そのループを断
ち切って回復処理を行なうことができるので、むだなC
Pu時間の消費を防ぐことができ、また、システムダウ
ンやコンピュータ機器の自動回復を行なうことができる
。
第1図はこの発明の一実施例によるコンピュータの逐次
制御部を示す構成図、第2図はこの発明のプログラムル
ープ検知の方式を示すフローチャート、第3図は従来の
コンピュータの逐次制御部を示す構成図である。 (5)はカレントプログラムカウンタ、(6)はオール
ドプログラムカウンタ、(7)は比較検知手段、(8)
はループカウンタ、(9)はループ検圧信号、 (1
0)はりスタートアドレスレジスタ。 尚、図、中間−符号は同−又は相当部分を示す。
制御部を示す構成図、第2図はこの発明のプログラムル
ープ検知の方式を示すフローチャート、第3図は従来の
コンピュータの逐次制御部を示す構成図である。 (5)はカレントプログラムカウンタ、(6)はオール
ドプログラムカウンタ、(7)は比較検知手段、(8)
はループカウンタ、(9)はループ検圧信号、 (1
0)はりスタートアドレスレジスタ。 尚、図、中間−符号は同−又は相当部分を示す。
Claims (1)
- 実行する命令のアドレスを保持するカレントプログラム
カウンタの内容を、一定時間間隔毎にセーブするオール
ドプログラムカウンタを備える共に、一定時間間隔毎に
上記カレントプログラムカウンタと上記オールドプログ
ラムカウンタの内容を特定の下位mビットを除いて比較
する比較検知手段と、上記比較検知手段からの一致信号
をカウントするカウントループと、上記ループカウンタ
の値が特定の値に達したことを示すループ検出信号によ
り、上記カレントプログラムカウンタへ保持内容をロー
ドするようリスタートアドレスレジスタとを備えたこと
を特徴とするプログラムループの検知回復装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2095659A JPH03292545A (ja) | 1990-04-11 | 1990-04-11 | プログラムループの検知回復装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2095659A JPH03292545A (ja) | 1990-04-11 | 1990-04-11 | プログラムループの検知回復装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03292545A true JPH03292545A (ja) | 1991-12-24 |
Family
ID=14143620
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2095659A Pending JPH03292545A (ja) | 1990-04-11 | 1990-04-11 | プログラムループの検知回復装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03292545A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7281171B2 (en) * | 2003-01-14 | 2007-10-09 | Hewlwtt-Packard Development Company, L.P. | System and method of checking a computer system for proper operation |
| JP2007272581A (ja) * | 2006-03-31 | 2007-10-18 | Fujitsu Ltd | 監視プログラム、監視方法、および、監視装置 |
| JP2012137877A (ja) * | 2010-12-24 | 2012-07-19 | Toshiba Corp | 二次電池装置、プロセッサ、監視プログラム、および、車両 |
| US10552155B2 (en) * | 2016-06-20 | 2020-02-04 | Imagination Technologies Limited | Livelock recovery circuit configured to detect illegal repetition of an instruction and transition to a known state |
-
1990
- 1990-04-11 JP JP2095659A patent/JPH03292545A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7281171B2 (en) * | 2003-01-14 | 2007-10-09 | Hewlwtt-Packard Development Company, L.P. | System and method of checking a computer system for proper operation |
| JP2007272581A (ja) * | 2006-03-31 | 2007-10-18 | Fujitsu Ltd | 監視プログラム、監視方法、および、監視装置 |
| JP2012137877A (ja) * | 2010-12-24 | 2012-07-19 | Toshiba Corp | 二次電池装置、プロセッサ、監視プログラム、および、車両 |
| US10552155B2 (en) * | 2016-06-20 | 2020-02-04 | Imagination Technologies Limited | Livelock recovery circuit configured to detect illegal repetition of an instruction and transition to a known state |
| US11467840B2 (en) * | 2016-06-20 | 2022-10-11 | Imagination Technologies Limited | Livelock recovery circuit for detecting illegal repetition of an instruction and transitioning to a known state |
| US11847456B2 (en) | 2016-06-20 | 2023-12-19 | Imagination Technologies Limited | Livelock recovery circuit for detecting illegal repetition of an instruction and transitioning to a known state |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
| EP0495165B1 (en) | Overlapped serialization | |
| JPS63175934A (ja) | デ−タ処理装置 | |
| US5003458A (en) | Suspended instruction restart processing system based on a checkpoint microprogram address | |
| CN1040158C (zh) | 具有用于访问空闲模式的运行/停止端的微处理器 | |
| EP0402856B1 (en) | Instruction execution control system | |
| US5146569A (en) | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension | |
| JP2002342114A (ja) | トレースデータ採取可能なプロセッサ | |
| JP2008535072A (ja) | 選択的サブルーチンリターン構造 | |
| JPS6250934A (ja) | 処理装置の割込制御方式 | |
| JPH11345121A (ja) | プログラム制御ユニット用の命令取り出し装置および方法 | |
| JPH0475147A (ja) | 情報処理システムにおける時間監視装置 | |
| JPS59183434A (ja) | 命令先取り制御方式 | |
| JPH0352092B2 (ja) | ||
| JP2880658B2 (ja) | マルチタスクプログラムの暴走検出装置 | |
| JP3129873B2 (ja) | マイクロコンピュータ | |
| JPH04338825A (ja) | 演算処理装置 | |
| JPS61175733A (ja) | 分岐予測制御方式 | |
| JPS6020769B2 (ja) | マイクロプログラム制御方式 | |
| JPS58223855A (ja) | マイクロプログラムによる記憶アドレス管理装置 | |
| JPS6259818B2 (ja) | ||
| JPH08263324A (ja) | デバッグ容易化装置 | |
| JPH0325617A (ja) | マイクロプロセッサのループ命令制御装置 | |
| JPH0764822A (ja) | マイクロコンピュータ | |
| JPH09319592A (ja) | マイクロコンピュータ |