JP3166167B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータInfo
- Publication number
- JP3166167B2 JP3166167B2 JP30481190A JP30481190A JP3166167B2 JP 3166167 B2 JP3166167 B2 JP 3166167B2 JP 30481190 A JP30481190 A JP 30481190A JP 30481190 A JP30481190 A JP 30481190A JP 3166167 B2 JP3166167 B2 JP 3166167B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- stack
- circuit
- output
- stack pointer
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 claims description 16
- 238000013500 data storage Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 2
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロコンピュータに関し、特にスタック
ポインタの設定忘れを検出可能なマイクロコンピュータ
に関する。
ポインタの設定忘れを検出可能なマイクロコンピュータ
に関する。
最近のマイクロコンピュータにおいては、サブルーチ
ンコール命令を実行した場合や周辺ハードウェアからの
割込みが発生した場合にプログラムカウンタあるいはプ
ログラムステータスワード等をスタックする領域とし
て、通常の処理データを格納するためのデータメモリ
(RAMと略す)を用いるRAMスタック方式が一般的であ
り、スタックポインタによってRAMの中のスタック領域
を指定している。
ンコール命令を実行した場合や周辺ハードウェアからの
割込みが発生した場合にプログラムカウンタあるいはプ
ログラムステータスワード等をスタックする領域とし
て、通常の処理データを格納するためのデータメモリ
(RAMと略す)を用いるRAMスタック方式が一般的であ
り、スタックポインタによってRAMの中のスタック領域
を指定している。
上述したRAMスタック方式は、スタック領域がデータ
メモリ領域の一部に割当てられているために、応用によ
ってスタック領域と処理データ記憶領域を自由に配分す
ることができる長所があるが、リセット入力後の初期ル
ーチンで必ずスタックポインタを設定する必要がある。
リセット入力でスタックポインタが不定の場合には、プ
ログラムによる初期化を忘れた場合、データメモリのど
の領域にスタックされるか全くわからず処理データ記憶
領域のデータを破壊してしまう。しかも、このようなソ
フトウェア上のバグは実際にマイクロコンピュータを応
用装置上で動作させた場合に原因が発見しにくいという
欠点がある。スタックポインタをリセット入力時に特定
の値に固定すればスタック領域が不定となることは回避
できるが、前述のように応用によってデータメモリ内の
割り当てが自由に割り振りできることがRAMスタック方
式の長所であり、実際に必ずしも同じ領域に割り当てる
とは限らない。従って前述と同様、スタックポインタの
初期設定の忘れによりデータ記憶として割り当てた領域
が破壊されて正常動作をせずやはり原因の発見が困難で
ある。
メモリ領域の一部に割当てられているために、応用によ
ってスタック領域と処理データ記憶領域を自由に配分す
ることができる長所があるが、リセット入力後の初期ル
ーチンで必ずスタックポインタを設定する必要がある。
リセット入力でスタックポインタが不定の場合には、プ
ログラムによる初期化を忘れた場合、データメモリのど
の領域にスタックされるか全くわからず処理データ記憶
領域のデータを破壊してしまう。しかも、このようなソ
フトウェア上のバグは実際にマイクロコンピュータを応
用装置上で動作させた場合に原因が発見しにくいという
欠点がある。スタックポインタをリセット入力時に特定
の値に固定すればスタック領域が不定となることは回避
できるが、前述のように応用によってデータメモリ内の
割り当てが自由に割り振りできることがRAMスタック方
式の長所であり、実際に必ずしも同じ領域に割り当てる
とは限らない。従って前述と同様、スタックポインタの
初期設定の忘れによりデータ記憶として割り当てた領域
が破壊されて正常動作をせずやはり原因の発見が困難で
ある。
(課題を解決するための手段) 本発明のマイクロコンピュータは、スタックポインタ
の初期値設定が行われたことを検出して検出信号を出力
するスタックポインタ設定検出回路と、 前記検出信号をR側入力、マイクロコンピュータへのリ
セット信号をS側入力とするR−Sフリップフロップ
と、このR−Sフリップフロップの出力と割込信号又は
STACK信号を入力とするAND回路とを含むエラー検出回路
を備え、 前記AND回路は、前記R−Sフリップフロップの出力が
ハイレベルで、かつ割込信号又はSTACK信号がハイレベ
ルになった場合に、エラー割込み又は内部リセット信号
を出力することを特徴とする。
の初期値設定が行われたことを検出して検出信号を出力
するスタックポインタ設定検出回路と、 前記検出信号をR側入力、マイクロコンピュータへのリ
セット信号をS側入力とするR−Sフリップフロップ
と、このR−Sフリップフロップの出力と割込信号又は
STACK信号を入力とするAND回路とを含むエラー検出回路
を備え、 前記AND回路は、前記R−Sフリップフロップの出力が
ハイレベルで、かつ割込信号又はSTACK信号がハイレベ
ルになった場合に、エラー割込み又は内部リセット信号
を出力することを特徴とする。
(実施例) 次に本発明について図面を参照して説明する。
第1図は本発明の一実施例である。スタックポインタ
設定検出回路1は、メモリアドレス上に割当てられたス
タックポインタのアドレスを解読する回路で、アドレス
バスを入力とし、メモリへの書込み制御信号MWRが発生
したときにアドレスバスの内容がスタックポインタのア
ドレスである場合にはエラー検出回路2に対しハイレベ
ルアクティブのパルス信号を出力し、スタックポインタ
以外のアドレスの場合はロウレベルの出力を保持する。
設定検出回路1は、メモリアドレス上に割当てられたス
タックポインタのアドレスを解読する回路で、アドレス
バスを入力とし、メモリへの書込み制御信号MWRが発生
したときにアドレスバスの内容がスタックポインタのア
ドレスである場合にはエラー検出回路2に対しハイレベ
ルアクティブのパルス信号を出力し、スタックポインタ
以外のアドレスの場合はロウレベルの出力を保持する。
エラー検出回路2は、マイクロコンピュータへのリセ
ット信号RESETが入力Sに入力された場合に‘1'を出力
し、前記スタックポインタ設定検出回路1からのパルス
信号が入力Rに入力されると‘0'を出力するR−Sフリ
ップフロップ回路2−aと,2入力のうち前記R−Sフリ
ップフロップ回路2−bを一方の入力としOR回路3の出
力を他方の入力とするAND回路2−bより構成される。
ット信号RESETが入力Sに入力された場合に‘1'を出力
し、前記スタックポインタ設定検出回路1からのパルス
信号が入力Rに入力されると‘0'を出力するR−Sフリ
ップフロップ回路2−aと,2入力のうち前記R−Sフリ
ップフロップ回路2−bを一方の入力としOR回路3の出
力を他方の入力とするAND回路2−bより構成される。
OR回路3は、マイクロコンピュータの外部からの割込
み入力があった場合、又はマイクロコンピュータに内蔵
する周辺ハードウェアから割込が発生した場合に割込制
御回路より発生される割込信号INT1〜INTn(後述のエラ
ー割込みは除く)を入力とし、また、サブルーチンコー
ル命令やレジスタのプッシュ・ポップなどスタック操作
命令を実行した場合に発生するSTACK信号を入力とす
る。
み入力があった場合、又はマイクロコンピュータに内蔵
する周辺ハードウェアから割込が発生した場合に割込制
御回路より発生される割込信号INT1〜INTn(後述のエラ
ー割込みは除く)を入力とし、また、サブルーチンコー
ル命令やレジスタのプッシュ・ポップなどスタック操作
命令を実行した場合に発生するSTACK信号を入力とす
る。
次に一連の動作について説明する。マイクロコンピュ
ータへのリセット信号が入力されると、RESET信号によ
りR−Sフリップフロップ回路2−aの出力Qが‘1'と
なる。その後、スタックポインタを設定するためにスタ
ックポインタが割当てられたメモリアドレスへのデータ
書込み命令が実行されるとスタックポインタ設定検出回
路1はパルスを発生するためR−Sフリップフロップ回
路2−aの出力Qは‘0'となり、AND回路2−bは‘0'
を出力するためエラー割込み、又は内部リセット信号は
発生しない。
ータへのリセット信号が入力されると、RESET信号によ
りR−Sフリップフロップ回路2−aの出力Qが‘1'と
なる。その後、スタックポインタを設定するためにスタ
ックポインタが割当てられたメモリアドレスへのデータ
書込み命令が実行されるとスタックポインタ設定検出回
路1はパルスを発生するためR−Sフリップフロップ回
路2−aの出力Qは‘0'となり、AND回路2−bは‘0'
を出力するためエラー割込み、又は内部リセット信号は
発生しない。
一方、マイクロコンピュータへのリセット信号RESET
によりR−Sフリップフロップ回路2−aの出力Qが
‘1'の状態において、サブルーチンコール命令が実行さ
れるか、又はレジスタのプッシュ・ポップ等のスタック
操作命令が実行されるとSTACK信号が‘1'となりOR回路
3の出力が‘1'となるためAND回路2−bの2入力がと
もに‘1'となってエラー割込み又は内部リセット信号を
出力する。あるいはR−Sフリップフロップ回路2−a
の出力が‘1'のときに割込み信号INT1〜INTnのいずれか
が発生した場合にもOR回路3の出力が‘1'となるため同
様にエラー割込み又は内部リセット信号を出力する。エ
ラー割込み自身によってもスタック領域への退避動作が
行われるが、エラー割込み処理の中でCPUの動作を停止
させたり、出力端子へエラー情報を出力するなどの処理
を行えばエラーの発生を外部へ知らせることができるた
め、エラー割込みによりデータ領域の一部データが破壊
されたとしてもエラー発生の検出に支障はないようにす
ることができる。
によりR−Sフリップフロップ回路2−aの出力Qが
‘1'の状態において、サブルーチンコール命令が実行さ
れるか、又はレジスタのプッシュ・ポップ等のスタック
操作命令が実行されるとSTACK信号が‘1'となりOR回路
3の出力が‘1'となるためAND回路2−bの2入力がと
もに‘1'となってエラー割込み又は内部リセット信号を
出力する。あるいはR−Sフリップフロップ回路2−a
の出力が‘1'のときに割込み信号INT1〜INTnのいずれか
が発生した場合にもOR回路3の出力が‘1'となるため同
様にエラー割込み又は内部リセット信号を出力する。エ
ラー割込み自身によってもスタック領域への退避動作が
行われるが、エラー割込み処理の中でCPUの動作を停止
させたり、出力端子へエラー情報を出力するなどの処理
を行えばエラーの発生を外部へ知らせることができるた
め、エラー割込みによりデータ領域の一部データが破壊
されたとしてもエラー発生の検出に支障はないようにす
ることができる。
第2図は本発明の第2の実施例を示す図である。図の
番号2〜3は第1の実施例と構成は同一である。本実施
例のスタックポインタ設定検出回路1−bは、スタック
ポインタ設定の専用命令をもってマイクロコンピュータ
において、プログラムメモリ4より命令がよみ出されて
命令デコーダ5により専用命令がデコードされたときに
出力される信号を入力として、このときにパルスを発生
する。従って専用命令の場合にも第1の実施例と同様の
エラー検出が可能となる。
番号2〜3は第1の実施例と構成は同一である。本実施
例のスタックポインタ設定検出回路1−bは、スタック
ポインタ設定の専用命令をもってマイクロコンピュータ
において、プログラムメモリ4より命令がよみ出されて
命令デコーダ5により専用命令がデコードされたときに
出力される信号を入力として、このときにパルスを発生
する。従って専用命令の場合にも第1の実施例と同様の
エラー検出が可能となる。
以上説明したように、本発明はRAMスタック方式のマ
イクロコンピュータにおいて、リセット信号入力後、ス
タックポインタの初期値設定をする以前にサブルーチン
コール命令実行や割込み等のスタック動作が発生した場
合に、これを検出する機能を持つことにより、スタック
ポインタの設定忘れというソフトウェアのバグを検出す
ることができるためソフトウェアの開発効率を高める効
果がある。
イクロコンピュータにおいて、リセット信号入力後、ス
タックポインタの初期値設定をする以前にサブルーチン
コール命令実行や割込み等のスタック動作が発生した場
合に、これを検出する機能を持つことにより、スタック
ポインタの設定忘れというソフトウェアのバグを検出す
ることができるためソフトウェアの開発効率を高める効
果がある。
第1図は本発明の第1の実施例を示すブロック図、第2
図は本発明の第2の実施例を示すブロック図である。 1−a,1−b……スタックポインタ設定検出回路、2…
…エラー検出回路、2−a……R−Sフリップフロップ
回路、2−b……AND回路、3……OR回路、4……プロ
グラムメモリ、5……命令デコーダ。
図は本発明の第2の実施例を示すブロック図である。 1−a,1−b……スタックポインタ設定検出回路、2…
…エラー検出回路、2−a……R−Sフリップフロップ
回路、2−b……AND回路、3……OR回路、4……プロ
グラムメモリ、5……命令デコーダ。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/42 G06F 9/46 G06F 12/16
Claims (1)
- 【請求項1】スタックポインタの初期値設定が行われた
ことを検出して検出信号を出力するスタックポインタ設
定検出回路と、 前記検出信号をR側入力、マイクロコンピュータへのリ
セット信号をS側入力とするR−Sフリップフロップ
と、このR−Sフリップフロップの出力と割込信号又は
STACK信号を入力とするAND回路とを含むエラー検出回路
を備え、 前記AND回路は、前記R−Sフリップフロップの出力が
ハイレベルで、かつ割込信号又はSTACK信号がハイレベ
ルになった場合に、エラー割込み又は内部リセット信号
を出力することを特徴とするマイクロコンピュータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30481190A JP3166167B2 (ja) | 1990-11-09 | 1990-11-09 | マイクロコンピュータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30481190A JP3166167B2 (ja) | 1990-11-09 | 1990-11-09 | マイクロコンピュータ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04177533A JPH04177533A (ja) | 1992-06-24 |
| JP3166167B2 true JP3166167B2 (ja) | 2001-05-14 |
Family
ID=17937537
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30481190A Expired - Fee Related JP3166167B2 (ja) | 1990-11-09 | 1990-11-09 | マイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3166167B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6149187B2 (ja) * | 2012-03-21 | 2017-06-21 | 株式会社ソフイア | 遊技機 |
-
1990
- 1990-11-09 JP JP30481190A patent/JP3166167B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH04177533A (ja) | 1992-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3684590B2 (ja) | リセット制御装置及びリセット制御方法 | |
| JPH0743653B2 (ja) | 割込みコントローラ | |
| JPH0869391A (ja) | データ・プロセッサとその方法 | |
| CN116795731A (zh) | 一种数据访问方法、芯片、电子设备和存储介质 | |
| JP3166167B2 (ja) | マイクロコンピュータ | |
| JPH0484224A (ja) | スタックエリア保護回路 | |
| JP3102568B2 (ja) | ソフトウエア開発装置 | |
| JPS63250753A (ja) | メモリアクセスチエツク方式 | |
| JP3110222B2 (ja) | マイクロコンピュータ | |
| KR930008679B1 (ko) | 마이크로 채널 버스 아키덱쳐를 갖는 컴퓨터 시스템의 마이크로 채널 버스 에러 추적회로 | |
| JP2979918B2 (ja) | 割り込み検出回路 | |
| JPS6346460B2 (ja) | ||
| JPS6118045A (ja) | プログラムの暴走検出方式 | |
| JPS61279940A (ja) | 計算機の異常検出装置 | |
| JPH0333939A (ja) | マイクロプロセッサ | |
| JPS63138437A (ja) | プログラム制御システム | |
| JPS6043745A (ja) | 計算機システム | |
| JP3172981B2 (ja) | 未使用メモリ空間アクセスエラー検出回路 | |
| JPH06139084A (ja) | 情報処理装置 | |
| JPH01100636A (ja) | エラー制御回路 | |
| JPH06230993A (ja) | 情報処理装置 | |
| JPH03208132A (ja) | シングルチツプマイクロコンピユータ | |
| JPH01251240A (ja) | 暴走検出方式 | |
| JPH05334122A (ja) | イベント検出回路 | |
| JPH02144744A (ja) | 外部メモリ診断機能付lsi |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |