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

マイクロプロセッサ

Info

Publication number
JPH04157530A
JPH04157530A JP28389890A JP28389890A JPH04157530A JP H04157530 A JPH04157530 A JP H04157530A JP 28389890 A JP28389890 A JP 28389890A JP 28389890 A JP28389890 A JP 28389890A JP H04157530 A JPH04157530 A JP H04157530A
Authority
JP
Japan
Prior art keywords
limit value
stack
program
register
control circuit
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
JP28389890A
Other languages
English (en)
Inventor
Kazuyoshi Okazaki
岡崎 収良
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP28389890A priority Critical patent/JPH04157530A/ja
Publication of JPH04157530A publication Critical patent/JPH04157530A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロプロセッサに関し、特にそのスタッ
ク機能に関する。
〔従来の技術〕
従来、マイクロプロセッサのスタック機構は、マイクロ
プロセッサに内蔵するレジスタ群と外部のメモリとの間
のデータ交換を、単純な命令またはハードウェアにより
実現していた。
〔発明が解決しようとする課題〕
上述した従来のマイクロプロセッサでは、プログラムの
サブルーチン呼出し、タスクの切替、処理ルーチン内に
於るローカル変数の格納手段、割込み発生時に於るデー
タの遅延手段としてスタック機構が用いられている。
ここで使用されるスタック領域は、通常外部メモリに配
置され、マイクロプロセッサ内にあるスタックポインタ
・レジスタの値によりアドレッシングされる。このスタ
ック領域の外部メモリとマイクロプロセッサ内のレジス
タとの間の書込み/続出しは、P u s h / P
 o p命令等で処理される、スタックポインタ・レジ
スタの内容は、これらの命令の実行により、予め決めら
れた値だけ自動的に増減する。例えば、Pu sh命令
によりスタックポインタ・レジスタの内容が「+2」だ
け増加するマイクロプロセッサでは、n回のPu5h命
令の実行により2nだけスタックポインタ・レジスタ(
SP)の内容が増加する。
また、割込み機構を有するマイクロプロセッサではn回
の割込みが連続的に発生すると、SPの内容はanだけ
増加する(aは既知の整数〉。
SPによりアクセスされる外部メモリは、リード・ライ
ト可能なメモリ(RWM)で構成されなければならない
一般のプログラムに於ては、このRWMは主と゛してプ
ログラムのデータ領域としても使用されるため、スタッ
ク領域はこれと明確に分離して利用しなければならない
0通常のマイクロプロセッサでは、データ領域とスタッ
ク領域はハードウェア的に分離されていないため、ソフ
ト設計時にあらかじめこれらの領域を見積る必要がある
。しかし、スタック領域の見積りは場合によっては非常
に難しく、割込みが頻繁に発生する場合や、マルチタス
゛り環境下のあるルーチンが多くのタスクから参照され
る場合等では、ソフト設計上のネックになっていた。
ソフト設計者は、このスタック領域の見積りに際し、最
大使用量をある程度想定し、その値にマージンを加えて
決定していた。このため、その見積りが甘過ぎてRWM
の無駄を生じたり、反対に予想以上のスタック領域を消
費しプログラムのデータ領域を破壊“してしまうといっ
た場合があり、最適なスタック領域の見積りが事実上困
難であると言う欠点があった。更に、スタック領域が不
足しデータ領域を破壊することによるプログラムの暴走
は、再現性が乏しく、解析に非常に時間が掛かると云う
欠点があった。
本発明の目的は、このような欠点を除き、スタック領域
の限界値を予め設定しておくレジスタを配置し、マイク
ロプロセッサの動作中にSPの内容が限界値に達すると
異常信号を制御回路に出力し、プログラムのシーケンス
を変更する手段を備えることにより、他のデータ領域を
破壊することなく、プログラムの暴走を防止できるよう
にしたマイクロプロセッサを提供することにある。
〔課題を解決するための手段〕
本発明のマイクロプロセッサの構成は、スタック機構を
有するマイクロプロセッサに於て、外部メモリに割当て
られたスタック領域をアドレッシングするスタックポイ
ンタ・レジスタと、このスタックポインタ・レジスタと
同一のビット幅のメモリ領域を有し前記スタック領域の
限界値をプログラムで書込み可能なレジスタと、これら
2つのレジスタの内容を比較する比較器と、全体の動作
制御を行い前記スタックポインタ・レジスタの内容がこ
のマイクロプロセッサの動作シーケンスの中で参照され
る時点で前記比較器の出力が伝達される制御回路とを備
えることを特徴とする。
〔実施例〕
次に本発明について図面を参照して説明する。
第1図は本発明の一実施例を示すブロック図で、マイク
ロプロセッサ1の概略構成を示している。スタックポイ
ンタ・レジスタ(SP)2、限界値設定レジスタ(LR
)3、汎用レジスタ群8、プログラムカウンタ(PC)
9、ALU 10は各々内部データバス13に接続され
ている。これら限界値設定レジスタ3とスタックポイン
タ・レジスタ2の内容は比較器4で比較され、制御回N
5の指示するタイミングでその結果を比較出力信号7と
して制御回路5に伝達される。スタックポインタ・レジ
スタ2の出力は、制御回路5の指示するタイミングで内
部アドレスバス14、アドレスバッファ11を介して外
部メモリに対するアドレスとなる。
限界値設定レジスタ3には、予めプログラムによりスタ
ック領域の予想限界値を設定しておく。
プログラムの実行中、即ちマイクロプロセッサの動作シ
ーケンス中にスタックポインタ・レジスタ2が参照され
る場合には、制御回路5の指示により比較器4が動作す
る。この時、限界値設定レジスタ3の内容を越えていた
場合には、比較器出力信号7を介して制御回路5に異常
を伝達し、制御回路5は例外処理のシーケンスに入る。
例外処理では、あらかじめ決められた値をプログラムカ
ウンタ9にロードし、例外処理ルーチンへ分岐させるこ
とができる。
スタックポインタ・レジスタ2の値は、Pu5h / 
P o p命令の実行時に、制御回路5の指示により既
定の値だけ増減する。それと同時に比較器4が動作し、
スタック領域の限界値を越えた場合には例外処理ルーチ
ンが呼び出されることになる。限界値設定レジスタ3は
プログラムによりリード・ライト可能で、マルチタスク
環境でのスタック領域の切替時等には、−旦その値をセ
ーブして新たに限界値を設定することが可能である。
外部からの割込信号15が制御回路5に入力されると、
その時のプログラムカウンタ4の値をスタックポインタ
・レジスタ2の内容が示す外部メモリへ退避し、新たに
プログラムカウンタ4には割込処理ルーチンのアドレス
がロードされる。この際にもスタックポインタ2の値は
既定の値だけ増加するが、それと同時に比較器4が動作
し、比較器出力信号7が制御回路5に伝達される。
この様に、予めプログラムにスタック領域の限界値を限
界値設定レジスタ3にセットしておけば、いかなる場合
にもスタックポインタの挙動を自動的に監視することが
でき、その領域を越えて外部メモリにアクセスしようと
すると、例外処理ルーチンが呼び出され、異常を検出す
ることが可能となる。
第2図は本発明の第2の実施例のブロック図である。
複数の限界値設定レジスタで構成される限界値設定レジ
スタ群20は、制御回路5の指示により動作するレジス
タ選択回路21により、その中の一つが選択される。こ
の複数のレジスタは、複数のタスクや複数の割込み用と
してプログラムによりその使用法を決定できる。第1の
実施例では、スタック領域を切替えるには、−旦限定値
設定レジスタ3の内容をセーブし、その後に新たな値を
セットする必要があったが、本実施例では、複数のレジ
スタが用意されており、スタック領域の切替時にもその
内容をセーブする必要はない。但し、現在どの限界値レ
ジスタが選択されているかは、レジスタ選択回路21の
動作に依存する。
この実施例では、限界値設定レジスタの値を一々セーブ
しなくてもよいので゛、その分だけ高速な処理が実現で
き、この回路を適用することによる時間的なオーバヘッ
ドが回避できる。
〔発明の効果〕
以上説明したように本発明は、スタック領域の限界値を
予め設定しておくレジスタを配置し、マイクロプロセッ
サの動作中にスタックポインタの値が限界値に達すると
異常信号を制御回路に出力し、例外処理ルーチンを起動
する機構を有することにより、他のデータ領域の破壊を
防ぐことができ、プログラムの暴走を防止すると云う効
果がある。また、ソフト設計時のスタック領域の見積り
の際には、予想される最低限の値を限界値設定レジスタ
にセットしておき、動作試験時にスタック・オーバーす
る都度限界値を少しずつ増加させる方法により、スタッ
ク領域の最適値を容易に決定できると云う効果がある。
更に、限界値設定レジスタの値として、必ずスタック・
オーバーする値をセットし、例外処理ルーチンの中でス
タックポインタの値を読み出すことにより、スタックポ
インタの挙動シーケンスを容易に把握することができ、
デバッグ時のプログラム解析に非常に効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は本発
明の第2の実施例のブロック図である。 1・・・マイクロプロセッサ、2,2a・・・スタック
ポインタ・レジスタ(SP)、3・・・限界値設定レジ
スタ(LR) 、4・・・比較器、5・・・制御回路、
6・・・制御信号、7・・・比較器出力信号、8・・・
汎用レジスタ群、9・・・プログラム・カウンタ(PC
)、10・・・ALU、11・・・アドレスバッファ、
12・・・データバッファ、13・・・内部データバス
、14・・・内部アドレスバス、15・・・割込信号、
16・・・テンボラリレジスタ、20・・・限界レジス
タ群、21・・・レジスタ選択回路。

Claims (1)

    【特許請求の範囲】
  1. スタック機構を有するマイクロプロセッサに於て、外部
    メモリに割当てられたスタック領域をアドレッシングす
    るスタックポインタ・レジスタと、このスタックポイン
    タ・レジスタと同一のビット幅のメモリ領域を有し前記
    スタック領域の限界値をプログラムで書込み可能なレジ
    スタと、これら2つのレジスタの内容を比較する比較器
    と、全体の動作制御を行い前記スタックポインタ・レジ
    スタの内容がこのマイクロプロセッサの動作シーケンス
    の中で参照される時点で前記比較器の出力が伝達される
    制御回路とを備えることを特徴とするマイクロプロセッ
    サ。
JP28389890A 1990-10-22 1990-10-22 マイクロプロセッサ Pending JPH04157530A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28389890A JPH04157530A (ja) 1990-10-22 1990-10-22 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28389890A JPH04157530A (ja) 1990-10-22 1990-10-22 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH04157530A true JPH04157530A (ja) 1992-05-29

Family

ID=17671616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28389890A Pending JPH04157530A (ja) 1990-10-22 1990-10-22 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH04157530A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202268A (ja) * 2004-12-24 2006-08-03 Kawasaki Microelectronics Kk Cpu
JP2008003915A (ja) * 2006-06-23 2008-01-10 Denso Corp 電子機器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202268A (ja) * 2004-12-24 2006-08-03 Kawasaki Microelectronics Kk Cpu
JP2008003915A (ja) * 2006-06-23 2008-01-10 Denso Corp 電子機器

Similar Documents

Publication Publication Date Title
US4833640A (en) Register bank change including register to register transfer in a data processing system
JP3970609B2 (ja) プロセッサシステム
US6785883B1 (en) Software system for tracing data
KR20010085997A (ko) 프로그램 스레드 디버깅 방법
JPH04157530A (ja) マイクロプロセッサ
US5491826A (en) Microprocessor having register bank and using a general purpose register as a stack pointer
JPS5826043B2 (ja) プロセツサのリセツト方式
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JPS59218569A (ja) マイクロ・コンピユ−タ
JPH06139084A (ja) 情報処理装置
JPH059815B2 (ja)
KR950004227B1 (ko) 정보처리시스템
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPH0258648B2 (ja)
KR0170706B1 (ko) 마이크로프로세서의 외부 메모리 사용 방법
JP2591211B2 (ja) 高速割込み処理装置
JPH0154729B2 (ja)
JPS62264338A (ja) 評価用シングルチツプマイクロコンピユ−タ
JPH04205144A (ja) マイクロプロセッサ
JPH0315770B2 (ja)
JPH05334074A (ja) マイクロプロセッサ
JPH0264828A (ja) アドレストレース回路
JPS6349946A (ja) 演算処理装置
JPS6349944A (ja) 演算処理装置
JPS58221448A (ja) マイクロコンピユ−タ