JPH0324695B2 - - Google Patents

Info

Publication number
JPH0324695B2
JPH0324695B2 JP57202945A JP20294582A JPH0324695B2 JP H0324695 B2 JPH0324695 B2 JP H0324695B2 JP 57202945 A JP57202945 A JP 57202945A JP 20294582 A JP20294582 A JP 20294582A JP H0324695 B2 JPH0324695 B2 JP H0324695B2
Authority
JP
Japan
Prior art keywords
stack
called
procedure
argument
parent
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.)
Expired - Lifetime
Application number
JP57202945A
Other languages
English (en)
Other versions
JPS5994147A (ja
Inventor
Toshikazu Kinoshita
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura 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 Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP57202945A priority Critical patent/JPS5994147A/ja
Publication of JPS5994147A publication Critical patent/JPS5994147A/ja
Publication of JPH0324695B2 publication Critical patent/JPH0324695B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

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)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は或る手続きが呼ばれる起動されるごと
に、そのための必要なAUTOMATIC(自動的)
属性の領域としてスタツクが次々とプツシユダウ
ンして生成されるシステムに好適するスタツク制
御方式に関する。
〔発明の技術的背景〕
ALGOLやPL/I言語で記述されたプログラ
ム群を実行時のように、単純変数、配列名、ラベ
ル変数等のデータ部のメモリ領域割付けが
STATIC(静的)ではなく、その手続きが呼ばれ
たときにスタツクが生成されてその中に割付けら
れるようなAUTOMATIC属性の概念がある。こ
の場合、通常その手続きが呼ばれて起動されるご
とに、そのための必要なAUTOMATIC属性の領
域としてスタツクが次々とプツシユダウンして生
成される。そして、呼ばれた側から呼んだ側へコ
ントロールが戻るごとにスタツクは順次ポツプア
ツプされる。今、上記呼ばれた側の手続きにより
生成されたスタツクをSYとすると、当該スタツ
クSYは現在活動中のカレントスタツクとなる。
このとき、呼んだ側の手続きにより生成されてい
るスタツクSXはカレントスタツクSYからみて親
スタツクとなる。この関係において手続き間での
アーギユメント(引き数)の受渡しは、通常、呼
んだ手続き側でスタツクSX内でのn(nは可変)
個のAUTOMATIC属性の実アドレスADR1,
ADR2,…ADRoを求めてそれらを順次第1図
に示される如く(主メモリ内の)アーギユメント
リストに格納する一方、呼ばれた手続き側では当
該アーギユメントリストに基づいて対応するパラ
メータを参照することによつて行なわれる。
〔背景技術の問題点〕
しかし、上述した実アドレスADR1,ADR
2,…ADRoを求めるためには、AUTOMATIC
属性のアーギユメントの対応するスタツクの先頭
アドレスからのオフセツトをロードレジスタ命令
により、いつたんレジスタにロードし、しかる後
当該レジスタの内容と上記先頭アドレスとにより
実アドレスADRiを求めてストア命令により主メ
モリ内のアーギユメントリスト(第1図参照)に
格納する処理をn個のアーギユメントについて繰
り返し行なわなければならない。またパラメータ
参照時には上記主メモリ内のアーギユメントリス
トをアクセスして実アドレスADRiを得なければ
ならない。すなわち、従来方式では、データ変数
のメモリを動的に管理するプログラムの実行環境
においてはメモリアクセス上のオーバヘツドが大
きく、再帰的(リカーシブル)に何度も呼ばれる
ような場合にはメモリ効率や処理効率が低下する
欠点があつた。
〔発明の目的〕
本発明は上記事情に鑑みてなされたものでその
目的は、AUTOMATIC変数のみからなるアーギ
ユメントの受渡し、およびそのパラメータの参照
時におけるメモリ効率および処理効率の向上が図
れるスタツク制御方式を提供することにある。
〔発明の概要〕
本発明は固定長のスタツクアーギユメントレジ
スタを設け、或る手続きの呼び出し時において呼
び出し側のスタツク(親スタツク)中のn個の
AUTOMATIC属性のアーギユメントの当該スタ
ツクの先頭アドレスからのオフセツト値を、これ
らn個のオフセツト値の中の最大オフセツト値を
表現可能なビツト長mにそれぞれ整合して連結し
て上記スタツクアーギユメントレジスタにロード
するようにしたものである。また本発明は、呼ば
れた手続き内でのパラメータ参照のために、対応
する親スタツクの先頭アドレスと上記スタツクア
ーギユメントレジスタのi(i=1〜n)番目の
オフセツト値とにより上記親スタツク中のi番目
のパラメータの実アドレスを得るようにしてい
る。
〔発明の実施例〕 以下、本発明の一実施例を図面を参照して説明
する。第2図は主メモリ(図示せず)内に置かれ
るスタツク領域20の構造並びに要部ハードウエ
アブロツクを示すものであり、カレントスタツク
がSYである状態である。このスタツクSYは或る
手続きが呼ばれて起動され、当該手続きにより生
成されるスタツクである。SXは上記或る手続き
を呼んだ側の手続きにより生成されたスタツクで
あり、カレントスタツクSYからみて親スタツク
となつている。HDX,HDYはそれぞれスタツク
SX,SYのスタツクヘツダである。スタツクヘツ
ダHDX,HDYはスタツクが順次生成されたり消
滅したりする際のコントロールに必要な情報部で
あり、手続き間のコントロールに必要な情報を有
している。この情報としては、親スタツクの先頭
アドレス、更には親スタツク用の後述するスタツ
クアーギユメントレジスタ情報などがある。Cは
カレントスタツクSYの先頭アドレスであり、ス
タツクポインタ(以下、SPと称する)21によ
つて示される。Sは親スタツクSXの先頭アドレ
スであり、スタツクSY内のスタツクヘツダHDY
の一部で示される。Riは親スタツクSX内で割付
けられたn個のAUTOMATIC属性のアーギユメ
ントのうちi(i=1、2、…n)番目のアーギ
ユメントの(スタツクSXの先頭アドレスSから
の)オフセツトである。
22はスタツクアーギユメントレジスタ(以
下、SARと称する)である。SAR22はLビツ
ト長のレジスタである。SAR22はmビツト長
のレジスタ221〜22oからなるレジスタ群とし
て使用される。ここで上記mはその手続き内での
スタツク中のAUTOMATIC属性をもつ変数が割
付けられているアーギユメントとして用いる最大
のオフセツト長を2進表現するのに必要な最小の
ビツト長(数)l以上の値である。本実施例では
SAR22を有効に使用するため上記mとしてl
を用いるようにしている。m、nは手続きの呼び
出しごとに変え得るものである。SAR22のレ
ジスタ221〜22oには対応する手続き内でのス
タツク中のn個のアーギユメントの各オフセツト
が格納されるようになつている。カレントスタツ
クがSYである第2図の状態では、SAR22には
親スタツクSX中のn個のアーギユメントの各オ
フセツトR1,R2,…Roが格納されている。
次に本発明の一実施例の動作を第3図および第
4図のフローチヤートを参照して説明する。今、
或る手続きにおいてスタツク領域20内にスタツ
クSXが生成されている状態で、当該手続きが別
の或る手続きを呼ぶものとする。この場合、スタ
ツクヘツダ作成ルーチンが起動される。このルー
チンにおいて、まずスタツクSYのスタツクヘツ
ダHDYが作成される(ステツプS1)。すなわち、
その時点のSP21の内容(スタツクSXの先頭ア
ドレスC)、SAR22の内容(スタツクSXの親
スタツク中の各アーギユメントの対応するオフセ
ツト)などがスタツクヘツダHDYに保存される。
このときSP21の内容はスタツクヘツダHDYの
位置(すなわちスタツクSYの先頭アドレス)を
示すように更新されている。
次に、(上記呼ぶ側の手続き内で生成された)
スタツクSX中のn個のアーギユメントの中で最
大オフセツトの構成ビツト長m(この例では最大
オフセツト長を2進表現するのに必要な最小のビ
ツト長)と、アーギユメントの個数nを抽出する
(ステツプS2)。次にm×nで示されるビツト長
がSAR22の構成ビツト長Lの範囲内であるか
否かの判定を行なう(ステツプS3)。このとき
NO判定であるば割込み出力となる。一方、YES
判定であればAUTOMATIC属性のn個のアーギ
ユメントの(スタツクSXの先頭アドレスSから
の)各オフセツトR1,R2,…Roは一定の長さm
ビツトに整合されて連結され、しかる後SAR2
2のレジスタ221〜22nに第2図に示されてい
るようにロードされる(ステツプS4)。このSAR
22の内容は呼ばれた手続き内では一定で、かつ
常にアドレツサブルである。なお、上記オフセツ
トR1,R2,…Roはその手続に対応させて主メモ
リ内の或る領域に格納されているものである。
このようにして、スタツクヘツダ作成ルーチン
により、スタツクヘツダHDYが作成され、スタ
ツクSXのn個のアーギユメントの各オフセツト
R1〜RoがSAR22に格納されると、或る手続き
が呼ばれる。この呼ばれた手続き内で、当該手続
きを呼んだ側のスタツクSX内で割付けられたi
番目のアーギユメント(パラメータ)を参照する
には、第4図のフローチヤートで示される手順が
必要となる。まず、カレントスタツクSY内のス
タツクヘツダHDYは保存されている親スタツク
SXの先頭アドレスSを取り出す処理が行なわれ
る(ステツプS11)。次にSAR22に格納されて
いるオフセツトR1〜Roのうちi番目のオフセツ
トRiを取り出す処理が行なわれる(ステツプ
S12)。各オフセツトR1〜Roは前述したようにそ
れぞれ一定のビツト長mに整合されたビツトパタ
ーン列の形でSAR22に格納されており(第2
図参照)、したがつてSAR22からi番目のオフ
セツトRiを取り出すこと(すなわちレジスタ22
の内容を取り出すこと)は容易に行なえる。次
にステツプS11、S12で得られた親スタツクSXの
先頭アドレスSと当該スタツクSXのi番目のア
ーギユメントのオフセツトRiとが加算され、当該
アーギユメントの実アドレスADRi(=S+Ri)が
求められる(ステツプS13)。そして、この実ア
ドレスADRiを用いて主メモリがアクセスされ、
親スタツクSX中のi番目のパラメータが参照さ
れる。なお、呼ばれた側のスタツクSYから呼ん
だ側のスタツクSXに戻るときには、SAR22の
内容をスタツクSYのスタツクヘツダHDYに保存
されていたスタツクSXの親スタツク中の各アー
ギユメントの対応するオフセツトに復元しておく
必要がある。
〔発明の効果〕
以上詳述したように本発明によれば次のような
種々の作用効果を得ることができる。
(1) 第1図に示されるアーギユメントリストを作
成、使用する従来方式に比べ、AUTOMATIC
変数のみからなるアーギユメントの受渡し、お
よびそのパラメータの参照時における主メモリ
アクセス回数が著しく減少されるので、メモリ
アクセス上のオーバヘツドが軽減され処理効率
が向上する。これは、アーギユメント数が多い
場合に特に顕著となる。
(2) パラメータ参照の対象となるスタツク内の各
アーギユメントのオフセツトを(SARに)格
納するようにしたので、上記各アーギユメント
の実アドレスを格納する従来方式に比べ、その
格納に必要な領域が少なくて済む。
(3) パラメータ参照の対象となるスタツク内のn
個のアーギユメントの各オフセツトを最大オフ
セツトの構成ビツト長mに整合してm×nビツ
トのビツトパターンの列の形でSARに格納す
るようにしているので、すなわち当該SARを
mビツトの可変長レジスタがn個含まれている
レジスタ群として柔軟に使用しているので、m
×n≦Lの範囲でSARの容量(L)を有効に
使用できる。これに対し、汎用レジスタなどを
使用する場合には、各レジスタのサイズを取り
扱いデータの最大ビツト長に合せておかなけれ
ばならず、レジスタサイズが大きくなるととも
にレジスタ数も多数必要となる。
【図面の簡単な説明】
第1図は従来用いられていたアーギユメントリ
ストの一例を示す図、第2図は本発明の一実施例
を示すブロツク図、第3図および第4図は上記実
施例の動作を説明するためのフローチヤートであ
る。 20……スタツク領域、22……スタツクアー
ギユメントレジスタ(SAR)、SX,SY……スタ
ツク。

Claims (1)

    【特許請求の範囲】
  1. 或る手続きが呼ばれて起動されるごとに、必要
    な自動的属性の領域としてスタツクが逐次プツシ
    ユダウンして生成されるシステムにおいて、上記
    或る手続きを呼んだ側の親スタツク中のn(nは
    可変)個の自動的属性のアーギユメントの当該親
    スタツクの先頭アドレスからのオフセツト値が保
    持される固定長のスタツクアーギユメントレジス
    タと、上記或る手続きの呼び出し時において上記
    n個のオフセツト値を最大オフセツト値の構成ビ
    ツト長mに整合して連結し上記スタツクアーギユ
    メントレジスタにロードする手段と、呼ばれた手
    続き内において上記親スタツクの先頭アドレスと
    上記スタツクアーギユメントレジスタのi(i=
    1〜n)番目のオフセツト値とにより上記親スタ
    ツク中のi番目のパラメータの実アドレスを得る
    手段とを具備し、この手段によつて得られる上記
    実アドレスを用いてパラメータ参照が行なわれる
    ことを特徴とするスタツク制御方式。
JP57202945A 1982-11-19 1982-11-19 スタツク制御方式 Granted JPS5994147A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57202945A JPS5994147A (ja) 1982-11-19 1982-11-19 スタツク制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57202945A JPS5994147A (ja) 1982-11-19 1982-11-19 スタツク制御方式

Publications (2)

Publication Number Publication Date
JPS5994147A JPS5994147A (ja) 1984-05-30
JPH0324695B2 true JPH0324695B2 (ja) 1991-04-03

Family

ID=16465760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57202945A Granted JPS5994147A (ja) 1982-11-19 1982-11-19 スタツク制御方式

Country Status (1)

Country Link
JP (1) JPS5994147A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2500804B2 (ja) * 1986-08-22 1996-05-29 三菱電機株式会社 計算機
JPS6362039A (ja) * 1986-09-03 1988-03-18 Mitsubishi Electric Corp 計算機
JPS6386034A (ja) * 1986-09-30 1988-04-16 Fujitsu Ltd プログラム呼び出し方式
JPH03206525A (ja) * 1990-01-09 1991-09-09 Seiko Instr Inc シングルチップマイコンのスタック方式

Also Published As

Publication number Publication date
JPS5994147A (ja) 1984-05-30

Similar Documents

Publication Publication Date Title
US6049802A (en) System and method for generating a linked list in a computer memory
US4991088A (en) Method for optimizing utilization of a cache memory
US20100185822A1 (en) Multi-reader multi-writer circular buffer memory
JPH113269A (ja) スタックの内容をサブスタックに分離することによる正確なガーベイジ・コレクションを補助するシステムと方法
US7020874B2 (en) Techniques for loading class files into virtual machines
EP0891586A1 (en) Flexible expansion of virtual memory addressing
US6996813B1 (en) Frameworks for loading and execution of object-based programs
JPH0324695B2 (ja)
WO2002037272A2 (en) Improved frameworks for invoking methods in virtual machines
US7036120B2 (en) Two tier clusters for representation of objects in Java programming environments
US5247695A (en) Vector processor with byte access of memory
CN112035380A (zh) 一种数据处理方法、装置、设备及可读存储介质
US20020199176A1 (en) Storing and retrieving of field descriptors in Java computing environments
US6772292B2 (en) Two area stack
US6668285B1 (en) Object oriented processing with dedicated pointer memories
JPH06214884A (ja) キャッシュを使用する繰り返し処理のシステムおよび方法
US8650575B2 (en) Process manager establishing super-process associated with designated memory to house data from incident processes
US7437711B2 (en) Communication among agile and context-bound objects
JPH06266619A (ja) ページ退避/復元装置
JP2507399B2 (ja) デ―タベ―ス装置
JPH0651980A (ja) 情報処理装置のスタックの配置方式
JPH07141189A (ja) オーバレイリンク方式
JPH03161835A (ja) プログラムの動的ローディング処理方式
JPH07129408A (ja) 言語処理プログラムの実行方式
JPS63177234A (ja) フアイルセ−ブ・ロ−ド方法