JPH04152434A - Cpuの暴走防止装置 - Google Patents
Cpuの暴走防止装置Info
- Publication number
- JPH04152434A JPH04152434A JP2277518A JP27751890A JPH04152434A JP H04152434 A JPH04152434 A JP H04152434A JP 2277518 A JP2277518 A JP 2277518A JP 27751890 A JP27751890 A JP 27751890A JP H04152434 A JPH04152434 A JP H04152434A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- cpu
- area
- address
- value
- 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
- 230000002265 prevention Effects 0.000 claims description 8
- 230000002401 inhibitory effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はCPUの暴走防止装置、特に、スタックポイン
タの異常によるCPUの暴走を防止する装置に関する。
タの異常によるCPUの暴走を防止する装置に関する。
半導体技術の進歩により、現在ではCPUを組み込んだ
種々の装置が普及している。特に、近年、磁気カードに
代わる新しい情報記録媒体として、ICカードが注目を
集めている。このような装置では、CPUとともに、R
AMやROMなどの記憶装置が組み込まれる。一般に、
この記憶装置には、CPUを動作させるプログラムが保
存されたプログラム領域、CPUが作用場所として用い
るワーク領域、CPUがスタック情報を保存するスタッ
ク領域、が必要とされる。
種々の装置が普及している。特に、近年、磁気カードに
代わる新しい情報記録媒体として、ICカードが注目を
集めている。このような装置では、CPUとともに、R
AMやROMなどの記憶装置が組み込まれる。一般に、
この記憶装置には、CPUを動作させるプログラムが保
存されたプログラム領域、CPUが作用場所として用い
るワーク領域、CPUがスタック情報を保存するスタッ
ク領域、が必要とされる。
ICカードなどの小型携帯式の装置では、電源やクロッ
クなど、CPUを動作させるために必要な電気信号を外
部から供給する必要がある。たとえば、ICカードの場
合、電源もクロック発振器も内蔵していないため、読取
/書込装置側から電源やクロックの供給を受けることに
なる。このとき、ICカードの入出力端子を介して電気
信号のやりとりが行われるが、ICカードはポケットな
どに入れて携帯され、無造作に取り扱われるため、入出
力端子における接触不良が発生する。このような接触不
良により、外部からの電源やクロックの供給が一瞬でも
停止すると、CPUが正常動作をしなくなり、いわゆる
暴走事故が発生することになる。特に、スタックポイン
タの内容に異常が生じ、スタックポインタが本来のスタ
ック領域以外のアドレスを示すような事故が発生すると
、ワーク領域に対してスタック動作が行われるような事
態が起こり、ワーク領域のデータが破壊されることにな
る。ワーク領域内のデータが破壊されると、CPUは完
全に暴走状態に陥る。このような暴走事故の発生は、I
Cカードなどの装置の信頼性を著しく低下させ大きな問
題となる。
クなど、CPUを動作させるために必要な電気信号を外
部から供給する必要がある。たとえば、ICカードの場
合、電源もクロック発振器も内蔵していないため、読取
/書込装置側から電源やクロックの供給を受けることに
なる。このとき、ICカードの入出力端子を介して電気
信号のやりとりが行われるが、ICカードはポケットな
どに入れて携帯され、無造作に取り扱われるため、入出
力端子における接触不良が発生する。このような接触不
良により、外部からの電源やクロックの供給が一瞬でも
停止すると、CPUが正常動作をしなくなり、いわゆる
暴走事故が発生することになる。特に、スタックポイン
タの内容に異常が生じ、スタックポインタが本来のスタ
ック領域以外のアドレスを示すような事故が発生すると
、ワーク領域に対してスタック動作が行われるような事
態が起こり、ワーク領域のデータが破壊されることにな
る。ワーク領域内のデータが破壊されると、CPUは完
全に暴走状態に陥る。このような暴走事故の発生は、I
Cカードなどの装置の信頼性を著しく低下させ大きな問
題となる。
そこで本発明は、スタックポインタの異常に基づ(CP
Uの暴走を防止することのできるCPUの暴走防止装置
を提供することを目的とする。
Uの暴走を防止することのできるCPUの暴走防止装置
を提供することを目的とする。
本発明は、プログラム領域、ワーク領域、およびスタッ
ク領域、の少なくとも3つの領域を有する記憶装置を利
用し、プログラム領域内に保存された所定のプログラム
に基づき、ワーク領域を作業場所として、スタック領域
にスタック情報を保存しながら動作するCPUの暴走を
防止するために、 スタック領域内に保存されているスタックのアクセス位
置を示すスタックポインタの値が、スタック領域のアド
レス外を示した場合に、スタックポインタの値が正常に
戻されるまで、CPUによるスタック動作を禁止するよ
うにしたものである。
ク領域、の少なくとも3つの領域を有する記憶装置を利
用し、プログラム領域内に保存された所定のプログラム
に基づき、ワーク領域を作業場所として、スタック領域
にスタック情報を保存しながら動作するCPUの暴走を
防止するために、 スタック領域内に保存されているスタックのアクセス位
置を示すスタックポインタの値が、スタック領域のアド
レス外を示した場合に、スタックポインタの値が正常に
戻されるまで、CPUによるスタック動作を禁止するよ
うにしたものである。
本発明に係る装置によれば、スタックポインタの値が、
スタック領域のアドレス内を示しているか否かが監視さ
れる。そして、スタック領域のアドレス外を示した場合
には、スタックポインタに異常が発生したと判断し、C
PUによるスタック動作を禁止する。したがって、ワー
ク領域内のデータは破壊されることはなく、CPUの暴
走を防止することができる。
スタック領域のアドレス内を示しているか否かが監視さ
れる。そして、スタック領域のアドレス外を示した場合
には、スタックポインタに異常が発生したと判断し、C
PUによるスタック動作を禁止する。したがって、ワー
ク領域内のデータは破壊されることはなく、CPUの暴
走を防止することができる。
以下、本発明を図示する実施例に基づいて説明する。第
1図は本発明に係るCPUの暴走防止装置の基本概念を
示す図である。CPUl0は、メモリ20を用いて種々
の処理作業を行う。メモリ20は、実際には、ROMや
RAMなどの素子から構成されるが、ここでは、その用
途により、プログラム領域21、スタック領域22、ワ
ーク領域23、の3つの領域に分類している。プログラ
ム領域21は、ROMによってもRAMによっても構成
できるが、スタック領域22およびワーク領域23は、
CPUl0により頻繁にアクセスされて書き換えが行わ
れるため、RAMによって構成される。なお、装置によ
っては、この他にもいくつかの領域が設定される場合が
ある。たとえば、ICカードでは、ユーザデータを保存
するためのユーザ領域が、EEFROMなどの素子によ
って設けられる。
1図は本発明に係るCPUの暴走防止装置の基本概念を
示す図である。CPUl0は、メモリ20を用いて種々
の処理作業を行う。メモリ20は、実際には、ROMや
RAMなどの素子から構成されるが、ここでは、その用
途により、プログラム領域21、スタック領域22、ワ
ーク領域23、の3つの領域に分類している。プログラ
ム領域21は、ROMによってもRAMによっても構成
できるが、スタック領域22およびワーク領域23は、
CPUl0により頻繁にアクセスされて書き換えが行わ
れるため、RAMによって構成される。なお、装置によ
っては、この他にもいくつかの領域が設定される場合が
ある。たとえば、ICカードでは、ユーザデータを保存
するためのユーザ領域が、EEFROMなどの素子によ
って設けられる。
CPUl0が、PUSH命令、pop命令、などスタッ
ク動作の命令を実行すると、スタック領域22内のスタ
ックデータか読出されたり、逆に書込まれたりする。こ
のとき、読出しや書込みを行うためのアクセス位置を示
すために、スタックポインタが設けられている。CPU
l0は、このスタックポインタが示すアドレス位置SP
に対して、スタックデータの読出しや書込みを行う。正
常な動作では、このスタックポインタは、スタック領域
22内のアドレス領域を示すことになる。
ク動作の命令を実行すると、スタック領域22内のスタ
ックデータか読出されたり、逆に書込まれたりする。こ
のとき、読出しや書込みを行うためのアクセス位置を示
すために、スタックポインタが設けられている。CPU
l0は、このスタックポインタが示すアドレス位置SP
に対して、スタックデータの読出しや書込みを行う。正
常な動作では、このスタックポインタは、スタック領域
22内のアドレス領域を示すことになる。
すなわち、スタック領域22の下限アドレスをSL、上
限アドレスをSHとすれば、スタックポインタが示すア
ドレス位[SPは、SL≦SP≦SHなる条件を満足す
る。ところが、前述のように、外部から供給される電源
やクロックが一時的に中断したような場合、スタックポ
インタが正しい値を示さなくなる場合がある。ここで、
スタックポインタが示すアドレス位置SPがスタック領
域の下限アドレスSLより小さくなると(SP<SL)
、プログラム領域21内のアドレスに対してスタック動
作が行われることになり、プログラム領域21がRAM
で構成されている場合には、保存されていたプログラム
が破壊され、CPU10の暴走を誘発することになる。
限アドレスをSHとすれば、スタックポインタが示すア
ドレス位[SPは、SL≦SP≦SHなる条件を満足す
る。ところが、前述のように、外部から供給される電源
やクロックが一時的に中断したような場合、スタックポ
インタが正しい値を示さなくなる場合がある。ここで、
スタックポインタが示すアドレス位置SPがスタック領
域の下限アドレスSLより小さくなると(SP<SL)
、プログラム領域21内のアドレスに対してスタック動
作が行われることになり、プログラム領域21がRAM
で構成されている場合には、保存されていたプログラム
が破壊され、CPU10の暴走を誘発することになる。
また、スタックポインタが示すアドレス位置SPがスタ
ック領域の上限アドレスSHより大きくなると(SP>
SH)、ワーク領域23内のアドレスに対してスタック
動作が行われることになり、ワーク領域23内のデータ
が破壊され、やはりCPUl0の暴走を誘発することに
なる。
ック領域の上限アドレスSHより大きくなると(SP>
SH)、ワーク領域23内のアドレスに対してスタック
動作が行われることになり、ワーク領域23内のデータ
が破壊され、やはりCPUl0の暴走を誘発することに
なる。
本発明は、スタックポインタの値SPを監視し、5L5
SP≦SHなる条件が満たされなくなったとき、CPU
l0によるスタック動作を禁止し、CPUl0の暴走を
防止するものである。以下、更に具体的な実施例を説明
する。
SP≦SHなる条件が満たされなくなったとき、CPU
l0によるスタック動作を禁止し、CPUl0の暴走を
防止するものである。以下、更に具体的な実施例を説明
する。
(1) 実施例1
この実施例は、本発明をソフトウェアによって実現する
ものである。この方法では、第2図に示すように、CP
Ul0に対するスタック命令(PUSH命令、POP命
令など)が記述されたら(ステップS1)、必ずこれに
続けて、監視ルーチンの実行命令を記述する(ステップ
S2)ように、プログラムを作成しておく。実際には、
プログラマは高級言語によりプログラムの作成を行うこ
とになるので、この高級言語に対するコンパイラに、こ
のような機能を付加しておけばよい。
ものである。この方法では、第2図に示すように、CP
Ul0に対するスタック命令(PUSH命令、POP命
令など)が記述されたら(ステップS1)、必ずこれに
続けて、監視ルーチンの実行命令を記述する(ステップ
S2)ように、プログラムを作成しておく。実際には、
プログラマは高級言語によりプログラムの作成を行うこ
とになるので、この高級言語に対するコンパイラに、こ
のような機能を付加しておけばよい。
第3図に、監視ルーチンの手順を示す。まず、ステップ
S3において、SL≦SP≦SHなる条件か満たされて
いるか否かが判断される。条件が満足されていれば、そ
のままメインルーチンへと戻る。満足されていない場合
は、ステップS4において、暴走対策ルーチンヘジャン
ブする。この暴走対策ルーチンでは、スタックポインタ
が正常な値に戻されるまで、CPUl0によるスタック
動作が禁止される。最も簡単な暴走対策ルーチンは、C
PUl0に対してリセットサイクルを実行させることで
ある。
S3において、SL≦SP≦SHなる条件か満たされて
いるか否かが判断される。条件が満足されていれば、そ
のままメインルーチンへと戻る。満足されていない場合
は、ステップS4において、暴走対策ルーチンヘジャン
ブする。この暴走対策ルーチンでは、スタックポインタ
が正常な値に戻されるまで、CPUl0によるスタック
動作が禁止される。最も簡単な暴走対策ルーチンは、C
PUl0に対してリセットサイクルを実行させることで
ある。
(2) 実施例2
この実施例は、スタックポインタ用レジスタに特有のハ
ードウェアを追加することにより、本発明を実現するも
のであり、その構成を第4図に示す。スタックポインタ
用レジスタ30は、b1〜b8までの8ビツトのデータ
を保持てき、各ビットのデータは、メモリをアクセスす
るためのアドレスバスへ接続される。この実施例の特徴
は、高位側の2ビツトb7およびb8のデータが、OR
回路40に与えられ、このOR回路40の論理出力がC
PUのリセット端子に接続されている点である。ビット
b7あるいはb8のいずれか一方あるいは両方から「1
」なる論理値が出力されると、CPUはリセットされる
ことになる。すなわち、スタックポインタがアドレス値
「CO」以上の値をとったときに、CPUをリセットさ
せる機能が付加されている。この実施例は、スタック領
域がアドレス値「00〜BFJに割り当てられている装
置に適用する例であり、スタックポインタがスタック領
域の上限値rBFJより大きな値をとると、CPUが強
制的にリセットされることになる。
ードウェアを追加することにより、本発明を実現するも
のであり、その構成を第4図に示す。スタックポインタ
用レジスタ30は、b1〜b8までの8ビツトのデータ
を保持てき、各ビットのデータは、メモリをアクセスす
るためのアドレスバスへ接続される。この実施例の特徴
は、高位側の2ビツトb7およびb8のデータが、OR
回路40に与えられ、このOR回路40の論理出力がC
PUのリセット端子に接続されている点である。ビット
b7あるいはb8のいずれか一方あるいは両方から「1
」なる論理値が出力されると、CPUはリセットされる
ことになる。すなわち、スタックポインタがアドレス値
「CO」以上の値をとったときに、CPUをリセットさ
せる機能が付加されている。この実施例は、スタック領
域がアドレス値「00〜BFJに割り当てられている装
置に適用する例であり、スタックポインタがスタック領
域の上限値rBFJより大きな値をとると、CPUが強
制的にリセットされることになる。
なお、下限の制限も同様にハードウェアで行うことが可
能である。こうして、スタックポインタに異常が生して
も、スタック領域以外のメモリ内容か破壊されることは
なくなり、CPUの暴走を防くことができる。
能である。こうして、スタックポインタに異常が生して
も、スタック領域以外のメモリ内容か破壊されることは
なくなり、CPUの暴走を防くことができる。
(3) 実施例3
この実施例は、RAMチップを物理的に分離することに
より、本発明を実現するものであり、その構成を第5図
に示す。CPUl0には、2種類のRAMチップが接続
されている。一方のスタック領域用RAMチップ51は
、内部アドレスがすべてスタック領域に割り当てられた
RAMであり、もう一方のワーク領域用RAMチップ5
2は、内部アドレスがすべてワーク領域に割り当てられ
たRAMである。このように、物理的に別々のRAMを
用いるようにし、CPUl0がスタック動作を行う場合
には、必ずスタック領域用RAMチップ51に対してア
クセスを行うように構成しておけば、スタックポインタ
の値がスタック領域のアドレス外を示した場合、スタッ
ク領域用RAMチップ51にはそのようなアドレスは物
理的に存在しないため、CPUl0によるスタック動作
は自然に禁止されることになる。結局、CPUl0のス
タック動作により、ワーク領域用RAMチップ52の内
容が破壊されることはない。
より、本発明を実現するものであり、その構成を第5図
に示す。CPUl0には、2種類のRAMチップが接続
されている。一方のスタック領域用RAMチップ51は
、内部アドレスがすべてスタック領域に割り当てられた
RAMであり、もう一方のワーク領域用RAMチップ5
2は、内部アドレスがすべてワーク領域に割り当てられ
たRAMである。このように、物理的に別々のRAMを
用いるようにし、CPUl0がスタック動作を行う場合
には、必ずスタック領域用RAMチップ51に対してア
クセスを行うように構成しておけば、スタックポインタ
の値がスタック領域のアドレス外を示した場合、スタッ
ク領域用RAMチップ51にはそのようなアドレスは物
理的に存在しないため、CPUl0によるスタック動作
は自然に禁止されることになる。結局、CPUl0のス
タック動作により、ワーク領域用RAMチップ52の内
容が破壊されることはない。
以上のとおり、本発明に係る装置によれば、スタックポ
インタの値が、スタック領域のアドレス外を示した場合
に、CPUによるスタック動作を禁止するようにしたた
め、ワーク領域内のデータは破壊されることがなく、C
PUの暴走を防止することができる。
インタの値が、スタック領域のアドレス外を示した場合
に、CPUによるスタック動作を禁止するようにしたた
め、ワーク領域内のデータは破壊されることがなく、C
PUの暴走を防止することができる。
第1図は本発明に係るCPUの暴走防止装置の基本概念
を示す図、第2図および第3図は本発明をソフトウェア
で実現した実施例を示す図、第4図および第5図は本発
明をハードウェアで実現した実施例を示す図である。 10・・・CPU、20・・・メモリ、21・・・プロ
グラム領域、22・・・スタック領域、23・・・ワー
ク領域、30・・・スタックポインタ用レジスタ、40
・・・OR回路、51・・・スタック領域用RAMチッ
プ、52・・・ワーク領域用RAMチップ。 特許出願人 大日本印刷株式会社 出願人代理人 弁理士 志 村 浩20メモリ ¥1図 第2図 第3図 30:スタックポインタ用レジスタ ¥5図
を示す図、第2図および第3図は本発明をソフトウェア
で実現した実施例を示す図、第4図および第5図は本発
明をハードウェアで実現した実施例を示す図である。 10・・・CPU、20・・・メモリ、21・・・プロ
グラム領域、22・・・スタック領域、23・・・ワー
ク領域、30・・・スタックポインタ用レジスタ、40
・・・OR回路、51・・・スタック領域用RAMチッ
プ、52・・・ワーク領域用RAMチップ。 特許出願人 大日本印刷株式会社 出願人代理人 弁理士 志 村 浩20メモリ ¥1図 第2図 第3図 30:スタックポインタ用レジスタ ¥5図
Claims (1)
- 【特許請求の範囲】 プログラム領域、ワーク領域、およびスタック領域、の
少なくとも3つの領域を有する記憶装置を利用し、前記
プログラム領域内に保存された所定のプログラムに基づ
き、前記ワーク領域を作業場所として、前記スタック領
域にスタック情報を保存しながら動作するCPUの暴走
を防止する装置であって、 前記スタック領域内に保存されているスタックのアクセ
ス位置を示すスタックポインタの値が、前記スタック領
域のアドレス外を示した場合に、スタックポインタの値
が正常に戻されるまで、前記CPUによるスタック動作
を禁止するようにしたことを特徴とするCPUの暴走防
止装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2277518A JPH04152434A (ja) | 1990-10-16 | 1990-10-16 | Cpuの暴走防止装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2277518A JPH04152434A (ja) | 1990-10-16 | 1990-10-16 | Cpuの暴走防止装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04152434A true JPH04152434A (ja) | 1992-05-26 |
Family
ID=17584714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2277518A Pending JPH04152434A (ja) | 1990-10-16 | 1990-10-16 | Cpuの暴走防止装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04152434A (ja) |
-
1990
- 1990-10-16 JP JP2277518A patent/JPH04152434A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0213843A2 (en) | Digital processor control | |
JPH01296361A (ja) | メモリカード | |
KR100791815B1 (ko) | 컴퓨터 시스템 및 컴퓨터 시스템에서 인스트럭션을 실행하는 방법 | |
JPH03175537A (ja) | デバッグ用マイクロプロセッサのエラー制御装置 | |
JPH04152434A (ja) | Cpuの暴走防止装置 | |
KR860002027B1 (ko) | 키이 기억 에러 처리 시스템 | |
US5592650A (en) | Computer apparatus and method for replacing programs between memories by employing protection mechanism with write enable generation scheme | |
EP0864983A2 (en) | Computer system including memory adress management circuit for protecting memory from illegal writing | |
JPH06180674A (ja) | データ記憶装置 | |
US5222232A (en) | Apparatus and method for monitoring prom access in a microcomputer | |
JPH0484224A (ja) | スタックエリア保護回路 | |
WO1990005951A1 (en) | Method of handling unintended software interrupt exceptions | |
KR20020054519A (ko) | 인터럽트를 이용한 응용 프로그램의 에러검출장치 및 방법. | |
JPS62286143A (ja) | 半導体記憶装置 | |
JPS58208999A (ja) | メモリ装置 | |
JPS62126448A (ja) | メモリの管理・保護方式 | |
JPH0480860A (ja) | プログラムロード方式 | |
JPH06309236A (ja) | メモリの不正書込み検出回路 | |
JPS58184656A (ja) | プログラム格納方式 | |
JPH0667988A (ja) | Ras機能付半導体記憶装置 | |
JPS62251833A (ja) | 計算機システム | |
JPS6020779B2 (ja) | 複合形電子計算機システム | |
EP0369407A2 (en) | Central processing unit for data processor having emulation function | |
JPS62160555A (ja) | 記憶回路の記憶保護装置 | |
KR100393985B1 (ko) | 메모리 영역 보호 장치 및 방법 |