JPH0535538A - マイクロプロセツサ - Google Patents
マイクロプロセツサInfo
- Publication number
- JPH0535538A JPH0535538A JP3192265A JP19226591A JPH0535538A JP H0535538 A JPH0535538 A JP H0535538A JP 3192265 A JP3192265 A JP 3192265A JP 19226591 A JP19226591 A JP 19226591A JP H0535538 A JPH0535538 A JP H0535538A
- Authority
- JP
- Japan
- Prior art keywords
- counter
- runaway
- value
- instruction
- time
- 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)【要約】
【目的】本発明は、ファームウェアに依存することな
く、分岐命令や割込み命令も含めた全ての命令処理に於
いて即座に暴走検出を可能としたことを特徴とする。 【構成】サブルーチンコールの毎にカウンタ11をカウ
ントアップし、スタックにプッシュして、リターン時に
ポップされるカウンタ値とそのときのカウンタ値とを比
較器12で比較し、異なっていたならば暴走と見做すこ
とにより、サブルーチンジャンプからのリターン時に即
座にプログラムの暴走検出が可能なハードウェアをもつ
構成としたことを特徴とする。
く、分岐命令や割込み命令も含めた全ての命令処理に於
いて即座に暴走検出を可能としたことを特徴とする。 【構成】サブルーチンコールの毎にカウンタ11をカウ
ントアップし、スタックにプッシュして、リターン時に
ポップされるカウンタ値とそのときのカウンタ値とを比
較器12で比較し、異なっていたならば暴走と見做すこ
とにより、サブルーチンジャンプからのリターン時に即
座にプログラムの暴走検出が可能なハードウェアをもつ
構成としたことを特徴とする。
Description
【0001】
【産業上の利用分野】本発明はプログラム暴走検出回路
を内蔵したマイクロプロセッサに関する。
を内蔵したマイクロプロセッサに関する。
【0002】
【従来の技術】近年、半導体技術の進歩により、マイク
ロプロセッサ、周辺制御用LSI、メモリLSIが非常
に安価に供給されるようになり、これらを適宜組合わせ
ることにより比較的高性能なパーソナルコンピュータを
構築できるようになった。
ロプロセッサ、周辺制御用LSI、メモリLSIが非常
に安価に供給されるようになり、これらを適宜組合わせ
ることにより比較的高性能なパーソナルコンピュータを
構築できるようになった。
【0003】特にこの種パーソナルコンピュータに於け
る制御中枢となるマイクロプロセッサの性能向上は目覚
ましく、8ビット、16ビット、32ビットデータ処理
は勿論のこと、最近では64ビット処理あるいはキャッ
シュ内蔵のものまで出現してきた。
る制御中枢となるマイクロプロセッサの性能向上は目覚
ましく、8ビット、16ビット、32ビットデータ処理
は勿論のこと、最近では64ビット処理あるいはキャッ
シュ内蔵のものまで出現してきた。
【0004】ところで、上述したパーソナルコンピュー
タは内蔵のメモリにプログラムを格納し、プログラムカ
ウンタに設定されるアドレスに従い、その内容を読み出
しながらデータ処理を実行する。プログラムカウンタは
次に実行すべき命令のメモリアドレスを示しており、1
命令の実行が終了する毎に更新され、次のアドレスが設
定される。このようなシステムにて、通常のデータ処理
中、プログラムの暴走を検出するには、従来、例えば、
ウォッチドッグタイマのようにファームウェアに依存
し、プログラム中にタイマをリセットさせる命令を入れ
ておいて、プログラムカウンタの値がある設定値以上に
なった場合に暴走と判断し暴走検出を行なっていた。
タは内蔵のメモリにプログラムを格納し、プログラムカ
ウンタに設定されるアドレスに従い、その内容を読み出
しながらデータ処理を実行する。プログラムカウンタは
次に実行すべき命令のメモリアドレスを示しており、1
命令の実行が終了する毎に更新され、次のアドレスが設
定される。このようなシステムにて、通常のデータ処理
中、プログラムの暴走を検出するには、従来、例えば、
ウォッチドッグタイマのようにファームウェアに依存
し、プログラム中にタイマをリセットさせる命令を入れ
ておいて、プログラムカウンタの値がある設定値以上に
なった場合に暴走と判断し暴走検出を行なっていた。
【0005】
【発明が解決しようとする課題】従来はタイマのカウン
トアップがある一定値を示すことで暴走検出を行なって
いたため、即座に暴走検出を行なうことができない。い
ずれにせよプログラムに手を加える必要があり、プログ
ラマによる負担が大きかった。これを解決するためにマ
イクロプロセッサ内部に、プログラムカウンタの値をコ
ンペアにより検査する回路を持ち、ファームウェアに依
存せず、即座に暴走を検出するハードウェアが考えられ
る。しかしながら、メモリに格納された命令がシーケン
シャルに実行される場合は良いとしても分岐命令や割込
み命令処理時にコンペア操作を禁止するための手段が必
要となり、従って暴走検出ができず、その時点で暴走し
ていても検出不可能であった。
トアップがある一定値を示すことで暴走検出を行なって
いたため、即座に暴走検出を行なうことができない。い
ずれにせよプログラムに手を加える必要があり、プログ
ラマによる負担が大きかった。これを解決するためにマ
イクロプロセッサ内部に、プログラムカウンタの値をコ
ンペアにより検査する回路を持ち、ファームウェアに依
存せず、即座に暴走を検出するハードウェアが考えられ
る。しかしながら、メモリに格納された命令がシーケン
シャルに実行される場合は良いとしても分岐命令や割込
み命令処理時にコンペア操作を禁止するための手段が必
要となり、従って暴走検出ができず、その時点で暴走し
ていても検出不可能であった。
【0006】本発明は、ファームウェアに依存すること
なく、分岐命令や割込み命令も含めた全ての命令処理に
おいて即座に暴走検出可能なマイクロプロセッサを提供
することを目的とする。
なく、分岐命令や割込み命令も含めた全ての命令処理に
おいて即座に暴走検出可能なマイクロプロセッサを提供
することを目的とする。
【0007】
【0008】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、命令を解読するデコード回路と、デコード回路
によりサブルーチンコールもしくはリターン命令を検出
することによりnビットデータの更新を行なうカウンタ
と、サブルーチンコールの毎に上記カウンタを更新して
記憶装置にプッシュし、リターンの毎にその値をポップ
するスタック制御回路と、ポップした値とその時点での
カウンタの値を比較する比較回路とを具備し、比較回路
による比較結果によってプログラム暴走を検出すること
を特徴とする。
ッサは、命令を解読するデコード回路と、デコード回路
によりサブルーチンコールもしくはリターン命令を検出
することによりnビットデータの更新を行なうカウンタ
と、サブルーチンコールの毎に上記カウンタを更新して
記憶装置にプッシュし、リターンの毎にその値をポップ
するスタック制御回路と、ポップした値とその時点での
カウンタの値を比較する比較回路とを具備し、比較回路
による比較結果によってプログラム暴走を検出すること
を特徴とする。
【0009】
【作用】上述した構成にて、サブルーチンコール毎にカ
ウンタをカウントアップし、スタックにプッシュする。
リターン時にポップされるカウンタの値とそのときのカ
ウンタ値とを比較し、異なっていたならば暴走と見做
す。これらの処理をファームウェアによらず全てハード
ウェアで実現することによりサブルーチンジャンプから
のリターン時に、即座にプログラムの暴走検出が可能と
なる。
ウンタをカウントアップし、スタックにプッシュする。
リターン時にポップされるカウンタの値とそのときのカ
ウンタ値とを比較し、異なっていたならば暴走と見做
す。これらの処理をファームウェアによらず全てハード
ウェアで実現することによりサブルーチンジャンプから
のリターン時に、即座にプログラムの暴走検出が可能と
なる。
【0010】
【実施例】図1は本発明が使用されるパーソナルコンピ
ュータの構成例を示すブロック図である。
ュータの構成例を示すブロック図である。
【0011】図において、1はマイクロプロセッサ(μ
CPU)であり、システムRAM2に格納されたプログ
ラムもしくはBIOS−ROM3(基本入出力システ
ム)に格納されたプログラムを読み出し、演算制御もし
くはシステムに接続される各入出力装置の制御を行な
う。システムRAM2にはプログラム領域の他に本発明
にて使用されるスタック領域も割り付けられる。
CPU)であり、システムRAM2に格納されたプログ
ラムもしくはBIOS−ROM3(基本入出力システ
ム)に格納されたプログラムを読み出し、演算制御もし
くはシステムに接続される各入出力装置の制御を行な
う。システムRAM2にはプログラム領域の他に本発明
にて使用されるスタック領域も割り付けられる。
【0012】4,5,6はそれぞれ入出力装置であり、
4はデータ入力を行なうキーボード(KB)、5は外部
記憶となるフロッピーディスク装置(FDD)、6はデ
ータ表示がなされるディスプレイ装置(CRT)であ
る。これら入出力装置はいずれもBIOSプログラムの
制御を受け、いずれもマイクロプロセッサ1によってプ
ログラム可能な入出力コントローラであるキーボードコ
ントローラ(KBC)7、フロッピーディスクコントロ
ーラ(FDC)8、ディスプレイコントローラ(CRT
C)9を介して接続される。
4はデータ入力を行なうキーボード(KB)、5は外部
記憶となるフロッピーディスク装置(FDD)、6はデ
ータ表示がなされるディスプレイ装置(CRT)であ
る。これら入出力装置はいずれもBIOSプログラムの
制御を受け、いずれもマイクロプロセッサ1によってプ
ログラム可能な入出力コントローラであるキーボードコ
ントローラ(KBC)7、フロッピーディスクコントロ
ーラ(FDC)8、ディスプレイコントローラ(CRT
C)9を介して接続される。
【0013】図2は本発明の実施例を示すブロック図で
あり、図1に示すマイクロプロセッサ1のうち、本発明
と関係する部分のみ抽出して示したものである。
あり、図1に示すマイクロプロセッサ1のうち、本発明
と関係する部分のみ抽出して示したものである。
【0014】図において、11はカウンタであり、分岐
命令を検出することによりnビットデータのアップ/ダ
ウンがなされる。12は比較回路であり、上述したカウ
ンタ11の値と図示しない記憶装置(スタック機構)か
ら読み込んだ値との比較を行なう。13はセレクタであ
り、カウンタ11の値とスタック機構から得られる値と
を切り替え、比較回路12に供給する。
命令を検出することによりnビットデータのアップ/ダ
ウンがなされる。12は比較回路であり、上述したカウ
ンタ11の値と図示しない記憶装置(スタック機構)か
ら読み込んだ値との比較を行なう。13はセレクタであ
り、カウンタ11の値とスタック機構から得られる値と
を切り替え、比較回路12に供給する。
【0015】以下、本発明の実施例の動作について説明
する。
する。
【0016】本発明は上述したように、サブルーチンコ
ール毎にカウンタをカウントアップし、スタックにプッ
シュする。リターン時にポップされるカウンタの値とそ
のときのカウンタ値とを比較し、異なっていたならば暴
走とみなす。上記処理機能をファームウェアによらず、
全てハードウェアで実現することにより、サブルーチン
ジャンプからのリターン時、即座にプログラムの暴走検
出を可能とする。このために、サブルーチンコール、リ
ターン命令等を検出する命令デコード回路を備える。
ール毎にカウンタをカウントアップし、スタックにプッ
シュする。リターン時にポップされるカウンタの値とそ
のときのカウンタ値とを比較し、異なっていたならば暴
走とみなす。上記処理機能をファームウェアによらず、
全てハードウェアで実現することにより、サブルーチン
ジャンプからのリターン時、即座にプログラムの暴走検
出を可能とする。このために、サブルーチンコール、リ
ターン命令等を検出する命令デコード回路を備える。
【0017】以下、図2を使用して本発明の実施例によ
る動作を説明する。
る動作を説明する。
【0018】まず、サブルーチンコール命令実行時にカ
ウンタ11の値を更新(アップカウント)し、記憶装置
(スタック)にプッシュする。
ウンタ11の値を更新(アップカウント)し、記憶装置
(スタック)にプッシュする。
【0019】分岐命令が繰り返された場合も同様の動作
を繰り返す。
を繰り返す。
【0020】次にリターン命令によって分岐先より分岐
地点に戻る場合は、上述した記憶装置から値をポップ
し、セレクタ13を介して比較回路12にてカウンタ1
1値と比較し、データの不一致を示していたなら暴走と
判断する。
地点に戻る場合は、上述した記憶装置から値をポップ
し、セレクタ13を介して比較回路12にてカウンタ1
1値と比較し、データの不一致を示していたなら暴走と
判断する。
【0021】データが一致していたならば正常動作と判
断し、カウンタ11をダウンカウントし、次の命令処理
に進む。
断し、カウンタ11をダウンカウントし、次の命令処理
に進む。
【0022】リターン命令が繰り返された場合も同様の
動作を繰り返す。
動作を繰り返す。
【0023】比較回路12の出力によってはプログラム
暴走回避のためにマイクロプロセッサの動作を停止させ
たり、初期ルーチンへ強制的に戻す回路を付加すること
で暴走回避が可能である。
暴走回避のためにマイクロプロセッサの動作を停止させ
たり、初期ルーチンへ強制的に戻す回路を付加すること
で暴走回避が可能である。
【0024】
【発明の効果】上記したように本発明によれば、分岐命
令を含む全ての命令処理に於いて即座にプログラムの暴
走検出が可能となり、信頼性の向上が図れる。
令を含む全ての命令処理に於いて即座にプログラムの暴
走検出が可能となり、信頼性の向上が図れる。
【図1】本発明が適用されるパーソナルコンピュータの
構成例を示すブロック図。
構成例を示すブロック図。
【図2】本発明の実施例を示すブロック図。
11…カウンタ,12…比較回路,13…セレクタ。
Claims (1)
- 【特許請求の範囲】 【請求項1】 命令を解読するデコード回路と、このデ
コード回路でサブルーチンコール又はリターン命令を検
出することによりnビットデータの更新を行なうカウン
タと、上記サブルーチンコール検出の度に上記カウンタ
を更新して記憶装置にプッシュし、リターンの毎にその
値をポップするスタック制御回路と、ポップした値とそ
の時点でのカウンタの値を比較する比較回路とを具備
し、上記比較回路の比較結果によってプログラム暴走を
検出することを特徴とするマイクロプロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3192265A JPH0535538A (ja) | 1991-07-31 | 1991-07-31 | マイクロプロセツサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3192265A JPH0535538A (ja) | 1991-07-31 | 1991-07-31 | マイクロプロセツサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0535538A true JPH0535538A (ja) | 1993-02-12 |
Family
ID=16288408
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3192265A Pending JPH0535538A (ja) | 1991-07-31 | 1991-07-31 | マイクロプロセツサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0535538A (ja) |
-
1991
- 1991-07-31 JP JP3192265A patent/JPH0535538A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3176093B2 (ja) | マイクロプロセッサの割込み制御装置 | |
| EP0538817A2 (en) | High-speed processor capable of handling multiple interrupts | |
| US7421431B2 (en) | Providing access to system management information | |
| US6880030B2 (en) | Unified exception handling for hierarchical multi-interrupt architectures | |
| JPH02202642A (ja) | プログラム動作監視装置 | |
| US7206920B2 (en) | Min/max value validation by repeated parallel comparison of the value with multiple elements of a set of data elements | |
| US4764869A (en) | Method and apparatus for controlling interruption in the course of instruction execution in a processor | |
| US20080148016A1 (en) | Multiprocessor system for continuing program execution upon detection of abnormality | |
| JP2008535072A (ja) | 選択的サブルーチンリターン構造 | |
| US5774687A (en) | Central processing unit detecting and judging whether operation result executed by ALU in response to a first instruction code meets a predetermined condition | |
| JP2000020352A (ja) | スタックオーバーフロー検出方法及びスタックアンダーフロー検出方法 | |
| JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
| JPH04364531A (ja) | マイクロプロセッサ | |
| JPH01286029A (ja) | マイクロプログラムのパッチ方式 | |
| JPH05257815A (ja) | 中央処理装置 | |
| JPS6158054A (ja) | プログラムの暴走検出方式 | |
| JP2503210B2 (ja) | マイクロプログラム制御装置 | |
| JPH06139084A (ja) | 情報処理装置 | |
| JP3616588B2 (ja) | マイクロプログラムチェックシステム | |
| JP2002536759A (ja) | マイクロプロセッサ及びマイクロプロセッサでのアドレッシング方法 | |
| JPH03208132A (ja) | シングルチツプマイクロコンピユータ | |
| JPH0528053A (ja) | システム運転中のプログラムのメモリチエツク方法 | |
| JPH04235638A (ja) | プリフェッチ機能付マイクロプロセッサ | |
| JPH0679272B2 (ja) | 命令フェッチ制御装置 | |
| JPH045729A (ja) | プロセッサ装置 |