JPS6236576B2 - - Google Patents

Info

Publication number
JPS6236576B2
JPS6236576B2 JP55182249A JP18224980A JPS6236576B2 JP S6236576 B2 JPS6236576 B2 JP S6236576B2 JP 55182249 A JP55182249 A JP 55182249A JP 18224980 A JP18224980 A JP 18224980A JP S6236576 B2 JPS6236576 B2 JP S6236576B2
Authority
JP
Japan
Prior art keywords
register
program
specifier
saved
registers
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
Application number
JP55182249A
Other languages
English (en)
Other versions
JPS57105045A (en
Inventor
Yutaka Katsumata
Tetsuo Yamaguchi
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP55182249A priority Critical patent/JPS57105045A/ja
Publication of JPS57105045A publication Critical patent/JPS57105045A/ja
Publication of JPS6236576B2 publication Critical patent/JPS6236576B2/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

【発明の詳細な説明】 本発明はプログラム呼出し制御方式、特にサブ
ルーチンまたは外部プログラムを呼び出す呼出し
命令(CALL命令)を有するシステムにおけるレ
ジスタの退避を無駄なく必要なレジスタに限つて
行うようにしたプログラム呼出し制御方式に関す
るものである。
電子計算機システムにおけるプログラムの実行
処理においては、プログラムは問題の一部を処理
または計算するためのそれ自身でまとまつた命令
の系列であるサブルーチンまたは外部プログラム
等を呼び出して処理することがよく行われる。呼
び出されたプログラムであるサブルーチン等は、
また他のサブルーチン等を呼び出すこともある。
呼び出されたサブルーチン等は要求された処理を
行い呼び出し元のプログラムに復帰する。サブル
ーチン等の呼び出しのために例えば呼出し命令が
準備され用いられるが、レジスタの退避・復元が
問題となる。プログラムがレジスタにある値を設
定して処理し、サブルーチンを呼び出して該サブ
ルーチンから制御が戻つた後に、サブルーチン呼
び出し前のレジスタの値を参照するような場合、
該レジスタの値がサブルーチンの呼び出しによつ
て破壊されないことを保証しなければならないか
らである。
従来、上記のレジスタの内容を保証する手段と
して、全レジスタ退避の方式と選択的レジスタ退
避の方式とが用いられている。全レジスタ退避の
方式は、レジスタに設定された値がサブルーチン
を呼び出した後に必要とされるか否かに係わりな
く、すべてのレジスタを退避し、サブルーチンに
おける処理が終了した時点ですべてのレジスタを
復元する方式である。この方式によれば、必ずし
も退避の必要がないレジスタをも無条件に退避す
るためオーバヘツドが増大する。また、レジスタ
の退避は通常被呼出しプログラム中で行われるの
で、被呼出しプログラムを複雑化させ、必要とす
るメモリ容量を増大させ、また処理速度の低下を
招く等の欠点がある。
選択的レジスタ退避の方式は、上記の欠点を改
善する方式で、例えば次のような方式が公知であ
る。被呼出しプログラムの入口点にレジスタ指定
子設定域を設け、この被呼出しプログラムが使用
するレジスタを指示するレジスタ指定子を予め設
定しておく。呼出しプログラムが呼出し命令を発
行すると、上記被呼出しプログラムの入口点にあ
る設定域が参照され、レジスタ指定子が指示する
レジスタだけを選択的に退避する。この方式によ
れば、上記の全レジスタ退避の方式に比べて、被
呼出しプログラムが使用しないレジスタの退避が
省略され、その分だけ処理が改善される。
しかしながら、この選択的レジスタ退避の方式
では、呼出しプログラムでのレジスタの使用状況
に無関係に、被呼出しプログラムが使用するレジ
スタをすべて無条件に退避するため、被呼出しプ
ログラムから制御が返された後まで値を保証する
必要のないレジスタに対しても退避・復元操作を
行うのが欠点である。被呼出しプログラムが使用
するレジスタであつても、後に呼出しプログラム
が有効データを保持するものとして扱わないレジ
スタは退避する必要はない。
本発明は上記問題点を解決し、プログラム呼出
し時のオーバヘツドをさらに減少させ、処理の高
速化を図ることを目的としている。そのため本発
明のプログラム呼出し制御方式は、命令をフエツ
チして実行する電子計算機におけるサブルーチン
または外部プログラムを呼び出す呼出し命令を有
するシステムにおいて、上記呼出し命令の発動に
際して該呼出し命令により明示的にまたは暗示的
に指定されるレジスタに、退避すべきレジスタを
指定する第1のレジスタ指定子を収容せしめ、か
つ被呼出しプログラムの入口点に設けられた設定
域に、退避すべきレジスタを指定する第2のレジ
スタ指定子を予め設定せしめて、上記呼出し命令
の実行処理において上記第1のレジスタ指定子お
よび上記第2のレジスタ指定子の双方によつて指
定されるレジスタのみを所定の領域に退避するこ
とを特徴としている。以下図面を参照しつつ説明
する。
第1図は本発明の一実施例構成を示す。また、
第2図はレジスタ指定子の一例を示す。図中、1
は中央処理装置、2はメモリ、3は汎用レジス
タ、4は内部レジスタであるAレジスタ、5は内
部レジスタであるBレジスタ、6は論理演算回
路、7はメモリデータレジスタ、8は呼出しプロ
グラム、9は第1のレジスタ指定子を所定のレジ
スタに設定する命令、10は呼出し命令、11は
入口名が「PGMX」である被呼出しプログラム、
12は第2レジスタ指定子の設定域、13はレジ
スタ退避域、14は第1レジスタ指定子、15は
第2レジスタ指定子、16はレジスタ退避時にお
けるAレジスタの内容、17はプログラムのマシ
ン命令コードをそれぞれ表わす。
第1図に示す実施例においては、システムは32
ビツトの退避・復元の対象となる汎用レジスタ3
を16個持つものとする。退避・復元の対象となる
レジスタが16個以外の例えば8個または32個等の
場合も制御は同様である。第1レジスタ指定子1
4は、呼出しプログラム8から見て退避すべきレ
ジスタを指定するデータであり、プログラム中の
呼出し命令対応に1個づつメモリ2上に存在させ
る。第1レジスタ指定子14は16ビツト長のサイ
ズを持ち、各ビツトは各汎用レジスタ3と対応し
て、退避の必要性の有無を、それぞれビツト他
“1”,“0”で示す。退避の必要性の有無は次の
ように定める。
(1) 第1レジスタ指定子14において、ビツト値
“1”(退避必要)とするレジスタ。
当該呼出し命令10に対応する被呼出しプ
ログラム11から制御が返された後で、値を
設定するより前に値を参照するレジスタ。
呼出しプログラム8で使用しないレジス
タ。なお「使用」とは値の「参照」または
「設定」を意味する。以下同様である。
(2) 第1レジスタ指定子14において、ビツト値
“0”(退避不要)とするレジスタ。
該呼出しプログラム8で使用するが、当該
呼出し命令10に対応する被呼出しプログラ
ム11から制御を返された後で使用しないレ
ジスタ。
該呼出しプログラム8で使用するが、当該
呼出し命令10に対応する被呼出しプログラ
ム11から制御を返された後で、値を参照す
るより前に値を設定するレジスタ。
上記の第1レジスタ指定子14は、呼出し命令
10の実行に先立ち、例えば設定命令9によつて
第2図A図示の如く所定の汎用レジスタ3、例え
ばレジスタ「R0」の下位部分にセツトされる。
セツトの対象となる汎用レジスタ3は、例えば呼
出し命令10のオペランドで明示的に指定される
ようにしてもよい。
一方、第2レジスタ指定子15は、被呼出しプ
ログラム11から見て退避すべきレジスタを指定
するデータであり、被呼出しプログラム11の入
口点ごとに1個づつ、入口点の先頭に設けられた
第2レジスタ指定子設定域12に設定される。第
2レジスタ指定子15も16ビツト長のサイズを持
ち、各ビツトは各汎用レジスタ3と対応して退避
の必要性の有無を、それぞれビツト値“1”,
“0”で示す。退避の必要性の有無は次のように
定める。
(1) 第2レジスタ指定子15において、ビツト値
“1”(退避必要)とするレジスタ。
当該被呼出しプログラムで使用するレジス
タ。
(2) 第2レジスタ指定子15において、ビツト値
“0”(退避不要)とするレジスタ。
当該被呼出しプログラムで使用しないレジス
タ。
呼出し命令10の実行においては、第2レジス
タ指定子設定域12にある第2レジスタ指定子1
5を中央処理装置1の内部レジスタであるBレジ
スタ5の下位へ読み込む。
第1図において呼出しプログラム8は上記の条
件によつて定められる第1レジスタ指定子14を
レジスタ「R0」に設定する。第2図A図示の第
1レジスタ指定子14は、16個ある汎用レジスタ
3のうちレジスタ「R1」,「R5」,「R6」,「R8」,
「R9」,「R13」,「R15」が退避すべき対象となつ
ていることを示している。第2図B図示の第2レ
ジスタ指定子15は、被呼出しプログラム11で
退避の対象となる汎用レジスタ3がレジスタ
「R1」,「R6」ないし「R10」,「R12」,「R13」,
「R15」であることを示している。上記の環境に
おいて呼出し命令10が発動されると、レジスタ
「R0」に格納されている第1レジスタ指定子14
はAレジスタ4に移され、第2レジスタ指定子1
5はBレジスタ5に移される。次に論理演算回路
6によつて、Aレジスタ4とBレジスタ5との内
容の論理積演算がなされ、結果がAレジスタ4に
格納される。この結果が第2図Cに示されている
Aレジスタ4の内容16であり、真に退避すべき
汎用レジスタ3を示している。即ち、実際に退避
される汎用レジスタ3は、第1レジスタ指定子1
4と第2レジスタ指定子15との双方で指定され
たレジスタ「R1」,「R6」,「R8」,「R9」,
「R13」,「R15」であり、これらはメモリデータレ
ジスタ7を経由して所定のレジスタ退避域13に
退避される。併せてAレジスタ4の下位16ビツト
も退避される。このAレジスタ4の情報は、レジ
スタ復元時に復元すべきレジスタの情報として使
用される。その後、被呼出しプログラム11の第
2レジスタ指定子設定域12に後続する命令の実
行に移る。
なお、第1レジスタ指定子14において、呼出
しプログラム8が使用しないレジスタについても
ビツト値“1”として退避必要と表示するのは、
プログラム呼出しのネステイング時の問題を巧み
に解決するためである。例えば、プログラム
「X」プログラム「Y」を呼び出し、プログラム
「Y」が他のプログラム「Z」を呼び出すような
場合、プログラム「X」が設定・参照するレジス
タは、プログラム「Y」が使用していなくても、
プログラム「Z」が使用するならば退避・復元さ
れなければならない。このような場合には、上記
レジスタはプログラム「Y」がプログラム「Z」
を呼び出すときに退避される。もしプログラム
「Z」でも使用されないならば退避されることは
ない。
以上により、退避されるレジスタ数は、被呼出
しプログラムの入口点のレジスタ指定子で指定さ
れるレジスタ数を上回ることはなく、従来の選択
的レジスタ退避の方式よりも更にレジスタの退
避・復元が削減される。なお、第1または第2の
レジスタ指定子によつて指定する退避すべきレジ
スタの選択は、例えばコンパイラやアセンブラ等
によつてソース・プログラムをマシン命令コード
へ翻訳/変換するときに自動的に行い、また適当
にマシン命令コード中に組み込むように処理する
ことも可能であるから、特にプログラム作成者に
負担になることはない。
以上説明した如く本発明によれば、サブルーチ
ンや外部プログラムを呼び出すときのレジスタの
退避・復元を完全に必要最少限にすることがで
き、処理の高速化を図ることができると共にレジ
スタ退避域等のメモリの節減を図ることができ
る。
【図面の簡単な説明】
第1図は本発明の一実施例構成、第2図は本発
明のレジスタ指定子の一実施例態様を示す。 図中、1は中央処理装置、2はメモリ、3は汎
用レジスタ、4はAレジスタ、5はBレジスタ、
6は論理演算回路、7はメモリデータレジスタ、
8は呼出しプログラム、9は設定命令、10は呼
出し命令、11は被呼出しプログラム、12は第
2レジスタ指定子設定域、13はレジスタ退避
域、14は第1レジスタ指定子、15は第2レジ
スタ指定子、16はAレジスタの内容、17はマ
シン命令コードを表わす。

Claims (1)

    【特許請求の範囲】
  1. 1 命令をフエツチして実行する電子計算機にお
    けるサブルーチンまたは外部プログラムを呼び出
    す呼出し命令を有するシステムにおいて、上記呼
    出し命令の発動に際して該呼出し命令により明示
    的にまたは暗示的に指定されるレジスタに、退避
    すべきレジスタを指定する第1のレジスタ指定子
    を収容せしめ、かつ被呼出しプログラムの入口点
    に設けられた設定域に、退避すべきレジスタを指
    定する第2のレジスタ指定子を予め設定せしめ
    て、上記呼出し命令の実行処理において上記第1
    のレジスタ指定子および上記第2のレジスタ指定
    子の双方によつて指定されるレジスタのみを所定
    の領域に退避することを特徴とするプログラム呼
    出し制御方式。
JP55182249A 1980-12-23 1980-12-23 Program call control system Granted JPS57105045A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP55182249A JPS57105045A (en) 1980-12-23 1980-12-23 Program call control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP55182249A JPS57105045A (en) 1980-12-23 1980-12-23 Program call control system

Publications (2)

Publication Number Publication Date
JPS57105045A JPS57105045A (en) 1982-06-30
JPS6236576B2 true JPS6236576B2 (ja) 1987-08-07

Family

ID=16114946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP55182249A Granted JPS57105045A (en) 1980-12-23 1980-12-23 Program call control system

Country Status (1)

Country Link
JP (1) JPS57105045A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
JP6496527B2 (ja) * 2014-11-07 2019-04-03 株式会社三共 遊技機

Also Published As

Publication number Publication date
JPS57105045A (en) 1982-06-30

Similar Documents

Publication Publication Date Title
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH0298707A (ja) プログラマブルコントローラ
JPS6236576B2 (ja)
JPH0528431B2 (ja)
JP2591211B2 (ja) 高速割込み処理装置
JPS62243032A (ja) 情報処理装置
JPS6156812B2 (ja)
JPS6156814B2 (ja)
JPS6315345A (ja) プログラムの分割読込機能を有するエミユレ−タ装置
JPH04167146A (ja) 情報処理装置のアドレストレース方式
JPS6149695B2 (ja)
JPS6252900B2 (ja)
JPH036735A (ja) データ処理装置
JPH0744382A (ja) サブルーチン処理における移行・復帰手続を高速化したディジタルシグナルプロセッサ
JPH0462093B2 (ja)
JPH03182945A (ja) 主記憶内データ転送方式
JPS5968067A (ja) 走行ステツプ数指定処理方式
JPS6120139A (ja) 割込み制御方式
JPS6349941A (ja) 演算処理装置
JPS6358565A (ja) 処理内容変更装置
JPS6349943A (ja) 演算処理装置
JPH02186463A (ja) 割込み要求発生方法および装置
JPH0561669A (ja) 半導体計算装置および電子機器
JPS645332B2 (ja)
JPH0442328A (ja) 情報処理装置の割り込み制御方式