JPS6057439A - スタツクあふれ検出装置 - Google Patents
スタツクあふれ検出装置Info
- Publication number
- JPS6057439A JPS6057439A JP58166411A JP16641183A JPS6057439A JP S6057439 A JPS6057439 A JP S6057439A JP 58166411 A JP58166411 A JP 58166411A JP 16641183 A JP16641183 A JP 16641183A JP S6057439 A JPS6057439 A JP S6057439A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- upper limit
- lower limit
- area
- register
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
この発明祉、マイクロプロセッサなどを応用した計算機
システムにおけるスタックあふれ検出装置に関するもの
である。
システムにおけるスタックあふれ検出装置に関するもの
である。
従来例の構成とその問題点
近年マイクロプロセッサの急速な発展に伴い、安価に計
算機システムを構築できるようになった。
算機システムを構築できるようになった。
マイクロプロセッサ応用製品の特徴は、従来ハードウェ
アで実現していた機能をソフトウェアで実現するもので
、同一のハードウェアであっても搭載するソフトウェア
な変えれば外見上具なった製品としてMth fr:さ
せることができる点にある。したがって、適正なハード
ウェアの開発とともに適正なソフトウェアの開発が必要
になり、各種のソフトウェア開発ソールが開発されてい
る。
アで実現していた機能をソフトウェアで実現するもので
、同一のハードウェアであっても搭載するソフトウェア
な変えれば外見上具なった製品としてMth fr:さ
せることができる点にある。したがって、適正なハード
ウェアの開発とともに適正なソフトウェアの開発が必要
になり、各種のソフトウェア開発ソールが開発されてい
る。
マイクロプロセッサのアーキテ°クチ丁の一つにスタッ
クという概念があ夛、内部レジスタの一時退避および復
旧、副プログラムへの分岐時の主プログラムへの戻り番
地の記憶などに用いられており、記憶装置内の番地とは
無関係にデータの読み書きができる特長を持つ。
クという概念があ夛、内部レジスタの一時退避および復
旧、副プログラムへの分岐時の主プログラムへの戻り番
地の記憶などに用いられており、記憶装置内の番地とは
無関係にデータの読み書きができる特長を持つ。
このスタック領域は物理的には有限であり、スタックポ
インタというものが演算処理装置内に設けられ、これが
記憶装置へ読み書きする番地を管理している。
インタというものが演算処理装置内に設けられ、これが
記憶装置へ読み書きする番地を管理している。
しかし、開発途中のプログラムではスタック領域のサイ
ズ以上に多くのデータを格納したシ、格納されたデータ
数以上におおぐデータを取出したりすることによるプロ
グラムの暴走などの障害が生じやすく、シかも原因の追
求が困難であり、スタックあふれ検出装置というものが
必要となってきている。
ズ以上に多くのデータを格納したシ、格納されたデータ
数以上におおぐデータを取出したりすることによるプロ
グラムの暴走などの障害が生じやすく、シかも原因の追
求が困難であり、スタックあふれ検出装置というものが
必要となってきている。
ここで、記憶装置の利用形態を模式化すると一般的に第
1図のようになる。1はプログツム領域、2はデータ領
域、3はスタック領域、4は空き領域である。プログツ
ム領域1は通常、読出し専用であり、データ領域2.ス
タック領域3はともに読み書きの両方が可能である。
1図のようになる。1はプログツム領域、2はデータ領
域、3はスタック領域、4は空き領域である。プログツ
ム領域1は通常、読出し専用であり、データ領域2.ス
タック領域3はともに読み書きの両方が可能である。
プログツム領域1または空き領域4へのデータの格納。
およびデータ領域2.スタック領域3゜空き領域4から
の命令の読込みは異常処理となる。
の命令の読込みは異常処理となる。
演算処理装置が命令の読込みザイクル、命令の実行サイ
クルのいずれの状態にあるかを示す信号線を用いると、
命令の読込みサイケVでのアドレス母線の値よりデータ
領域2.スタック領域3゜空き領域4へのアクセスを検
出することができ、同様に命令の実行サイクルでのプロ
グラム領域1へのデータの格納を検出することができる
。
クルのいずれの状態にあるかを示す信号線を用いると、
命令の読込みサイケVでのアドレス母線の値よりデータ
領域2.スタック領域3゜空き領域4へのアクセスを検
出することができ、同様に命令の実行サイクルでのプロ
グラム領域1へのデータの格納を検出することができる
。
しかし、データ領域2への読み書きとスタック領域3へ
の読み書きとを外部から区別することができないので、
スタックオーバーフローによるデータ領域2内のデータ
の破壊を防ぐことができず、異常動作の原因追求に多く
の労力を費していた。
の読み書きとを外部から区別することができないので、
スタックオーバーフローによるデータ領域2内のデータ
の破壊を防ぐことができず、異常動作の原因追求に多く
の労力を費していた。
また、記憶装置の利用形態が第2図のようになって論る
場合は、スタックのアンダーフローによる不当データの
取り出しや不当番地へのプログラムの復帰を防ぐことが
できないという問題点を有していた。
場合は、スタックのアンダーフローによる不当データの
取り出しや不当番地へのプログラムの復帰を防ぐことが
できないという問題点を有していた。
発明の目的
この発明は上記従来の問題点を解決するもので、データ
領域への読み書きとスタック領域への読み書きを識別す
る機能を設けることによりスタックのあぶれを検知でき
るスタックあふれ検出装置を提供することを目的とする
。
領域への読み書きとスタック領域への読み書きを識別す
る機能を設けることによりスタックのあぶれを検知でき
るスタックあふれ検出装置を提供することを目的とする
。
発明の構成
この発明のスタックあふれ検出装置はスタック領域の上
限を規定する上限レジスタと、スタック領域の下限を規
定する下限レジスタと、アドレス母線の値Aと上限レジ
スタのIfAuとを比較する上限比較器と、アドレス母
線の値Aと下限レジスタの値A2とを比較する下限比較
器と、スタック操作命令であることを検出する制御部を
備え、スタックあふれによるプログラムの異寓を検出す
ることのできるものである。
限を規定する上限レジスタと、スタック領域の下限を規
定する下限レジスタと、アドレス母線の値Aと上限レジ
スタのIfAuとを比較する上限比較器と、アドレス母
線の値Aと下限レジスタの値A2とを比較する下限比較
器と、スタック操作命令であることを検出する制御部を
備え、スタックあふれによるプログラムの異寓を検出す
ることのできるものである。
実施例の説明
第3図はこの発明の一実施例を示すグロック図である。
第3図において、1oは演算処理装置、11は主記憶装
置、12はアドレス母線、13はデータ母線、14は割
込要求線、15は割込み応答サイクル表示信号(割込サ
イクル信号)線、16は命令フェッチサイクル表示信号
(フェッチサイクル信号)線、17は演算処理装置動作
信号(クロック信号)線、20はスタック領域上限規定
レジスタ(上限レジスタ)、21はスタック領域下限規
定レジスタ(下限レジスタ)、22は上限比較器、23
は下限比較器、24は制御部、25はスタック操作検出
信号線、30はスタックあふれ検出信号線である。
置、12はアドレス母線、13はデータ母線、14は割
込要求線、15は割込み応答サイクル表示信号(割込サ
イクル信号)線、16は命令フェッチサイクル表示信号
(フェッチサイクル信号)線、17は演算処理装置動作
信号(クロック信号)線、20はスタック領域上限規定
レジスタ(上限レジスタ)、21はスタック領域下限規
定レジスタ(下限レジスタ)、22は上限比較器、23
は下限比較器、24は制御部、25はスタック操作検出
信号線、30はスタックあふれ検出信号線である。
以上のように構成された本実施例のスタックあふれ検出
装置について、以下その動作を説明する。
装置について、以下その動作を説明する。
演算処理袋[10は主記憶装置11から逐次命令を読み
込み、処理を実行する。このときスタック操作に関する
命令として、PUSH(スタックへのデータの退避)
、 POP (スタックからのデータの復旧) 、 C
ALL (副プログラムへの分岐とともに主プログラム
への戻り番地をスタックに退避)。
込み、処理を実行する。このときスタック操作に関する
命令として、PUSH(スタックへのデータの退避)
、 POP (スタックからのデータの復旧) 、 C
ALL (副プログラムへの分岐とともに主プログラム
への戻り番地をスタックに退避)。
RET (主プログラムへの戻り番地をスタックがら取
出して副プログラムから復帰)などがある。上限レジス
タ20.下限レジスタ21にはそれぞれ予め図示しない
手段で、スタック領域の上限値Au。
出して副プログラムから復帰)などがある。上限レジス
タ20.下限レジスタ21にはそれぞれ予め図示しない
手段で、スタック領域の上限値Au。
スタッタ領域の下限値Alが格納されている。
制御部24は、プエッチサイクル信号線16に1が出力
されているときにデータ母線13の値を読み込むことに
より演算処理装置10の読み込んだ命令を知シ、スタッ
ク操作命令CPUSH,POP、CALL。
されているときにデータ母線13の値を読み込むことに
より演算処理装置10の読み込んだ命令を知シ、スタッ
ク操作命令CPUSH,POP、CALL。
RETなど)かどうかを判定する。スタック操作命令で
あることを検出すると、命令によってその後の何マシン
サイクル目にスタックに対する読み書きが行われるかが
規定されているだめ、クロック信号線17より該当マシ
ンサイクルを検出しスタック操作検出信号線25に信号
1を出力する。また、スタック操作検出信号線25に1
が出力されているときは、アドレス母IfA12にはス
タック操作の対象となる番地値Aが出力されている。
あることを検出すると、命令によってその後の何マシン
サイクル目にスタックに対する読み書きが行われるかが
規定されているだめ、クロック信号線17より該当マシ
ンサイクルを検出しスタック操作検出信号線25に信号
1を出力する。また、スタック操作検出信号線25に1
が出力されているときは、アドレス母IfA12にはス
タック操作の対象となる番地値Aが出力されている。
上限比較器22は、スタック操作検出信号m25に信号
1が出力されているときに、アドレス母線12に出力さ
れている値Aと上限レジスタ2oの値〜とを比較し、A
’>Auであるとオーバーフロー信号lを出力する機能
を持つ。下限比較器23は、同様にアドレス母線12に
出方されている値Aと下限レジスタ21の値Atとを比
較し、A <Azであるとアンダー70−信号1を出力
する機能を持つ。
1が出力されているときに、アドレス母線12に出力さ
れている値Aと上限レジスタ2oの値〜とを比較し、A
’>Auであるとオーバーフロー信号lを出力する機能
を持つ。下限比較器23は、同様にアドレス母線12に
出方されている値Aと下限レジスタ21の値Atとを比
較し、A <Azであるとアンダー70−信号1を出力
する機能を持つ。
したがって、上述の機能によυ、スタック操作命令の対
象となる番地値AがA>AuまたはA <Azであるど
、オア・ゲート26によりスタックあふれ検出信Jij
−1i130に1が出力され、スタックあふれ全検出す
ることができる。
象となる番地値AがA>AuまたはA <Azであるど
、オア・ゲート26によりスタックあふれ検出信Jij
−1i130に1が出力され、スタックあふれ全検出す
ることができる。
また、演算処理装置10に対して割込要求が生じてデー
タをスタック領域に退避させるときも、制御部24が割
込サイクル信号紗15にょシスタックへのデータ退避動
作を検出し、演算処理装置10に規定されたタイミング
に従って、データ格納番地の値Aを上限レジスタ20の
値A□、下限レジスタ21の値Atと比較することによ
り同様にスタックあぶれを検出することができる。
タをスタック領域に退避させるときも、制御部24が割
込サイクル信号紗15にょシスタックへのデータ退避動
作を検出し、演算処理装置10に規定されたタイミング
に従って、データ格納番地の値Aを上限レジスタ20の
値A□、下限レジスタ21の値Atと比較することによ
り同様にスタックあぶれを検出することができる。
発明の効果
この発明のスタックあふれ検出IAfitによれば、ス
タックのあふれを検出することができるため、スタック
あふれに起因する異常処理の検出が容易になるという効
果がある。
タックのあふれを検出することができるため、スタック
あふれに起因する異常処理の検出が容易になるという効
果がある。
【図面の簡単な説明】
第1図、第2図は夫々主記憶装置の利用形態を示す模式
図、第3図はこの発明の実施例におけるスタックあふれ
検出装置のブロック図である。 3・・・スタック領域、10・・・演算処理装置、12
・・・アドレス母線、13・・・データ母線、14・・
・割込要求m、20・・・上限レジスタ、21・・・下
限レジスタ、22・・・上限比較器、23・・・下限比
較器、24・・・制御部、25・・・スタック操作検出
信号線、3゜・・・スタックあふれ検出信号線 第1図 第2図 第3図
図、第3図はこの発明の実施例におけるスタックあふれ
検出装置のブロック図である。 3・・・スタック領域、10・・・演算処理装置、12
・・・アドレス母線、13・・・データ母線、14・・
・割込要求m、20・・・上限レジスタ、21・・・下
限レジスタ、22・・・上限比較器、23・・・下限比
較器、24・・・制御部、25・・・スタック操作検出
信号線、3゜・・・スタックあふれ検出信号線 第1図 第2図 第3図
Claims (1)
- (1) スタック領域の上限を規定する上限レジスタと
、前記スタック領域の下限を規定する下限レジスタと、
演算処理装置が読み込む命令を解読して前記命令が前記
スタック領域へのデータの読み書き命令(スタック操作
命令)であることを検出する制御部と、前記制御部によ
って制御され前記演算処理装置が前記スタック操作命令
実行時にアドレス母線に出力する値Aと前記上限レジス
タの値Auとを比較してA>Auか否かを検出する上限
比較器と、前記制御部によって制御され前記アドレス母
線の[Aと前記下限レジスタの値Atとを比較しA<A
tか否かを検出する下限比較器とを備えたスタックあふ
れ検出装置。 (21前記制御部が、演算処理装置の割込み要求受付は
時に内部レジスタをスタック領域に退避格納する動作を
検出して前記上限比較器および下限比較器を制御する機
能を有するものである特許請求の範囲第(1)項記載の
スタックあふれ検出装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58166411A JPS6057439A (ja) | 1983-09-08 | 1983-09-08 | スタツクあふれ検出装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58166411A JPS6057439A (ja) | 1983-09-08 | 1983-09-08 | スタツクあふれ検出装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6057439A true JPS6057439A (ja) | 1985-04-03 |
Family
ID=15830920
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58166411A Pending JPS6057439A (ja) | 1983-09-08 | 1983-09-08 | スタツクあふれ検出装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6057439A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS622327A (ja) * | 1985-06-28 | 1987-01-08 | Fujitsu Ltd | スタツクオ−バ防止制御方式 |
| EP3330848A3 (en) * | 2016-12-01 | 2018-07-18 | Cisco Technology, Inc. | Detection of stack overflow in a multithreaded processor |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS573156A (en) * | 1980-06-04 | 1982-01-08 | Yokogawa Hokushin Electric Corp | Central processing device |
| JPS57200984A (en) * | 1981-06-03 | 1982-12-09 | Fujitsu Ltd | Information stack system |
| JPS5873099A (ja) * | 1981-10-23 | 1983-05-02 | Canon Inc | デ−タ処理装置 |
-
1983
- 1983-09-08 JP JP58166411A patent/JPS6057439A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS573156A (en) * | 1980-06-04 | 1982-01-08 | Yokogawa Hokushin Electric Corp | Central processing device |
| JPS57200984A (en) * | 1981-06-03 | 1982-12-09 | Fujitsu Ltd | Information stack system |
| JPS5873099A (ja) * | 1981-10-23 | 1983-05-02 | Canon Inc | デ−タ処理装置 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS622327A (ja) * | 1985-06-28 | 1987-01-08 | Fujitsu Ltd | スタツクオ−バ防止制御方式 |
| EP3330848A3 (en) * | 2016-12-01 | 2018-07-18 | Cisco Technology, Inc. | Detection of stack overflow in a multithreaded processor |
| US10649786B2 (en) | 2016-12-01 | 2020-05-12 | Cisco Technology, Inc. | Reduced stack usage in a multithreaded processor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR960011613A (ko) | 데이터 처리장치 | |
| RU2137182C1 (ru) | Выполнение инструкции обработки данных | |
| JPH07271403A (ja) | 非運用系メモリ更新方式 | |
| US5455925A (en) | Data processing device for maintaining coherency of data stored in main memory, external cache memory and internal cache memory | |
| EP1125199A1 (en) | Method of debugging a program thread | |
| US5287483A (en) | Prefetched operand storing system for an information processor | |
| JPS6057439A (ja) | スタツクあふれ検出装置 | |
| JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
| KR890003322B1 (ko) | 데이타처리 시스템 | |
| JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
| JPS59172044A (ja) | 命令制御方式 | |
| JP3762597B2 (ja) | 計算機とその制御方法 | |
| JPH059815B2 (ja) | ||
| JPS59112494A (ja) | メモリテスト方式 | |
| JPS6118045A (ja) | プログラムの暴走検出方式 | |
| JPH0258648B2 (ja) | ||
| JPS62115553A (ja) | バッファストレイジ無効化処理方式 | |
| JP2665173B2 (ja) | プロセッサトラップ回路 | |
| JP2993731B2 (ja) | ハードウェアトレース情報の制御方式 | |
| JPH0795288B2 (ja) | マイクロコンピュータ | |
| JPS62151936A (ja) | マイクロプロセツサに内蔵されるキヤツシユ回路 | |
| JPH03263226A (ja) | データ処理装置の制御方式 | |
| JPH0330022A (ja) | 情報処理装置 | |
| JPS6041383B2 (ja) | 共通バス監視方式 | |
| JPS6133548A (ja) | プログラム暴走検出方式 |