JPH04205144A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH04205144A
JPH04205144A JP2336175A JP33617590A JPH04205144A JP H04205144 A JPH04205144 A JP H04205144A JP 2336175 A JP2336175 A JP 2336175A JP 33617590 A JP33617590 A JP 33617590A JP H04205144 A JPH04205144 A JP H04205144A
Authority
JP
Japan
Prior art keywords
stack
area
register
microprocessor
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
Application number
JP2336175A
Other languages
English (en)
Inventor
Yuichi Nakao
中尾 裕一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2336175A priority Critical patent/JPH04205144A/ja
Publication of JPH04205144A publication Critical patent/JPH04205144A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はマイクロプロセッサに関し、特に、定められ
たアドレス領域を越えた記憶領域に対してスタック操作
を行なうことを禁止するためのハードウェア構成に関す
るものである。
〔従来の技術〕
第2図は従来のマイクロフロセッサのスタック操作に関
するハードウェアの一例を示す図である。
図において、(100)はマイクロプロセッサ、(20
0)はマイクロプロセッサ(100)の使用することの
できる記憶装置の記憶領域を示すアドレス空間、 (2
01)は現在実行中のプログラムかすタックとして使用
することのできる記憶領域を示すスタック領域、 (2
02)はスタック領域(202)とは別の目的のために
使用される記憶領域、(101)はマイクロプロセッサ
(100)に含まれるスタックボインタレジスタ、 (
102)はマイクロプロセッサ(+00)に含まれる加
減算回路、 (103)は加減算回路(102)に接続
され定数値を加減算回路(102)に供給する定数発生
回路、 (104)はスタック操作の制御を行なうスタ
ック操作制御回路である。
次に動作について説明する。
マイクロプロセッサ(100)は、記憶装置上の記憶領
域(図示せず)に割り付けられたプログラムを実行する
。マイクロプロセッサか前記プログラム中の命令を実行
する時に、命令によって示される操作を記憶領域上のど
のデータに対して実行するかを示す指定法の1つとして
、スタック操作かある。スタック操作の可能なマイクロ
プロセッサでは、スタックポインタレジスタ(101)
とスタックポインタレジスタの保持する数値を更新する
ための加減算回路(102)とを内蔵している。データ
をスタック操作で記憶装置に書き込む時にみ、加減算回
路(102)にスタックポインタレジスタ(101)の
保持する数値を読み込み、その値を書き込むデータの占
有するアドレス可能な記憶要素の数だけ減じた後に更新
されたスタックポインタレジスタ(101)の指し示す
記憶要素のデータを書き込む。
例えば4バイトのデータを書き込む場合には、スタック
操作制御回路(104)により定数値−4か選ばれ加減
算回路(102)に供給されるのてスタックポインタレ
ジスタ(101)の値は−4だけ変化することになる。
2バイトデータ、1ハイドデータの場合はそれぞれ定数
−2と−1が選択される。逆にスタック操作でデータの
読み出しを行なうときには、スタックポインタレジスタ
(101)の指し示す記憶要素からデータを読みだし、
その後加減算回路(102)においてスタックポインタ
レジスタ(101)の値にデータの占有していた記憶要
素の数を加える。この場合は、4.2.1バイトのデー
タに対して、それぞれ+4、+2、+1の定数値がスタ
ック操作制御回路(104)によって選択され加減算定
回路(102)に転送され加減算に使用される。
記憶領域を第2図に示すようにアドレスの大きな方を下
に表示すると、スタック操作によってデータが書き込ま
れる度にスタックに使用されている記憶領域は上に上に
と伸びて行き、スタックポインタレジスタの値は小さく
なって行くことになる。スタック操作によって使われる
ことを想定している記憶領域をここでスタック領域と呼
び、そのうち実際に有効なデータが書き込まれている記
憶領域を使用されているスタック領域と呼ぶことにする
。スタッタ操作でデータか読み出されるとその度に使用
されているスタック領域は上から順番に減って行き、同
時にスタックポインタレジスタの保持する値は大きくな
って行く。
スタック操作を用いれば、サブルーチンの利用か可能に
なり、サブルーチン中のローカル変数を定義することが
でき、サブルーチンの再帰的呼び出しができるなどの利
点がある。
〔発明が解決しようとする課題〕
従来のマイクロプロセッサは上記のように動作するので
、スタックに書き込むデータが予想を越えて増加したと
きには、スタック領域として使用される記憶領域がアド
レスの小さい方に伸びすぎて、別の用途に使用している
記憶領域まで達し、記憶を破壊してしまう恐れがある。
特にマイクロプロセッサを組み込んだシステム及びプロ
グラムの動作を検証している段階、いわゆるデバッグ時
には、割込みが多重にかかったり、再帰呼び出しが予想
を越えて行なわれ、スタック領域が伸びすぎることがあ
るなどの問題点があった。
この発明は上記のような問題点を解消するためになされ
たもので、スタック領域か予想を越えて伸び、他の用途
に使用している記憶領域のデータを壊してしまう前に、
その危険を検出し、必要なデータが破壊されるのを防ぐ
ことかできるマイクロプロセッサを得ることを目的とす
る。
〔課題を解決するための手段〕
この発明に係わるマイクロプロセッサは、スタック領域
として使用可能な記憶領域の限界アドレスの値を保持す
るスタック領域限界アドレス保持レジスタとアドレス比
較のための比較器とを備え、スタック操作の度にスタッ
クポイントレジスタの保持する値とスタック領域限界ア
ドレス保持レジスタの値とを比較するとともに、前記2
つの値か一致または特定の関係を満たした時に割込みを
発生するようにしたものである。
〔作用〕
この発明に係わるマイクロプロセッサにおいて、スタッ
ク領域限界アドレス保持レジスタはスタ・ツク領域とし
て使用可能な限界のアドレスを保持し、アドレス比較器
は、スタック操作の度にスタックポインタレジスタの保
持する値とスタック領域限界アドレス保持レジスタの保
持する値とを比較し、前記2つの値が一致した場合に割
込み信号を発生し、スタック領域が他の用途に使用して
いる記憶領域にまて入り込んてデータを破壊してしまう
ことを防ぐ。
〔実施例〕
第1図はこの発明の一実施例であるマイクロプロセッサ
のスタック操作を説明する概念図である。
図においては、第2図と同等の部分は同じ符号を用いて
示す。(105)はアドレス比較器、 (+06)はス
タック領域限界アドレス保持レジスタ、 (107)は
アンドゲート、 (108)はセットリセットラッチ、
(109)は割込み要求信号線、(110)は割込み認
知信号線、 (Ill)はリセット信号線、 (112
)はオアゲートである。
次の動作について説明する。
この発明において、従来例と動作か異なるのはスタック
操作の度にスタックポインタレジスタ(101)の値が
アドレス比較器(105)に送られ、スタック領域限界
アドレス保持レジスタ(106)の値と比較され、もし
一致している場合には実行中のプログラムに割込みが掛
けられ、処理か中断させられることである。
アドレス比較器(105)は、スタックポインタレジス
タ(101)とスタックポインタ値更新のための加減算
回路(102)とを接続する信号線に接続されている。
スタック操作の度にスタックポインタ値か加減算回路(
+02)に転送されると同時に、その値はアドレス保持
レジスタ(106)の値と比較される。比較の結果値か
一致すれば直ちに、セットリセットラッチ(108)が
セットされスタックあふれによる割込み要求信号線(1
09)かアクティブになる。割込みは、実行中の命令す
なわちスタ・ツク操作を行なった命令の終了と同時に受
は付けられ、スタックあふれ処理ルーチンに制御が移る
。割込みか受は付けられると割込み認知信号(+10)
によりラッチ(108)かりセットされる。ラッチ(1
08)のリセットはマイクロプロセッサのリセット信号
(111)によっても行なわれるように、割込み認知信
号線(110)とリセット信号線と(111)はオアゲ
−) (112)に入力され、オアゲート(112)の
出力がラッチ(+08)のリセット端子に入力される。
スタックあふれ処理ルーチンは、最も簡単な場合には警
告メツセージを出力してプログラムを終了する。
なお、ここではアドレス比較器は他の用途には使ってい
ないか、他の用途にも使用できる回路例えばALUを用
いてアドレスの比較を行なってもよい。アドレスの比較
はスタック操作の前でも可能であるし、後でも可能であ
る。スタック領域限界アドレスレジスタに保持させるア
ドレスは、別の用途に使用する記憶領域との真の境界の
アドレスにすることもできるし、いくらかの余裕を持っ
た値としておくこともてきる。いくらかの余裕を持った
値にした方が、スタックのあふれに伴って割込みが発生
したときに割込み前のプログラムアドレスやその他の情
報をスタックに積んでやることができるためより望まし
い。またアドレス比較器は、必ずしもスタックポインタ
レジスタと加減算回路との間を結ぶ信号線に接続されて
いる必要はない。必要なのは、スタック操作を行う度に
スタック限界アドレスと現在使用中のスタックポインタ
の比較を行ない、スタック領域かあふれていないかどう
かを検出することである。
〔発明の効果〕
以上のように、この発明によれば、マイクロプロセッサ
はスタック領域か限界まで使われたことを検出できるの
で、スタック領域か予想を越えて伸びた時にも他の用途
に使われている記憶領域にまでスタック領域か伸びてデ
ータを破壊してしまうことを防ぐことかできる。
【図面の簡単な説明】
第1図はこの発明の一実施例であるマイクロプロセッサ
のスタック操作に関するハードウェアを説明する概念図
、第2図は従来のマイクロプロセッサのスタック操作に
関係するハードウェアの一例を示す図である。 図において、 (105)はアドレス比較器、 (10
6)はスタック領域限界アドレス保持レジスタ、(10
7)はアンドゲート、 (108)はセットリセットラ
ッチ、(109)は割込み要求信号線、(110)は割
込み認知信号線、 (]ll)はリセット信号線、 (
+12)はオアゲートである。 なお、各図中、同一符号は同一または相当部分を示す。 代  理  人   大  岩  増  雄第11A 手続補正書(自発) 平成  年  月  日 1、事件の表示  特願平2−88@1”15号2、発
明の名称 マイクロプロセッサ 3、補正をする者 (連絡先03(3213)3421特許部) ’−,,
ユ、ソ五 補正の対象 明細書の発明の詳細な説明の欄。 殻 補正の内容 (1)明細書第2頁第18行の「(202)はスタック
領域(202)とは別」を「(202)はスタック領域
(201)とは別」と訂正する。 (2)明細書第8頁第17行の「記憶装置に書き込む時
番ごみ、」を「記憶装置に書き込む時には、」と訂正す
る。 (3)明細書第6頁M8行の「スタック操作でデータが
」を「スタック操作でデータがJと訂正する。 以上

Claims (1)

    【特許請求の範囲】
  1. アドレス可能な複数の記憶要素に対してデータを書き込
    みまたは読み出すことができ、スタックポインタレジス
    タを持ち、前記スタックポインタレジスタの保持する数
    値によってアドレス指定された前記複数の記憶要素の内
    の1つまたは連続する複数の記憶要素に対してデータの
    書き込みまたは読みだしを行なうとともに、前記スタッ
    クポインタレジスタの保持する数値を前記データの占有
    する記憶要素のアドレス数に相当する数だけ更新する機
    能を持つマイクロプロセッサであって、さらにスタック
    領域限界アドレス保持レジスタとアドレス比較器とを備
    え、前記アドレス比較器を用いて、前記スタックポイン
    タレジスタの保持する数値と前記スタック領域限界アド
    レス保持レジスタの保持する数値とを比較し、前記2つ
    の数値に等しいかあるいは前もって定められた特定の関
    係にある時には、現在実行中のプログラムの実行を中断
    し例外処理を開始する機能を有することを特徴とするマ
    イクロプロセッサ。
JP2336175A 1990-11-29 1990-11-29 マイクロプロセッサ Pending JPH04205144A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2336175A JPH04205144A (ja) 1990-11-29 1990-11-29 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2336175A JPH04205144A (ja) 1990-11-29 1990-11-29 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH04205144A true JPH04205144A (ja) 1992-07-27

Family

ID=18296442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2336175A Pending JPH04205144A (ja) 1990-11-29 1990-11-29 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH04205144A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303491A (ja) * 1992-04-27 1993-11-16 Nec Ic Microcomput Syst Ltd スタック・ポインタ監視装置
JP2019036261A (ja) * 2017-08-22 2019-03-07 日立オートモティブシステムズ株式会社 スタックオーバーフロー検知装置及び車両制御システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05303491A (ja) * 1992-04-27 1993-11-16 Nec Ic Microcomput Syst Ltd スタック・ポインタ監視装置
JP2019036261A (ja) * 2017-08-22 2019-03-07 日立オートモティブシステムズ株式会社 スタックオーバーフロー検知装置及び車両制御システム

Similar Documents

Publication Publication Date Title
EP0464615A2 (en) Microcomputer equipped with DMA controller
JP3230262B2 (ja) 電子装置及びその固定情報修正方法
JP2526688B2 (ja) プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法
US6785883B1 (en) Software system for tracing data
JPH04205144A (ja) マイクロプロセッサ
US4797816A (en) Virtual memory supported processor having restoration circuit for register recovering
JP3219082B2 (ja) データ格納方法
JPH0414376B2 (ja)
JPS5826043B2 (ja) プロセツサのリセツト方式
JP2871998B2 (ja) プログラム修正方式
JPH03149621A (ja) マイクロプロセッサ
JP3575052B2 (ja) 電子装置
JPH01314333A (ja) 電子計算機
JPH0484224A (ja) スタックエリア保護回路
JPS59163663A (ja) 簡易フアイル破壊検知方式
JPS6329846A (ja) 割込みベクタテ−ブル保護方式
JPS638936A (ja) 割込み処理装置
JPS60193046A (ja) 命令例外検出方式
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPH04107630A (ja) 中央処理装置
JPS59121678A (ja) スタツクの書込み・読出し制御方式
JPS6270947A (ja) デバグ割込み制御方式
JPS62189544A (ja) 情報処理装置
JPS63165931A (ja) 不連続命令フエツチアドレス情報記憶方式
JPH04153851A (ja) メモリ保護回路