JPH03149626A - スタック管理方法 - Google Patents

スタック管理方法

Info

Publication number
JPH03149626A
JPH03149626A JP28950689A JP28950689A JPH03149626A JP H03149626 A JPH03149626 A JP H03149626A JP 28950689 A JP28950689 A JP 28950689A JP 28950689 A JP28950689 A JP 28950689A JP H03149626 A JPH03149626 A JP H03149626A
Authority
JP
Japan
Prior art keywords
stack
internal stack
area
internal
state
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
JP28950689A
Other languages
English (en)
Inventor
Jiro Minehisa
次郎 峰久
Yuji Kamiyama
神山 祐史
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP28950689A priority Critical patent/JPH03149626A/ja
Publication of JPH03149626A publication Critical patent/JPH03149626A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明ζ友 情報処理装置例えばマイクロコンピュータ
装置て データの受渡し例えば副プログラムで用いられ
る引き数や主プログラムへの戻り番地の格納に利用され
るスタックの管理方法に関するものであa 従来の技術 従来のスタック管理方法の一例(例えば 特公昭61−
49696号公報「スタック形成方法」)を第3図に示
も 第3図において、演算処理装置lは後述の外部退避領域
の空き領域の先頭を示す外部退避ポインタ2、内部スタ
ック3、該内部スタック3の空き領域を示す内部スタッ
クポインタ4とこれらを結合する内部バス6を内蔵し 
外部退避領域8を内蔵する記憶装置7と外部バス9を介
して結合されていも 以上のように構成されたスタック管理方法において外部
退避ポインタ2は外部退避領域8の空きの先頭位置を示
し 内部スタックポインタ4は内部スタック3の空きの
先頭位置を示し 演算処理装置1がスタックへの書き込
み・読み出し動作を41う場合、データを内部スタック
3に対して書き込み・読み出すとともに内部スタックポ
インタ4−を更新すも また 内部スタックが充満状態
時に演算処理装置lがスタックへ書き込む時は内部スタ
ック3の内容の一部を内部スタックポインタ4、外部退
避ポインタ2の値をもとに外部退避領域8へ転送した微
 内部スタック3に書き込むととも−に内部スタックポ
インタ4と外部退避ポインタ2〜 を更新すも また 
内部スタック3が空状態時にスタックから読み出す時は
外部退避領域8の内容の一部を外部退避ポインタ2、内
部スタックポインタ4の値をもとに内部スタック3へ転
送した後、内部スタック3から読み出すとともに 内部
スタックポインタ4と外部スタックポインタ2を更新す
a 発明が解決しようとする課題 しかしなが収 前記の−ような方法で(上 外部退避領
域8と内部スタック3間のデータ転送が行われている間
スタック処理が行われL 演算処理装置の動作が待たさ
れ 内部スタック処理の高速性が失われるという課題な
らびに外部バスもデータ転送により占有されてしまうと
いう課題を有していた 本発明はかかる点に鑑へ 内部スタック処理の高速性を
失わず、かつデータ転送の回数を低減し外部バスを占有
する時間を少なくさせ瓜 より柔軟なスタック管理方法
を提供することを目的とす課題を解決するための手段 本発明は前記課題を解決するため1 演算処理装置内に
ある内部スタックと記憶装置内にある外部退避領域とか
ら構成されるスタックを管理する際に前記記憶装置内に
外部退避領域 前記演算処理装置内に内部スタックおよ
び該内部スタックの読み出し・書き込み位置を示し周期
的に同じアドレスを示す内部スタックポインタ並びに前
記外部退避領域の空の先頭領域を示す外部退避ポインタ
さらに外部退避領域の最上位(最も新しい)の内容が内
部スタックのどの領域のデータなのかを示す外部退避領
域の退避状態表示手段と内部スタックのアドレスを格納
する内容の変更が可能なアドレス記憶手段とを有し 前
記演算処理装置が前記内部スタックへの書き込み・読み
出し動作を行う際に前記内部スタックポインタの示す位
置と前記退避状態表示手段からの情報により、前記内部
スタックの一定の領域にある内容を前記外部退避領域へ
データを内部スタックの動作とは独立に退避すへ また
は前記外部退避領域からデータを内部スタックの動作と
は独立に前記内部スタックの一定の領域へ転送する機能
並びに前記アドレス記憶手段の内容を変更することによ
りデータ転送の回数を低減する機能とを特徴に備えたス
タック管理方法であ翫 作   用 本発明は前記構成により、内部スタックと外部退避領域
とのデータ転送とが内部スタックへの読み出し・書き込
み動作とは独立に行な賎 しかもデータ転送のタイミン
グを変更すること℃ 演算処理装置と外部記憶装置との
データ転送の頻度を最小限にし 内部スタックに必要と
するデータを常に用意し スタック操作の処理時間を著
しく低減すa 実施例 fit図仕 本発明の一実施例を示す全体のブロック図
であ4 第1図において、 lは演算処理装置 2は後
述の外部退避領域の空き領域の先頭を示す外部退避ポイ
ンタ 3は内部スタッ久 4は内部スタック3の読み出
し・書き込み位置を示す内部スタックボイン久 5は後
述の外部退避領域への最後に退避した内部スタックの領
域を示す退避領域フラ久 6はこれらを結合する内部バ
入フは外部記憶装置  8は前記外部記憶装置装置7の
一部である外部退避領域 9は演算処理装置lと外部記
憶装置7とを結合する外部バ入 10から13は内部ス
タックのアドレスの値を格納する第1から第4までのア
ドレスレジスタであaこのブロック図において外部退避
ポインタ2は第3図で示した従来例と同様に内部スタッ
ク3からのデータを外部退避領域8へ退避した際および
復帰した際にそれぞれ対応するワード数分だけ更新し 
常に内部スタック3とのデータの分泌を取っていa 第2図は第1図の内部スタック3、内部スタックポイン
タ4を模式的に表現したものであa 内部スタックポイ
ンタ4が周期性を持っていることか収 内部スタック3
は第2図のように最初と最後のワードで結合した円環と
して、また内部スタックポインタ4は円環上の位置を示
す指針として表現できも 第2図において内部スタック
3への書き込みが行われば内部スタックポインタ4は左
回り(反時計回り)し 読み出しが行われば内部スタッ
クポインタ2は右回り(時計回り)LAs(−i+j+
k+l+m+n)ワード変化すると一周して同じアドレ
スを示t。a1からa4は内部スタック3と外部退避領
域8とのデータ転送を行うタイミングを決定する内部ス
タックのアドレスを示し それぞれ第1から第4のアド
レスレジスタ10〜13に格納されも 第2図では最初
のワードのアドレスを0番地とするとal=(i−l)
番地 a2−(i+j−1)番地 a3=(i+j+k
+1−1)番地 a4=(i+j+k+ 1 +m= 
1 )もしくは(s−n−l)番地とな、L  jJl
のアドレスレジスタ10と第3のアドレスレジスタ12
は外部退避領域からのデータ復帰動作の開始するアドレ
スの値を格納L 第2のアドレスレジスタ11と第4の
アドレスレジスタ13は外部退避領域へのデータ退避動
作の開始するアドレスの値をそれぞれ格納す也 また退
避領域フラグ5ζ上 内部スタック3で第2図の右領域
(i+j+k)ワードを退避すると” l°番へ 第2
・図の左領域(1+m+n)ワードを退避すると”0°
に設定され また内部スタック3へ退避したデータ(I
+j+k)ワードまたは(1+m+n)ワードが復帰す
るとフラグが反転す翫 以上のように構成された本実施例のスタック処理動作に
ついて、以下第2図を用いて説明すも内部スタックポイ
ンタ4が第1のアドレスレジスタlOに格納されている
値alと同じアドレスを示しているとき、内部スタック
からの読み出しが行われると、退避領域フラグ5が° 
l”ならば内部スタック3の右領域(1+m+n)ワー
ドへ外部退避領域から転送され 内部スタック3の右領
域に退避されていたデータが復帰されも このとき退避
領域フラグ5は” 0°に設定されも もし退避領域フ
ラグ5が初めから” 0°であったならば もう既にデ
ータの復帰が行われているものとして外部退避領域から
のデータの復帰は行わなく〜 同様に内部スタックポインタ4が第3のアドレスレジス
タ12に格納されている値a3と同じアドレスを示して
いるとき、内部スタックからの読み出しが行われると、
退避領域フラグ5が° 0゜ならば内部スタック3の右
領域(i+j+k)ワードへ外部退避領域から転送され
データ復帰が行わ札 退避領域フラグ5は” loに設
定されaもし退避領域フラグ5が初めから° l”であ
ったならば 右領域のデータの復帰が行われたものとし
て外部退避領域からのデータの復帰は行わな−一内部ス
タックポインタ4が第2のアドレスレジスタ11に格納
されている値a2と同じアドレスを示していると本 ス
タックへの書き込みが行われると、退避領域フラグ5が
” 0”ならば内部スタック3の右領域(1+m+n)
ワードが外部退避領域に退避さt′I、退避領域フラグ
5は° loに設定されも 従って新たに右領域が使用
可能の状態になa もし退避領域フラグ5が初めから”
 l”であったならば 内部スタック3の右領域が既に
退避され使用可能な状態であるので新たな退避動作は実
行しなし 同様に内部スタックポインタ4が第4のアドレスレジス
タ13に格納されている値a4と同じアドレスを示して
いるとき、内部スタックへの書き込みが行われると、退
避領域フラグ5が° loならば内部スタック3の第2
図の左領域(i+j+k)ワードが外部退避領域に退避
され 退避領域フラグ5は” 0”に設定され 左領域
が使用可能にな4 もし退避領域フラグ5が初めから′
 0゜であったならば 内部スタック3の右領域が既に
退避され使用可能な状態なので新たな退避動作は実行し
なL% これらのデータの退避・復帰動作は実際に内部スタック
3の使用可能領域がなくなってからまたは必要なデータ
が内部スタック3になくなってから行われるのではなく
、上記の例ではアドレスalの場合には(i−l)ワー
ドへ アドレスa2の場合には(k−l)ワード分、ア
ドレスa3の場合には(1−1)ワード分、アドレスa
4の場合には(n−1)ワード分の余裕が確保されてい
も 従って実際にスタック領域として使われるま でに
外部退避領域8への退避動作または外部退避領域8から
の復帰動作を完了する時間的余裕を持つことができ、 
i% k% l、  nを適度に決定することにより内
部スタック処理が待たされる可能性は極めて低下すム データ転送の回数を減少させるためにζよ 第1のアド
レスレジスタlOと第2のアートレスレジスタ11との
格納されている値の差および第3のアドレスレジスタ1
2と第4のアドレスレジスタ13とに格納されている値
の差が太き賎 すなわちワード数jおよびmが大きくな
ればよく〜 なぜならば内部スタックポインタ4が第2
図のjワード、mワードで示される領域に存在する場合
にはデータ転送が全く行われないからであも しかしj
およびmの値を大きくするため番ζ i% k、  l
、  nの各値を小さくするとデータ転送が行われたと
き&へ データ転送を終了させるだけの余裕が確保でき
なり内部スタックの高速性を生かせなくなも本実施例で
は第1から第4のアドレスレジスタlO〜13の値を変
更することによりこれらを調整することができa 第1
から第4のアドレスレジスタlO〜13の値を変更する
アルゴリズムとして例えば以下のものが考えられも 1、第1のアドレスレジスタlO および第3のアドレスレジスタ12の場合(1)内部ス
タックへのデータの復帰が行われた力丈 復帰データが
利用されずに内部アドレスポインタ4が第1または第3
のアドレスレジスタIO・12の値alまたはa3に再
びなったときく、talまたはa3の値を減少させへ 
すなわちワード数iまたは1を減少させも (2)内部スタックへのデータ復帰処理中に内部スタッ
クからの復帰データの読みだし要求が出され内部スタッ
ク処理が待た・   されたとき、第1または第3−の
アドレスレジスタ10・12の値alまたはa3を増加
させ4 すなわちワード数iまたは1を増加させも 2、第2のアドレスレジスタIO および第4のアドレスルジースタ12の場合(1)内部
スタックからのデータの退避が行われた′h<、退避し
たデータ領域が破壊されずに内部アドレスポインタ4が
第2または第4のアドレスレジスタ11・13の値a2
またはa4に再びなったときは a2またはa4の値を
増加させへ すなわちワード数kまたはnを減少させも (2)内部スタックへのデータ退避処理中に内部スタッ
クの退避領域への書き込みが要求がだされ内部スタック
処理が待たされたとき、第2または第・4のアドレスレ
ジスタ11−13の値a2またはa4を減少させ4 す
なわちワード数kまたはnを増加させ翫 上記のアルゴリズムに従うと内部スタック動作を待たせ
る回数とデータ転送の回数との両者のバランスのとれる
ような値が第1から第4のアドレスレジスタlO〜13
に設定されも 以上のように本実施例によれ(fS  これらの内部ス
タックと外部退避領域とのデータ転送を行う領域は常に
内部スタックポインタが示しているアドレスとは異なる
ので内部スタック動作は待たされることなく、読み出し
・書き込み動作を実行することができ、さらーにアドレ
スレジスタの値を変更することでデータ転送の回数を低
減することができへ な叙 本実施例ではスタックに書き込む時にはスタック
ポインタの値を増加し 読み出す時にはスタックポイン
タを減少するように示した力(これとは逆にスタックに
書き込む時にはスタックポインタの値を減少させ、読み
出すときにはスタックポインタの値を増加せる場合にお
いても同様であることは明かであa さ−らに内部スタ
ックの周期性・対称性を考處すること玄 実施例での述
べた4つのアドレスレジスタを2つに半減できることも
明らかであ4 発明の効果    − 以上説明したよう艮 本発明によれば内部スタックと外
部退避領域とを用いたスタック処理方法において、内部
スタック動作の速度を低下させることなく、高速のスタ
ック処理を実現することができ、その実用的効果は非常
に太きく〜
【図面の簡単な説明】
第1図は本発明のスタック管理方法一実施例を示す全体
ブロック医 第2図は同実施例の内部スタック・内部ス
タックポインタの動作説明@ 第3図は従来のスタック
形成方法を示すブロック図であも l・・・演算処理装置 2・・・外部退避ボイン久3・
・・内部スタッ久 4・・・内部スタックボイン久5・
・・退避領域フラグ、6・・・内部バ入〕・・・外部記
憶装置 8・・・外部退避領域9・・・外部バ入 10
・−・第、lのアドレスレジスタ11・・・第2のアド
レスレジスタ 12・・・第3のアドレスレジス久 13・・・第4のアドレスレジスタ。 代理人の氏名 弁理士 粟野重孝 はか1名h    
             Q。 鋺 第2図 θ魯尼  (j−/)香芝 と値域   右領j或

Claims (2)

    【特許請求の範囲】
  1. (1)演算処理装置、前記演算処理装置が実行すべきプ
    ログラムおよび取り扱うデータを格納する記憶装置それ
    らを結合する1または複数ビットの幅のバスからなる情
    報処理装置において、プログラム内でのデータの受渡し
    に先入後出のスタックメモリを管理するに当たり、前記
    記憶装置内に設定された外部退避領域と、前記演算処理
    装置内に内部スタックと前記内部スタックの読み出し・
    書き込み位置を示す内部スタックポインタと前記外部退
    避領域の空の先頭領域を示す外部退避ポインタと外部退
    避領域の最上位(最も新しい)の内容が内部スタックの
    どの領域のデータなのかを示す外部退避領域の退避状態
    表示手段と内部スタックのアドレス(位置)を記憶し内
    容の変更が可能な複数のアドレス記憶手段とを有し、前
    記演算処理装置が前記内部スタックへの書き込み・読み
    出し動作を行う際に前記内部スタックポインタの示す位
    置と前記退避状態表示手段からの情報により、前記内部
    スタックの一定の領域にある内容を前記外部退避領域へ
    データを退避する、または前記外部退避領域からデータ
    を前記内部スタックの一定の領域へ転送する機能を特徴
    とするスタック管理方法。
  2. (2)内部スタックが(i+j+k+l+m+n)ワー
    ド(ただしi、j、k、l、m、nは0以上の整数)で
    構成され、内部スタックポインタは、内部スタックの大
    きさsワード(ただしs=i+j+k+l+m+n)ご
    とに元の位置を示すという周期性を有し、内部スタック
    への書き込み・読み出し動作と内部スタック・外部退避
    領域間のデータ転送動作とが独立して動作し、内部スタ
    ックポインタが第1のアドレス記憶手段に格納されてい
    る値と同じ値を示しかつ退避状態が第1の状態の時に内
    部スタックへの書き込みが行われる際に内部スタックの
    第1の領域にある(l+m+n)ワードを外部退避領域
    に退避し退避状態を第2の状態に変化させ、内部スタッ
    クポインタが第2のアドレス記憶手段に格納されている
    値と同じ値を示しかつ退避状態が第2の状態の時に内部
    スタックへの書き込みが行われる際に内部スタックの第
    2の領域にある(l+j+k)ワードを外部退避領域に
    退避し退避状態を第1の状態に変化させ、内部スタック
    ポインタが第3のアドレス記憶手段に格納されている値
    と同じ値を示しかつ退避状態が第2の状態の時に内部ス
    タックからの読み出しが行われる際に内部スタックの第
    1の領域へ外部退避領域から(l+m+n)ワードのデ
    ータを転送し退避状態を第1の状態に変化させ、内部ス
    タックポインタが第4のアドレス記憶手段に格納されて
    いる値と同じ値を示しかつ退避状態が第1の状態の時に
    内部スタックからの読み出しが行われる際に内部スタッ
    クの第2の領域へ外部退避領域から(i+j+k)ワー
    ドのデータを転送し退避状態を第2の状態に変化させる
    ことを特徴とする請求項1記載のスタック管理方法。
JP28950689A 1989-11-07 1989-11-07 スタック管理方法 Pending JPH03149626A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28950689A JPH03149626A (ja) 1989-11-07 1989-11-07 スタック管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28950689A JPH03149626A (ja) 1989-11-07 1989-11-07 スタック管理方法

Publications (1)

Publication Number Publication Date
JPH03149626A true JPH03149626A (ja) 1991-06-26

Family

ID=17744151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28950689A Pending JPH03149626A (ja) 1989-11-07 1989-11-07 スタック管理方法

Country Status (1)

Country Link
JP (1) JPH03149626A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012234556A (ja) * 2005-10-20 2012-11-29 Qualcomm Inc スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012234556A (ja) * 2005-10-20 2012-11-29 Qualcomm Inc スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ

Similar Documents

Publication Publication Date Title
KR100848603B1 (ko) 데이터 처리장치와 복귀상태의 저장방법
JPH0760423B2 (ja) データ転送方式
JP2001216194A (ja) 演算処理装置
JPH03149626A (ja) スタック管理方法
US6434592B1 (en) Method for accessing a network using programmed I/O in a paged, multi-tasking computer
JPH0383134A (ja) スタック管理方法
JP2570753B2 (ja) データ転送制御装置
JPS6149696B2 (ja)
JP2734581B2 (ja) 入出力制御装置の制御方式
JPS6198469A (ja) マイクロプロセツサ間通信方式
JP2604604B2 (ja) スタック制御装置
JPH0816458A (ja) バッファアクセス制御回路
JPH0199141A (ja) 共用拡張記憶制御方法
JPS61260344A (ja) 入出力処理装置
JPS616746A (ja) 部分書込み制御方式
JPH04329446A (ja) 記憶装置
JPS6243737A (ja) 割り込み制御方式
JPS6215651A (ja) 情報処理システム
JPH0415843A (ja) キャッシュメモリ内蔵マイクロプロセッサ
JPH04333950A (ja) 情報処理システム
JPH01144129A (ja) 中央処理装置
JPS62108333A (ja) 半導体装置
JPH02123426A (ja) マイクロプロセッサ
JPS626329A (ja) デ−タ転送回路
JPH0359727A (ja) マイクロプロセッサにおける退避・復元方式