JPS62212733A - スタツク領域オ−バフロ−検出機構 - Google Patents

スタツク領域オ−バフロ−検出機構

Info

Publication number
JPS62212733A
JPS62212733A JP61054749A JP5474986A JPS62212733A JP S62212733 A JPS62212733 A JP S62212733A JP 61054749 A JP61054749 A JP 61054749A JP 5474986 A JP5474986 A JP 5474986A JP S62212733 A JPS62212733 A JP S62212733A
Authority
JP
Japan
Prior art keywords
area
stack
program
address
overflow
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
JP61054749A
Other languages
English (en)
Inventor
Tokuyuki Iwai
岩井 徳幸
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61054749A priority Critical patent/JPS62212733A/ja
Publication of JPS62212733A publication Critical patent/JPS62212733A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は単一メモリ空間に、プログラム、データ、スタ
ックの各領域が共存する電子計算機システムにおける特
にスタック領域のオーバフロー検出に好適な領域オーバ
フローの検出機構に関する。
〔発明の背景〕
一般にプログラム実行中に例外処理やサブルーチンコー
ルが発生した場合、あらかじめ設定されたスタックポイ
ンタの内容(実存するメモリのアドレス)をデクリメン
トして必要情報を退避する。
この事は、”68000マイクロコンピュータ;マイク
ロコンピュータシリーズ14.丸善”の8.3節「例外
処理」の中で、処理シーケンスの図8.6゜8.10,
8.12の中でスタックポインタを自動的にデクリメン
トする事が示されている。これはスタック領域がメモリ
高位アドレスから下位アドレス方向に向は拡張される事
を示している。単一メモリ空間システムに於て、下位ア
ドレスからプログラム、データを割付け、高位アドレス
からスタックを割付けた場合、スタック領域が境界を越
えてアクセス(スタックオーバフロー)した事を検出す
る手段がなければプログラム/データ領域を破壊する危
険性がある事は明らかである。
一方、このスタックのオーバフローの防止方法としては
サブルーチンコールが行われた場合にサブルーチンの先
頭で当該サブルーチンでのスタックエリア容量を計算し
、それがスタック上限を越えない事をチェックする等の
ソフトウェアによる方法が取られていた。
〔発明の目的〕
本発明の目的は、スタック領域のオーバフローによって
プログラムが暴走することを防止するためのオーバフロ
ー検出機構を提供することにある。
〔発明の概要〕
本発明は、単一メモリ空間にプログラム、データ、スタ
ックの各領域が共存するシステムに於ては、プログラム
およびデータ領域とスタック領域がメモリ空間の最高位
アドレス或は最下位アドレスを基底アドレスとして領域
が配置され、スタック領域は最下位或は最上位アドレス
の両端の一方から他方に向は連続的に成長することに着
目し、プログラムおよびデータ領域をスタック領域の境
界を設け、この境界を越えてスタック領域がとられよう
とした事を検出し、CP tJに通知する事でプログラ
ムの暴走を未然に防ぐ事を可能とする。
〔発明の実施例〕
以下1本発明の一実施例を図により説明する。
第1図は、本発明のスタックオーバフロー検出機構をC
PU内に備えたシステムの構成図である。
第2図はシステム構成に於けるメモリ12のメモリ配置
図を示したものである。本システ11に於いては、CP
tJilはメモリ12に於けるデータ領域22中のデー
タを参照しながらプログラム領域21中のプログラムを
解析実行する。この時必要に応じスタック領域23をメ
モリ空間中に上位アドレス25から下位アドレス24に
向は拡張させる。プログラム実行中、オーバフロー検出
機端はメモリ空間中のアクセス境界を越えてスタック領
域23を拡張したか否かを、あらかじめ登録されている
メモリ境界アドレス26とスタックアクセス時のアドレ
スを比較し、オーバフローが発生した場合検出信号をC
PUIIの制御部へ通知する。
=しによりCPUI 1は境界オーバフローを検出する
事が可能となる。
次にオーバフロー検出機構13について第3図のオーバ
フロー検出機構のブロック図をもとに説明する。オーバ
フロー検出機構13は2つの実行モードより動作する。
一方はプログラムによりアクセス境界レジスタ31にス
タック領域の境界アドレス26を設定または参照するモ
ード(1)であり、他方はアクセス境界レジスタ31と
スタックアクセスアドレスレジスタ33をアドレス比較
回路34を介して比較し、オーバフローを検出するモー
ド(2)である。以下、(1)、(2)の動作を説明す
る。
(1)境界アドレス設定・参照モード プログラムによりアクセス境界レジスタ31がアクセス
されるとアクセス境界レジスタ選択回路32はアクセス
境界レジスタとデータバスとを接続し境界アドレスのデ
ータを入出力可能とする。
これにより、アクセス境界レジスタ26を設定または、
参照できる。アクセス境界レジスタにデータが設定され
るまでは、ゲート40を閉じ比較タイミング発生用の2
進カウンタ38を停止状態にすることで比較動作を抑止
する。
(2)オーバフロー検出モード スタックポインタアクセス信号によりスタックアクセス
アドレスレジスタ33にアクセスアドレス331がラッ
チされる。比較回路34は、アクセス境界レジスタ31
1と当該アクセスのアドレス331を比較し、比較結果
が次の場合にスタックオーバフロー発生信号を出力する
メモリ境界アドレスレジスタ値(311)スタックアク
セスアドレス(331) 当該CPUIIはこの信号を検出しスタックのオーバー
フローを知る。ゲート35は、スタックアクセス以外の
時にスタックオーバーフロー検出信号が出力される事を
抑止するためのものである。
〔発明の効果〕
本発明によれば、スタックエリのオーバフローにより引
き起こされるプロゲラ11暴走にから、データが破壊さ
れる事を防止でき、信頼性が要求されるシステムに於て
は簡更に高信頼化が図れる効果がある。
また、本オーバフロー検出機fIWはスタックポインタ
アクセス信号をCPUの外に通知できるCPUであれば
、外付は回路としてオーバフロー検出機構を実現できる
【図面の簡単な説明】
第1図は本発明のオーバフロー検出機構付きのシステム
のシステム構成図、第2図はメモリ配置t図、第3図は
、オーバフロー検出機構のブロック図である。 13・・・オーバフロー検出機構、26・・・メモリ境
界アドレス、31・・・メモリ境界アドレスレジスタ。 34・・・アドレス比較回路、36・・・スタックポイ
ン第1図

Claims (1)

    【特許請求の範囲】
  1. 1、単一メモリ空間に、プログラム、データ、スタック
    用の各領域が共存するシステムに於いて、データ領域お
    よびプログラム領域をスタック領域としてアクセスさせ
    ないためにスタック領域の拡大・縮少を検出するための
    信号とスタック領域の境界アドレスとの比較を行う事で
    オーバフローの検出をおこなうことを特徴とするスタッ
    ク領域オーバフロー検出機構。
JP61054749A 1986-03-14 1986-03-14 スタツク領域オ−バフロ−検出機構 Pending JPS62212733A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61054749A JPS62212733A (ja) 1986-03-14 1986-03-14 スタツク領域オ−バフロ−検出機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61054749A JPS62212733A (ja) 1986-03-14 1986-03-14 スタツク領域オ−バフロ−検出機構

Publications (1)

Publication Number Publication Date
JPS62212733A true JPS62212733A (ja) 1987-09-18

Family

ID=12979415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61054749A Pending JPS62212733A (ja) 1986-03-14 1986-03-14 スタツク領域オ−バフロ−検出機構

Country Status (1)

Country Link
JP (1) JPS62212733A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03208132A (ja) * 1990-01-09 1991-09-11 Mitsubishi Electric Corp シングルチツプマイクロコンピユータ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03208132A (ja) * 1990-01-09 1991-09-11 Mitsubishi Electric Corp シングルチツプマイクロコンピユータ

Similar Documents

Publication Publication Date Title
JPS6237419B2 (ja)
JPH02156357A (ja) プログラム破壊防止方法
JPS62212733A (ja) スタツク領域オ−バフロ−検出機構
JPH05257815A (ja) 中央処理装置
JPS63250753A (ja) メモリアクセスチエツク方式
JPS6158054A (ja) プログラムの暴走検出方式
JPS63156261A (ja) メモリアクセス条件の判定方式
JPH05225361A (ja) レジスタ書換え方式
JPH0258648B2 (ja)
JPH06139084A (ja) 情報処理装置
JPS5913060B2 (ja) 主記憶装置の記憶容量検出方式
JPH0480860A (ja) プログラムロード方式
JPH02278446A (ja) メモリアクセス制御回路
JPH01251240A (ja) 暴走検出方式
JPS6243740A (ja) マイクロプロセツサ装置の暴走対策回路
JPH05274223A (ja) キャッシュメモリ
JPS6226738B2 (ja)
JPH08153018A (ja) 半導体システム
JPH0223436A (ja) ダンプ起動方式
JPS63255751A (ja) メインメモリ容量自動検出装置
JPH028945A (ja) 情報処理装置
JPH06236300A (ja) マイクロコンピュータ
JPS59191662A (ja) プログラム暴走検出方式
JPS60198648A (ja) 命令コ−ドフエツチアドレス検証装置
JPH04128961A (ja) マルチプロセッサ制御方式