JPH0444126A - サブルーチンの引数の受け渡し方式 - Google Patents

サブルーチンの引数の受け渡し方式

Info

Publication number
JPH0444126A
JPH0444126A JP15156890A JP15156890A JPH0444126A JP H0444126 A JPH0444126 A JP H0444126A JP 15156890 A JP15156890 A JP 15156890A JP 15156890 A JP15156890 A JP 15156890A JP H0444126 A JPH0444126 A JP H0444126A
Authority
JP
Japan
Prior art keywords
address
argument
processing
subroutine
data
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
JP15156890A
Other languages
English (en)
Other versions
JP3140028B2 (ja
Inventor
Fumihiko Anzai
文彦 安西
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom Corp
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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP02151568A priority Critical patent/JP3140028B2/ja
Publication of JPH0444126A publication Critical patent/JPH0444126A/ja
Application granted granted Critical
Publication of JP3140028B2 publication Critical patent/JP3140028B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔概  要〕 コンピュータ・コントローラ等の情報処理装置が、プロ
グラムの実行中にサブルーチンをコールする際の引数の
受け渡し方式に関し、 命令解釈部を使用することなく、オペランドの種別情報
の識別を含めた引数の高速処理を可能にすることを目的
とし、 サブルーチンコール時に、必要に応じて受け渡されるア
ドレス又はデータと、サブルーチン側で処理されるべき
処理プログラムの処理アドレスを、引数として受け渡す
引数受け渡し手段と、該引数受け渡し手段を介して引数
として受け渡された処理アドレスに対応する処理プログ
ラムを、必要に応じて引数として受け渡されたアドレス
又はデータを用いて、実行するサブルーチン実行手段と
、を有するように構成する。
〔産業上の利用分野〕
本発明は、コンピュータ・コントローラ等の情報処理装
置が、プログラムの実行中にサブルーチンをコールする
際の引数の受け渡し方式に関する。
〔従来の技術〕
プログラムに基づいて処理を実行する情報処理装置は、
第6図に示されるような基本構成を有する。
同図において、命令解釈部61は、プログラムメモリ6
3からインストラクションバス65を介して、順次プロ
グラム命令を読み出して、その命令を評価して演算処理
部62へ渡す。評価するとは、命令の種別を判別し、そ
れに応じて演算処理部62での実行に必要な情報(マイ
クロプログラムアドレス、オペランドのメモリアドレス
等)を作ることである。
演算処理部62は、渡された情報に従い、データバス6
6を介してデータメモリ64にアクセスする等の処理を
行う。
このとき、命令解釈部61がプログラム命令をプログラ
ムメモリ63から取り出してそれを評価する処理と、演
算処理部62が命令解釈部61から渡された情報に従っ
てデータに演算処理を施す処理とは、通常、並列に実行
できる。
上述のような構成の情報処理装置によってプログラムが
実行されている場合に、サブルーチンをコールする際の
引数の受け渡し方式には、従来、以下の2つの方式が一
般的である。
第1の従来例においては、引数受け渡し用のスタック(
以下、パラメータスタックと呼ぶ)に、引数とそのオペ
ランドの種別を示す識別子が共に格納される。そして、
コールされた側のサブルーチンプログラムにおいては、
識別子を含む引数をパラメータスタックから取り出し、
命令解釈部61へ戻して再評価する。これにより、引数
に対してどのような演算処理を行うべきかが判別され、
再び演算実行部62に渡されて演算処理が実行される。
第2の従来例においては、引数は必ずデータメモリ64
上に置かれ、パラメータスタックには引数のアドレスが
格納される。そして、コールされた側は、上記アドレス
によってデータメモリ64上の引数に対してアクセスを
行う。この場合、定数についても、引数として渡される
のではなく、−度データメモリ64上に格納され、その
アドレスとして渡される。
〔発明が解決しようとする課題〕
しかし、第1の従来例の場合、渡された引数を再評価す
るために、演算実行部62から命令解釈部61に一度制
御を移さねばならず、処理が複雑になるという問題点を
有している。また、命令解釈部61での再評価が終了す
るまで演算実行部62はそれより先の演算処理を実行す
ることができず、実行時間が低下してしまうという問題
点を有している。
一方、第2の従来例の場合、データメモリ64上のアド
レスとして引数を受け渡すのであるが、引数になってい
るオペランドに特別の意味、例えば、定数に対して代入
はできない、指定されたビット幅でオペランドをアクセ
ス(リード又はライト)シなければならない、等の制限
があっても、アドレスのみの受け渡しでは上述のような
オペランドの種別情報は渡すことができないという問題
点を有している。
本発明は、命令解釈部を使用することなく、オペランド
の種別情報の識別を含めた引数の高速処理を可能にする
ことを目的とする。
[課題を解決するための手段〕 第1図は、本発明のブロック図である。
まず、サブルーチンコール時に、必要に応じて受け渡さ
れるアドレス又はデータ14と、サブルーチン側で処理
されるべき処理プログラム16の処理アドレス13を、
引数12として受け渡す引数受け渡し手段11を有する
。同手段は、例えばパラメータスタックである。
次に、引数受け渡し手段11を介して引数12として受
け渡された処理アドレス13に対応する処理プログラム
16を、必要に応じて引数12として受け渡されたアド
レス又はデータ14を用いて、実行するサブルーチン実
行手段15を有する。
また、同手段は、処理アドレス13に、アクセス種別に
対応するアドレスオフセットを加算し、該加算結果のア
ドレスに対応する処理プログラム16を実行するように
構成してもよい。ここで、引数12として受け渡された
処理アドレス13は、例えばプログラムを格納したプロ
グラムメモリ上のマクロプログラムのアドレスであり、
必要に応じて引数I2として受け渡されたアドレス又は
データ14は、データを格納したデータメモリ上の引数
12として受け渡されるべきデータが格納されるアドレ
スか、定数データそのものである。
なお、引数12として付加され得るアドレス又はデータ
14は、必ずしも必要なものではなく、それらのないサ
ブルーチン実行もあり得る。
〔作   用〕
引数12としてサブルーチン実行手段15によって処理
されるべきアドレス又はデータ14(オペランド)の種
別は、処理アドレス13の形でサブルーチン実行手段1
5に渡される。ザブルーチン実行手段15は、この処理
アドレス13に基づいて、上記種別に対応する処理プロ
グラムI6を実行する。
従って、サブルーチン実行手段I5は引数I2に対して
評価を行う必要なく、オペランドの種別情報の識別を含
めたアドレス又はデータ14に対する高速処理を行うこ
とができる。
〔実  施  例〕
以下、図面を参照しながら本発明の実施例につき説明す
る。
第2図は、本発明の実施例の構成図である。本実施例は
、全体的には第6図と同様の基本的構成を有し、第2図
の演算実行部22及びデータメモリ23は第6図の62
及び64のそれぞれに対応する。
また、第2図のパラメータスタック21は、サブルーチ
ンコール時の引数24を格納するスタックであり、演算
実行部22と独立に設けられても内部に設けられてもよ
い。引数24のデータ構成については後述する。
以下、本実施例の動作につき、順次説明する。
まず、プログラム実行中にサブルーチンをコールする場
合に、サブルーチンに受け渡されるオペランドとしては
様々な種類のものがあるが、本実施例では、説明の簡単
のため、次の4種類のオペランドを対象とし、それぞれ
に識別子を定義する。
(1)定数オペランド。この識別子をZK々する。
゛(2)変数オペランド。この識別子をZwとする。
(3)変数オペランド(アクセス幅32ビット固定)。
この識別子をZLとする。
(4)変数オペランド(アクセス幅16ビツト固定)。
この識別子をZSとする。
一方、サブルーチン側では引数24に対するアクセスが
次の4種類あるとする。
(1)16ビントリード。以下、16Rと呼ぶ。
(2)32ビツトリード。以下、32Rと呼ぶ。
(3) 16ビントライト。以下、16Wと呼ぶ。
(4)32ビツトライト。以下、32Wと呼ぶ。
以上に示される如く、オペランドの識別子が4種類、引
数24に対するアクセスが4種類なので、計16種類の
処理が必要である。
ここで、サブルーチンをコールするプログラム側では、
オペランドの識別子のみが判別可能であり、また、サブ
ルーチン側では引数24に対するアクセス種別のみが判
別可能である。従って、オペランドの識別子を引数24
に付加すれば、サブルーチン側でもオペランドの識別子
を判別することができ、適切な処理が可能となる。但し
、識別子そのもの(前述のZK、ZW、ZL、ZS等の
コードそのもの)を受け渡す方式では、「発明が解決し
ようとする課題」の項で説明した如く、識別子の再評価
に命令解釈部61(第6図参照)を使用しなければなら
ない。そこで、本実施例では、その識別子に対応してサ
ブルーチン側で実行されるべきマイクロプログラムのプ
ログラムメモリ63(第6図参照)上での処理アドレス
25(第2図参照)を受け渡すことにする。プログラム
メモリ63に、前述の16種類全ての処理に対応するマ
イクロプログラムが用意されていれば、サブルーチン側
でそのマイクロプログラムにジャンプすることにより引
数24に対する適切な処理が可能となる。
すなわち、演算実行部22が実行するプログラムがサブ
ルーチンをコールする際には、演算実行部22が、第2
図の如く、パラメータスタック21に処理アドレス25
とオペランドのアドレス若しくはデータ(以下、A D
/D Tと呼ぶ)26の組み合わせからなる引数24を
格納する。−例として、演算実行部22が、サブルーチ
ンコール時に、ZK、ZW、ZL、ZSからなる各オペ
ランドを、第1引数24〜第4引数24として順次パラ
メータスタック21に格納すると、第3図の如くとなる
一方、演算実行部22がサブルーチン側のプログラムを
実行する場合、4種類のオペランドに対する前述の4種
類のアクセスは、パラメータスタック21に格納されて
いる処理アドレス25にオフセットを加えることにより
区別する。例えば、16R(7)オフセットは0,32
Rは8.16Wは16.32Wは24とする。また、オ
フセット0のアクセス(上記例の場合、16R)でのZ
Kの処理アドレス25を例えば1000番地、zwを1
002番地、ZLを1004番地、ZSを1006番地
とすると、処理アドレス25、引数241工 に対するアクセス種別及びそれに応じてサブルーチン側
で実行される処理との関係は、第4図の表のようになる
。この表において、■〜■は、前述の16種類の処理を
示しており、それぞれ次の如き内容である。
■:AD/DT26そのものを16ビツトリード(第2
図のアクセスa)。
■■■:AD/DT26をデータメモリ23でのアドレ
スとして、同メモリを16ビツトリード(第4図のアク
セスC)。
■■■:AD/DT26をデータメモリ23でのアドレ
スとして、同メモリを32ビツトリード(第4図のアク
セスd)。
■:AD/DT26そのものを32ビツトリード(第4
図のアクセスb)。
■@:エラー処理(定数であるAD/DT26そのもの
に対するライト)□。
[相]@[相]: AD/DT26をデータメモリ23
でのアドレスとして、同メモリを16ビツトライト(第
4図のアドレスe)。
■[相]■:AD/DT26をデータメモリ23でのア
ドレスとして、同メモリを32ビツトライト(第4図の
アドレスf)。
上述の■〜[相]の各処理の、第6図のプログラムメモ
リ63上でのマイクロプログラムとしての配置は、第5
図の如くとなる。すなわち、1000〜1031番地ま
でに■〜[相]の各処理が格納される。これらアドレス
領域に収まり切らない場合は、ここから他のアドレス領
域にジャンプする命令を埋め込んでおく。例えば、処理
■が1000.1001番地に収まらなければ、100
1番地がら更に、工032.1033.1034、・・
・番地にジャンプする。或いは、1つ1つの処理に割り
当てるアドレス領域を大きくする。例えば、第4図にお
けるオフセットOでのZK、ZW、ZL。
ZS(7)各処理7’)’レス1000,1002.1
゜04.1006を、それぞれ1000,1004.1
008.1012に変更し、オフセット0,2.4.6
を、それぞれ0.16.32.48に変更する。
以上のデータ構成において、−例として、オペランドZ
Wを引数24として受け渡し、サブルーチン側でその引
数24に対して32ビツトリードを実行する、第4図の
処理■の場合について説明する。第2図の演算実行部2
2は、サブルーチンをコールする際に、パラメータスタ
ック21に、処理アドレス25として1002番地、A
 D/DT26として変数オペランドのデータメモリ2
3上でのアドレスを格納する。演算実行部22がサブル
ーチンを実行する場合、処理アドレス25−1002番
地に、オフセット8(32R1第4図参照)を加え、1
010番地をプログラムメモリ63(第6図参照)の処
理アドレスとしてジャンプする。プログラムメモリ63
上の処理アドレス=1010番地には、データメモリ2
3上のAD/DT26で示されるアドレスの内容を32
ビツトでリードする処理を行うためのマイクロプログラ
ムが格納されている。
他の例として、オペランドZLを引数24として受け渡
し、サブルーチン側でその引数24に対して16ビツト
ライトを実行する、第4図の処理■の場合について説明
する。第2図の演算実行部22は、サブルーチンをコー
ルする際に、パラメータスタック21に、処理アドレス
25として1004番地、AD/DT26としてアクセ
ス幅32ビット固定の変数オペランドのデータメモリ2
3上でのアドレスを格納する。演算実行部22がザブル
ーチンを実行する場合、処理アドレス25−1004番
地に、オフセット16(16W、第4図参照)を加え、
1020番地をプログラムメモリ63(第6図参照)の
処理アドレスとしてジャンプする。プログラムメモリ6
3上の処理アドレス−1020番地には、データメモリ
23上のAD/DT26で示されるアドレスに対して3
2ビツトでライトを行うためのマイクロプログラムが格
納されている。すなわちこの場合は、コールした側のオ
ペランドのアクセス幅が優先されるため、16ビツトで
ライトしようとしても、オペランドに指定されているア
クセス幅−32ビツトで正しくライトが実行される。
以上説明した実施例では、4種類に限定されたオペラン
ドに対して4種類に限定されたアクセスを行う場合を例
にとって説明したが、これを更に多くの種別のオペラン
ド及びアクセスに拡張することは容易であり、それによ
り第6図の命令解釈部61を使用することなく、オペラ
ンドの種別情報の識別を含めた引数の高速処理が可能と
なる。
〔発明の効果〕
本発明によれば、引数としてサブルーチン実行手段によ
って処理されるべきオペランドの種別を、処理アドレス
の形でサブルーチン実行手段に渡すことができ、サブル
ーチン実行手段は、この処理アドレスに基づいて、上記
種別に対応する処理プログラムを実行することが可能と
なる。これにより、サブルーチン実行手段は引数に対し
て再評価を行う必要なく、命令解釈と演算実行を途切れ
ることなく並列に行うことができ、オペランドの種別情
報の識別を含めたオペランドに対する高速処理を行うこ
とが可能となる。
1に の場合、引数として渡されるオペランドは、アドレスで
もデータでもどちらでもよく、制限されることもなくな
るという効果も生まれる。
【図面の簡単な説明】
第1図は、本発明のブロック図、 第2図は、本発明の実施例の構成図、 第3図は、パラメータスタックのデータ構成図、第4図
は、処理アドレスと引数に対するアクセス種別と処理の
関係図、 第5図は、マイクロプログラムアクセスと処理との関係
図、 第6図は、情報処理装置の基本構成図である。 11・・・引数骨は渡し手段、 12・・・引数、 13・・・処理アドレス、 14・・・アドレス又はデータ、 15・・・サブルーチン実行手段、 16・・・処理プログラム。 へ〇ウメータスタッフ バフメータスタックの7一タ構八図 剋理了ドレスど引朕(で丼するアク乞スms”iヒ処理
N場小図第 図 第 図 マイクロ10)゛ラムアF゛レスヒ タL!理 旨め関イA〜しa 第 図 債を瓦ズL理装置のA(K溝へ゛図 第 図

Claims (1)

  1. 【特許請求の範囲】 1)サブルーチンコール時に、必要に応じて受け渡され
    るアドレス又はデータ(14)と、サブルーチン側で処
    理されるべき処理プログラム(16)の処理アドレス(
    13)を、引数(12)として受け渡す引数受け渡し手
    段(11)と、 該引数受け渡し手段を介して引数(12)として受け渡
    された前記処理アドレス(13)に対応する処理プログ
    ラム(16)を、必要に応じて引数(12)として受け
    渡された前記アドレス又はデータ(14)を用いて、実
    行するサブルーチン実行手段(15)と、を有すること
    を特徴とするサブルーチンの引数の受け渡し方式。 2)サブルーチンコール時に、必要に応じて受け渡され
    るアドレス又はデータ(14)と、サブルーチン側で処
    理されるべき処理プログラム(16)の処理アドレス(
    13)を、引数(12)として受け渡す引数受け渡し手
    段(11)と、 該引数受け渡し手段を介して引数(12)として受け渡
    された前記処理アドレス(13)に、アクセス種別に対
    応するアドレスオフセットを加算し、該加算結果のアド
    レスに対応する処理プログラム(16)を、必要に応じ
    て引数(12)として受け渡された前記アドレス又はデ
    ータ(14)を用いて、実行するサブルーチン実行手段
    (15)と、 を有することを特徴とするサブルーチンの引数の受け渡
    し方式。
JP02151568A 1990-06-12 1990-06-12 サブルーチンの引数の受け渡し方式 Expired - Fee Related JP3140028B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02151568A JP3140028B2 (ja) 1990-06-12 1990-06-12 サブルーチンの引数の受け渡し方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02151568A JP3140028B2 (ja) 1990-06-12 1990-06-12 サブルーチンの引数の受け渡し方式

Publications (2)

Publication Number Publication Date
JPH0444126A true JPH0444126A (ja) 1992-02-13
JP3140028B2 JP3140028B2 (ja) 2001-03-05

Family

ID=15521377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02151568A Expired - Fee Related JP3140028B2 (ja) 1990-06-12 1990-06-12 サブルーチンの引数の受け渡し方式

Country Status (1)

Country Link
JP (1) JP3140028B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293673A (ja) * 2005-04-11 2006-10-26 Toshiba Corp マイクロプロセッサおよびその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293673A (ja) * 2005-04-11 2006-10-26 Toshiba Corp マイクロプロセッサおよびその制御方法

Also Published As

Publication number Publication date
JP3140028B2 (ja) 2001-03-05

Similar Documents

Publication Publication Date Title
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US5295251A (en) Method of accessing multiple virtual address spaces and computer system
US4715013A (en) Coprocessor instruction format
US5021991A (en) Coprocessor instruction format
EP0526911B1 (en) A method and apparatus for coordinating execution of an instruction by a coprocessor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
US4314332A (en) Memory control system
US4994961A (en) Coprocessor instruction format
JPH0444126A (ja) サブルーチンの引数の受け渡し方式
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
CA1302580C (en) Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system
JPH0377137A (ja) 情報処理装置
JP2540959B2 (ja) 情報処理装置
JPS605976B2 (ja) 制御ストアを組織する方法と装置
JPS61184643A (ja) 仮想計算機の起動制御方式
JPH0721766B2 (ja) Fortran入出力制御処理装置
JPH02110636A (ja) タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ
US4811274A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPS5872251A (ja) デ−タ処理方式
JPS63216134A (ja) 中央処理装置
JPH0264828A (ja) アドレストレース回路
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPH1027153A (ja) バス転送装置
JPS58142437A (ja) 情報処理装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071215

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081215

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081215

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091215

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees