JPS5862884A - デ−タ処理システム - Google Patents

デ−タ処理システム

Info

Publication number
JPS5862884A
JPS5862884A JP56160539A JP16053981A JPS5862884A JP S5862884 A JPS5862884 A JP S5862884A JP 56160539 A JP56160539 A JP 56160539A JP 16053981 A JP16053981 A JP 16053981A JP S5862884 A JPS5862884 A JP S5862884A
Authority
JP
Japan
Prior art keywords
data
address
register
stack
data structure
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.)
Granted
Application number
JP56160539A
Other languages
English (en)
Other versions
JPS6232556B2 (ja
Inventor
Hiroshi Sato
廣 佐藤
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
Nippon Electric Co 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP56160539A priority Critical patent/JPS5862884A/ja
Publication of JPS5862884A publication Critical patent/JPS5862884A/ja
Publication of JPS6232556B2 publication Critical patent/JPS6232556B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 本発明はスタック構造を有するデータ処理システムに関
する。
従来技術におけるスタックの構造はソフトウェアにより
規定されるのが通常である。ノ・−ドウエア制御でスタ
ック内のデータがアクセスされる場合には、スタックに
最後に格納されたデータのアドレスを保持するスタック
ポインタに従いアクセスされる。
データがスタックに格納される場合には、最初にスタッ
クポインタがデータのサイズだけ減少され、この減少さ
れたアドレスに対して格納動作が行なわれる。また、デ
ータをスタックから取り出す場合にはスタックポインタ
で示されるアドレスからデータが取υ出され、このあと
取り出されたデータのサイズだけスタックポインタの値
が増加される。
このような構成においては、常にスタックポインタの値
を、ソフトウェア命令でチェックすることにより?タッ
クにデータを格納しすぎて、スタック領域以外の記憶領
域に該データがあふれ、その結果生ずる咳記憶領域の内
容の破壊を防止しなければならない。
また、プログラム論理のミスによ妙、既に空になってい
るスタックよ)データを取り田そうとし九ときKも警告
を発するために、ソフトウェアでチェックを行う必要が
ある。
本発明の目的はスタック領域をオーバフローしたデータ
が他の主記憶領域を破壊するのを未然に防ぎ、ソフトウ
ェア論理のミスの検出を追加のソフトウェア命令を使用
することなくノ・−ドウエアにより高速に実行できるよ
うKしたデータ処理システムを提供することにある。
本発明のシステムは、後入れ先出しのデータ構造の主記
憶内における記憶位置を保持するためのアドレス保持手
段と、 前記データ構造の現在までに使用された語数を保持する
ための少なくとも1つの記憶場所、前記データ構造の最
大容量を保持するための少なくとも1つの記憶場所およ
び前記データ構造を1つ以上のデータフレームに分割し
各データフレームの大きさを保持するよう各データフレ
ームごトニ少なくとも1つの記憶場所を有する記憶手段
と、前記アドレス保持手段の内容と前記データ構造内の
使用語数を保持する記憶場所の内容とにもとづいて一番
新らしく獲得されたデータフレームの先頭アドレスを計
算する丸めの計算手段と、前記データ構造を操作するマ
シン命令に応答して起動され誼マシン命令の操作コード
の内容にもとすいて前記データ構造内の使用され九語数
および一番新しいデータフレームの語数を更新する更新
手段と、 前記データ構造に対してデータを格納していくときに骸
データ構造内の現在までに使用され九語数とスタックの
最大容量とを比較し前者が格納動作によ如後者t−Sえ
たときにソフトウェアに現在実行中の命令の実行を中断
するよう割り出しを発生するための手段と、 前記データ構造によりデータを取り出す際に一番新しい
データフレームの語数と取り出そうとするデータの語数
とを比較し後者が大きいときに前記ソフトウェアに前記
割シ出しを発生するための手段とを含むことを特徴とす
る。
次に本発明について図面を参照して詳細に説明する。
第1WJt参照すると、本発明に用いられるスタック構
造は中央処理装置内に含まれスタックデー7構造07)
”レスを保持するアドレスレジスタ1゜該’7)/Vレ
スジスタ1にょシ指定され、現在までに使用されたスタ
ック内に記憶されたデータの語数すなわち5で示される
語数を記憶する主記憶の:r−vy& 骸エリア2より
1つだけアドレスの大きいロケーシ冒ンにスタック領域
の最大容量すなわち、6で示される語数に@iする語数
を保持するエリア3.前記アドレスレジスタ1の内容か
ら前記エリア2の内容を減じられ九アドレスに最後に獲
得され、たデータフレーム7に含まれる語数、すなわち
第1図の8に和尚する語数を保持するエリア4を有する
このスタックはファースト・イン・ラースト・アウトの
データIRシ出し動作を行なう。
スタックを操作する命令には、スタックの枠組みを変更
する命令と、通常の命令でスタック内のデ−タを操作す
る命令とに分けられる。
前者の命令には、ロード・T−レジスタLDT 。
ストアーT・レジスタSTT、アクワイヤ・スタック・
フレームACQ、レリンクィッシュeスタック・フレー
ムRLQ 、モディファイφフレーム・レンジMFLの
5命令が含まれる。ここでT・レジスタとはスタックに
格納された一番古いデータの場所を示すアドレスを格納
するレジスタである。
ロード・T・レジスタLDT命令は、ソフトウェアで操
作できるアドレスレジスタの一つを選択し、そのレジス
タの内容を第1図に示す中央処理装置内のアドレスレジ
スタlに口〜ドする命令である。
この命令により、主記憶中のスタック構造を、中央処理
装置内のレジスタに結びつける働きをする。
ストアーT・レジスタSTT命令は、逆に第1図に示ス
アドレスレジスタ1の内容讐決められたアドレスレジス
タに格納する。
′11 アクワイヤ・スタック拳フレームACQ命令は、スタッ
ク内に新しいデータフレームを作)出す命令である。こ
のデータフレームの大きさは命令によシ与えられる。ア
クワイヤ・スタック・フレームACQ命令実行によシス
タックの現在までの使用語数を示すエリア2の内容は作
られたデータフレームの大きさ+1だけ増加される。リ
リンクィッシ、RLQ命令の動作は、アクワイヤACQ
命令+2)動作とは逆の働きをする。この命令によりス
タック内の一番最後に作られたデータフレームの領域を
解放する。
毫ディ7アイeフレーム・レンジMFL命令は、xpル
ックの一番最後に作られたデータフレームの大きさを命
令で指定した大きさだけ増減する命令である。
次に、通常の命令でスタック内のデータを操作する場合
について説明する。
通常の命令とは、主記憶中のオペランドを、中央処理装
置のレジスタにとシ込んだり(ロード命令)、レジスタ
の内容を主記憶中に格納(ストア命令)した如する命令
である。
命令中でオペランドのアドレスを指定するフィールドが
、スタックに対する動作を示した場合、以下のような動
作となる。
命令がスタックにデータを格納する場合、中央処理装置
は、第1図に示すアドレスレジスタlの内容から、エリ
ア2に格納されているスタックで現在使用されている語
数を引きエリア4を示すアドレスを得る。このエリア4
を示すアドレスを1だけ増加することによシ、スタック
中の最新のデータのアドレス9t−作ることができる。
レジスタの内容をスタックに押し込む(P U S H
)するのには、まずアドレス9t−押し込もうとするデ
ータのサイズだけ減少する。これKよりデータを格納す
るためのエリアを確保する。次にエリア4に書き込まれ
ている最新のデータフレームのサイズを格納するオペラ
ンドのサイズだけ増加し、オペランドを書き込むアドレ
スt’−Iしたアドレスに格納する。さらに、エリア2
に書き込まれているスタックの現在までに使用された語
数をオペランドのサイズだけ増加し、エリア2の位置に
書き戻す。次に、エリア2に書き戻す内容とエリア3に
書き込まれているスタックの最大容量とを比較し、前者
が後者よりも大きいとき、割出しを発生する。この割出
しとは、あるプログラムのある命令が同じプログラムの
他の命令の実行を中断させ、諌ある命令の実行をさせる
ことをいう。
命令がスタックからデータを取り出す場合には、格納す
る場合と同様にして最新のデータのアドレス9を得る。
アドレス9からオペランドのサイズだけのデータを取シ
出す。このときエリア4に書き込まれている最新のデー
タフレームのサイズと、オペランドのサイズとを比較し
、後者が前者よりも大きければ、ソフトウェア論理のミ
スなので割り出しを発生する。
つぎにエリア4の内容から、取シ出したオペランドのサ
イズを減少し、この値をエリア4のアドレスにオペラン
ドのサイズを加えたロケーションに書愈込む。
さらにエリア2の内容をオペランドのサイズだけ減少す
る。
112図を参照すると、本発明の一実施例は主配憶装置
10.  中央処理装置12.  およびこれらの装置
を接続するバス11から構成されている。前記中央処理
装置12はバッファ13.レジスタ14.命令レジスタ
15.アドレスレジスタ16.前記命令レジスタ15の
命令を解読するデコーダ17.スタックデータ構造のア
ドレスを保持するTレジスタ19を有するレジスタファ
イル18.  レジスタ14またはレジスタファイル1
8からのデータを演算する数値論理演算ユニット20.
前記デコーダ17かラノ先頭アドレスに基づいてマイク
ロ命令を読み出すコントロールストア21.およびこの
コントロールストア21からのマイクロ命令を解読する
デコーダ22から構成されている。
次に本実施例の動作を第2図および第3図を参照しなが
ら詳細に説明する。ます主配憶装置2から命令を取り出
す。この丸めアドレスレジスタ16に主記憶装置2に記
憶されている命令のアドレスをセットする。
次にマイクロ命令の指示によシ゛読出し開始信号が与え
られる。主記憶装置2がら読み出され九命令は命令レジ
スタ15に格納される。レジスタ15に格納された命令
のアドレスが主記憶装置10のスタックエリア管示して
い表いときにはその命令が実行される。もし前記命令が
主記憶装置10のスタックエリアを示していないときに
はTレジスター9のアドレスがユニット20および線2
5を介してアドレスレジスター6に格納される。次にレ
ジメ、り16のアドレスがバス11を介して主記憶装置
10に与えられ、アドレスによって指定された主記憶装
置10の第1図のエリア2に相当する場所からカウント
ワードが読み出されバス11を介してレジスター4に格
納される。レジスター4に格納されたカウントワードは
バス23.ユニット20、および線18t−介してレジ
スタファイル18のワーキングレジスタWRIに格納さ
れる。次にアドレスレジスター6に格納されたアドレス
が+1され、+1されたアドレスがバス11を介して主
記憶装置10に供給される。このアドレスに応:1lj
1 答して主記憶装置1の第1図で示したエリア3からワー
ドMWが読み出され、バス11を介してレジスター4に
格納される。レジスター4に格納されたワードMWはバ
ス23.ユニット20.および線25t−介してレジス
タファイル18のワーキングレジスタWR2に格納され
る。次にレジスタファイル18のワーキングレジスタW
RIに格納され九カウントワードからTレジスタ19の
アドレスがユニット20で減算され減算結果は線25を
介してアドレスレジスタ16にセットされるとともにレ
ジスタファイル18のワーキングレジスタWR4に格納
される。
次ニアドレスレジスタ16にセットされたアドレスがバ
ス11を介して主記憶装置10に与えられ装置10のエ
リア4を指示する。この指示に応答してデータFLがバ
ス11を介してレジスタ14にセットされたあとバス2
3.ユニット20.925を介してレジスタファイル1
8のワーキングレジスタWR3にセットされる。
命令レジスタ15に格納された命令がレジスタの内容を
主記憶装置10のスタックに押し込む動作(PUSI(
)を指示しているときには、レジスタファイル18のワ
ーキングレジスタWR4の内容から、デコーダ17から
与えられる定数がユニット20で減算され、減算結果が
線25に一介してレジスタファイル18のワーキングレ
ジスタWROK書き込まれる。
次に書き込まれたレジスタWHOの内容から、前記デコ
ーダ17から与えられる定数1がユニット20 テ減算
され減算結果が925f介してアドレスレジスタ16に
格納される。次にレジスタファイル18のワーキングレ
ジスタWR3に前記デコ−/17から与えられるオペラ
ンドサイズがユニッ)20で加算され、加算結果が92
5f介してバッファ13に格納される。
次に前記ワーキングレジスタWRIのカウントワードC
Wに前記デコーダ17がらのオペランドサイズがエニツ
)20で加算され、この加算結果から前記ワーキングレ
ジスタWR2の内容がユニット20で減算されキャリー
信号がユニッ)20から出力するか否かが確かめられる
。もしキャリー信号が出力されていれば現在実行中のソ
フトウェア命令が中断され新たな命令が実行される。も
しキャリー信号が出力されていなければTレジスタ19
の内容をユニット20.および[25f:介してレジス
タ16に格納する。次にワーキングレジスタWRIの内
容に前記デコーダ17からのオペランドサイズがユニッ
ト20で加算され加算結果がバッファ13およびバス1
1を介して主記憶装置10に記憶される。
命令レジスタ15に格納され九命令がレジスタの内容を
主記憶装置10のスタックに押し込む動作(PUSH)
を指示していないときには、アドレスレジスタ16のア
ドレスが+1される。この+1されたアドレスによシ指
示された主記憶装置2の第1図で示されるエリア7から
オペランドが読み出され、バス11t−介してレジスタ
14にセットされる。このレジスタ14にセットされた
オペランドはバス23.ユニット20.および1II2
5を介してレジスタファイル18のワーキングレジスタ
WOに格納される。次にレジスタファイル18のワーキ
ングレジスタWR3の内容から、前記デコーダ17から
のオペランドサイズがユニット20で減算され、減算結
果が線25.バッファ13.およびバス1it−介して
主記憶装置10の第1図で示されるエリア4に格納され
る。
次にワーキングレジスタWR3の内容から、前記デコー
ダ17からのオペランドサイズがユニット20で減算さ
れ、ユニット20からキャリー信号が出力されるか否か
が確認される。もしキャリー信号が出力されていなけれ
ばソフトウェア命令が中断され新たな命令が実行される
。もしキャリー信号が出力されていればTレジスタ19
の内容がユニット20.および線25に介してレジスタ
16に設定される。次にワーキングレジスタ19から、
前記デコーダ17からのオペランドサイズがユニット2
0で減算され、減算結果が925.バッファ13、およ
びバスlit介して主記憶装置10の第1図で示される
エリア2に書き込まれる。
本発明にはスタック中のデータにアクセスする際に主記
憶のデータを容易に保護できるという効果がある。
【図面の簡単な説明】
第1図は本発明のスタック構造を示す図、IIEZ図は
本発明の一実施例を示す図および縞3図は第2図に示す
一実施例の動作を説明するための図である。 第1図から第3図において、l・・・・・・スタック構
造に対するポインタレジスタ、2・・・・・・スタック
の現在までの使用語数396000.スタック領域の最
大容量、4・・・・・・フレームの語数、5・・・・・
・2の大きさを示したもの、6・・・・・・3の大きさ
を示したもの、70.・61.データフレーム、8・・
・・・・4の大きさを示したもの、9・・・・・・スタ
ック中の最新のデータを指すポインタ、10・・・・・
・主記憶、11・・・・・・共通バス 12・・・・・
・中央m 13−−−−0.データノ(ファ、14・・
・・・・メモリデータレジスタ、15・・・・・・命令
レジスタ、16、・・・・・メモリアドレスレジスタ、
17・・・・・・命令f ’:x −タ、18・・・・
・・レジスタファイル、19・・・・・・スタックポイ
ンタ、20・・・・・・an論理演算ユニット、21・
・・・・・コントロールストア、22・・・・・・マイ
クロ命令デコーダ、23・・・・・・ALU人カパスA
、24・・・・・・ALU入力/<スB。 25・・・・・・ALU出力バス。 誉1 父

Claims (1)

  1. 【特許請求の範囲】 後入れ先出しのデータ構造の主記憶内における記憶位置
    を保持するためのアドレス保持手段と、前記データ構造
    の現在までに使用された語数を保持するための少なくと
    も1つの記憶場所、前記データ構造の最大容量を保持す
    るための少なくとも1つの記憶場所および前記データ構
    造?:1つ以上のデータフレームに分割し各データフレ
    ームの大きさを保持するよう各データフレームごとに少
    なくとも1つの記憶場所含有する記憶手段と、前記アド
    レス保持手段の内容と前記データ構造内の使用語数を保
    持する記憶場所の内容とにもとすいて一番新らしく獲得
    されたデータフレームの先頭アドレスを計算するための
    計算手段と、前記データ構造を操作するマシン命令に応
    答して起動され腋マシン命令の操作コードの内容にもと
    すいて前記データ構造内の・使用された語数および一番
    新らしいデータフレームの語数を更新する更新手段と、 前記データ構造に対してデータを格納していくときに#
    データ構造内の現在までに使用された語数とスタックの
    最大容量とを比較し前者が格納動作によシ後者金越えた
    ときにソフトウェアに現在実行中の命令の実行を中断す
    るよう割り出しを発生するための手段と、 前記データ構造よりデータを取り出す際に一番新らしい
    データフレームの語数と取り田そうとするデータの語数
    とを比較し後者が大きいときに前記ソフトウェアに前記
    割り出しを発生するための手段とを含むことt%徴とす
    るデータ処理システム。
JP56160539A 1981-10-08 1981-10-08 デ−タ処理システム Granted JPS5862884A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56160539A JPS5862884A (ja) 1981-10-08 1981-10-08 デ−タ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56160539A JPS5862884A (ja) 1981-10-08 1981-10-08 デ−タ処理システム

Publications (2)

Publication Number Publication Date
JPS5862884A true JPS5862884A (ja) 1983-04-14
JPS6232556B2 JPS6232556B2 (ja) 1987-07-15

Family

ID=15717161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56160539A Granted JPS5862884A (ja) 1981-10-08 1981-10-08 デ−タ処理システム

Country Status (1)

Country Link
JP (1) JPS5862884A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5068438A (ja) * 1973-10-18 1975-06-07
JPS5443630A (en) * 1977-09-14 1979-04-06 Hitachi Ltd Memory access control system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5068438A (ja) * 1973-10-18 1975-06-07
JPS5443630A (en) * 1977-09-14 1979-04-06 Hitachi Ltd Memory access control system

Also Published As

Publication number Publication date
JPS6232556B2 (ja) 1987-07-15

Similar Documents

Publication Publication Date Title
US4794524A (en) Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
EP0213843A2 (en) Digital processor control
US20070136565A1 (en) Stack underflow debug with sticky base
US6038631A (en) Data processing system and method using virtual storage system
JPH1196002A (ja) データ処理装置
JPS5862884A (ja) デ−タ処理システム
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2009230479A (ja) マイクロプロセッサ
JP2000029690A (ja) デ―タ処理の方法および装置
JP3490191B2 (ja) 計算機
KR20080044652A (ko) Cpu에서의 스택을 이용한 디버깅 방법
JP2540959B2 (ja) 情報処理装置
JPH0585925B2 (ja)
JP2870405B2 (ja) 情報処理装置
JPS59218569A (ja) マイクロ・コンピユ−タ
JPS59172044A (ja) 命令制御方式
JPS60193046A (ja) 命令例外検出方式
JPS58182766A (ja) プログラムトレ−ス装置
JPH0484224A (ja) スタックエリア保護回路
JPH03282625A (ja) データ処理装置
JPH0720769Y2 (ja) プログラム機能を備えた小型電子式計算機
JPS6020769B2 (ja) マイクロプログラム制御方式
JPS62151936A (ja) マイクロプロセツサに内蔵されるキヤツシユ回路
JPH06139084A (ja) 情報処理装置
JPS62264345A (ja) ベクトル・プロセツサにおけるアドレス変換例外時の処理方式