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

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

Info

Publication number
JP3140028B2
JP3140028B2 JP02151568A JP15156890A JP3140028B2 JP 3140028 B2 JP3140028 B2 JP 3140028B2 JP 02151568 A JP02151568 A JP 02151568A JP 15156890 A JP15156890 A JP 15156890A JP 3140028 B2 JP3140028 B2 JP 3140028B2
Authority
JP
Japan
Prior art keywords
address
processing
argument
subroutine
passed
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 - Fee Related
Application number
JP02151568A
Other languages
English (en)
Other versions
JPH0444126A (ja
Inventor
文彦 安西
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
Original Assignee
Fuji 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 Fuji Electric Co Ltd 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

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔概要〕 コンピュータ・コントローラ等の情報処理装置が、プ
ログラムの実行中にサブルーチンをコールする際の引数
の受け渡し方式に関し、 命令解釈部を使用することなく、オペランドの種別情
報の識別を含めた引数の高速処理を可能にすることを目
的とし、 サブルーチンコール時に、必要に応じて受け渡される
アドレス又はデータと、サブルーチン側で処理されるべ
き処理プログラムの処理アドレスを、引数として受け渡
す引数受け渡し手段と、該引数受け渡し手段を介して引
数として受け渡された処理アドレスに対応する処理プロ
グラムを、必要に応じて引数として受け渡されたアドレ
ス又はデータを用いて、実行するサブルーチン実行手段
と、を有するように構成する。
〔産業上の利用分野〕
本発明は、コンピュータ・コントローラ等の情報処理
装置が、プログラムの実行中にサブルーチンをコールす
る際の引数の受け渡し方式に関する。
〔従来の技術〕
プログラムに基づいて処理を実行する情報処理装置
は、第6図に示されるような基本構成を有する。
同図において、命令解釈部61は、プログラムメモリ63
からインストラクションバス65を介して、順次プログラ
ム命令を読み出して、その命令を評価して演算処理部62
へ渡す。評価するとは、命令の種別を判別し、それに応
じて演算処理部62での実行に必要な情報(マイクロプロ
グラムアドレス、オペランドのメモリアドレス等)を作
ることである。
演算処理部62は、渡された情報に従い、データバス66
を介してデータメモリ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は、例えばプログラムを格納したプ
ログラムメモリ上のマクロプログラムのアドレスであ
り、必要に応じて引数12として受け渡されたアドレス又
はデータ14は、データを格納したデータメモリ上の引数
12として受け渡されるべきデータが格納されるアドレス
か、定数データそのものである。
なお、引数12として付加され得るアドレス又はデータ
14は、必ずしも必要なものではなく、それらのないサブ
ルーチン実行もあり得る。
〔作用〕
引数12としてサブルーチン実行手段15によって処理さ
れるべきアドレス又はデータ14(オペランド)の種別
は、処理アドレス13の形でサブルーチン実行手段15に渡
される。サブルーチン実行手段15は、この処理アドレス
13に基づいて、上記種別に対応する処理プログラム16を
実行する。
従って、サブルーチン実行手段15は引数12に対して評
価を行う必要なく、オペランドの種別情報の識別を含め
たアドレス又はデータ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とオペ
ランドのアドレス若しくはデータ(以下、AD/DTと呼
ぶ)26の組み合わせからなる引数24を格納する。一例と
して、演算実行部22が、サブルーチンコール時に、ZK、
ZW、ZL、ZSからなる各オペランドを、第1引数24〜第4
引数24として順次パラメータスタック21に格納すると、
第3図の如くとなる。
一方、演算実行部22がサブルーチン側のプログラムを
実行する場合、4種類のオペランドに対する前述の4種
類のアクセスは、パラメータスタック21に格納されてい
る処理アドレス25にオフセットを加えることにより区別
する。例えば、16Rのオフセットは0、32Rは8、16Wは1
6、32Wは24とする。また、オフセット0のアクセス(上
記例の場合、16R)でのZKの処理アドレス25を例えば100
0番地、ZWを1002番地、ZLを1004番地、ZSを1006番地と
すると、処理アドレス25、引数24に対するアクセス種別
及びそれに応じてサブルーチン側で実行される処理との
関係は、第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番
地に収まらなければ、1001番地から更に、1032、1033、
1034、・・・番地にジャンプする。或いは、1つ1つの
処理に割り当てるアドレス領域を大きくする。例えば、
第4図におけるオフセット0でのZK、ZW、ZL、ZSの各処
理アドレス1000、1002、1004、1006を、それぞれ1000、
1004、1008、1012に変更し、オフセット0、2、4、6
を、それぞれ0、16、32、48に変更する。
以上のデータ構成において、一例として、オペランド
ZWを引数24として受け渡し、サブルーチン側でその引数
24に対して32ビットリードを実行する、第4図の処理
の場合について説明する。第2図の演算実行部22を、サ
ブルーチンをコールする際に、パラメータスタック21
に、処理アドレス25として1002番地、AD/DT26として変
数オペランドのデータメモリ23上でのアドレスを格納す
る。演算実行部22がサブルーチンを実行する場合、処理
アドレス25=1002番地に、オフセット8(32R、第4図
参照)を加え、1010番地をプログラムメモリ63(第6図
参照)の処理アドレスとしてジャンプする。プログラム
メモリ63上の処理アドレス=1010番地には、データメモ
リ23上のAD/DT26で示されるアドレスの内容を32ビット
でリードする処理を行うためのマイクロプログラムが格
納されている。
他の例として、オペランドZLを引数24として受け渡
し、サブルーチン側でその引数24に対して16ビットライ
トを実行する、第4図の処理の場合について説明す
る。第2図の演算実行部22は、サブルーチンをコールす
る際に、パラメータスタック21に、処理アドレス25とし
て1004番地、AD/DT26としてアクセス幅32ビット固定の
変数オペランドのデータメモリ23上でのアドレスを格納
する。演算実行部22がサブルーチンを実行する場合、処
理アドレス25=1004番地に、オフセット16(16W、第4
図参照)を加え、1020番地をプログラムメモリ63(第6
図参照)の処理アドレスとしてジャンプする。プログラ
ムメモリ63上の処理アドレス=1020番地には、データメ
モリ23上のAD/DT26で示されるアドレスに対して32ビッ
トでライトを行うためのマイクロプログラムが格納され
ている。すなわちこの場合は、コールした側のオペラン
ドのアクセス幅が優先されるため、16ビットでライトし
ようとしても、オペランドに指定されているアクセス幅
=32ビットで正しくライトが実行される。
以上説明した実施例では、4種類に限定されたオペラ
ンドに対して4種類に限定されたアクセスを行う場合を
例にとって説明したが、これを更に多くの種別のオペラ
ンド及びアクセスに拡張することは容易であり、それに
より第6図の命令解釈部61を使用することなく、オペラ
ンドの種別情報の識別を含めた引数の高速処理が可能と
なる。
〔発明の効果〕
本発明によれば、引数としてサブルーチン実行手段に
よって処理されるべきオペランドの種別を、処理アドレ
スの形でサブルーチン実行手段に渡すことができ、サブ
ルーチン実行手段は、この処理アドレスに基づいて、上
記種別に対応する処理プログラムを実行することが可能
となる。これにより、サブルーチン実行手段は引数に対
して再評価を行う必要なく、命令解釈と演算実行を途切
れることなく並列に行うことができ、オペランドの種別
情報の識別を含めたオペランドに対する高速処理を行う
ことが可能となる。
この場合、引数として渡されるオペランドは、アドレ
スでもデータでもどちらでもよく、制限されることもな
くなるという効果も生まれる。
【図面の簡単な説明】
第1図は、本発明のブロック図、 第2図は、本発明の実施例の構成図、 第3図は、パラメータスタックのデータ構成図、 第4図は、処理アドレスと引数に対するアクセス種別と
処理の関係図、 第5図は、マイクロプログラムアクセスと処理との関係
図、 第6図は、情報処理装置の基本構成図である。 11……引数受け渡し手段、 12……引数、 13……処理アドレス、 14……アドレス又はデータ、 15……サブルーチン実行手段、 16……処理プログラム.
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】サブルーチンに引数(12)として受け渡
    す、データが格納されているアドレス又はデータ(14)
    と、前記引数(12)の種類に対応してサブルーチン側で
    行われる処理を行う処理プログラム(16)の処理アドレ
    ス(13)を、受け渡す引数受け渡し手段(11)と、 該引数受け渡し手段を介して受け渡された前記処理アド
    レス(13)に対応する処理プログラム(16)を、前記ア
    ドレス又はデータ(14)を用いて、実行するサブルーチ
    ン実行手段(15)と、 を有することを特徴とするサブルーチンの引数受け渡し
    方式。
  2. 【請求項2】サブルーチンに引数(12)として受け渡
    す、データが格納されているアドレス又はデータ(14)
    と、前記引数(12)の種類に対応してサブルーチン側で
    行われる処理を行う処理プログラム(16)の処理アドレ
    ス(13)を、受け渡す引数受け渡し手段(11)と、 該引数受け渡し手段を介して受け渡された前記処理アド
    レス(13)に、引数に対するアクセス命令の種別から導
    き出されるアドレスオフセットを加算し、該加算結果の
    アドレスに対応する処理プログラム(16)を、前記アド
    レス又はデータ(14)を用いて、実行するサブルーチン
    実行手段と、 を有することを特徴とするサブルーチンの引数の受け渡
    し方式。
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 JPH0444126A (ja) 1992-02-13
JP3140028B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4761808B2 (ja) * 2005-04-11 2011-08-31 株式会社東芝 マイクロプロセッサおよびその制御方法

Also Published As

Publication number Publication date
JPH0444126A (ja) 1992-02-13

Similar Documents

Publication Publication Date Title
US4715013A (en) Coprocessor instruction format
US4215400A (en) Disk address controller
EP0148478B1 (en) A data processor with control of the significant bit lenghts of general purpose registers
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
US5021991A (en) Coprocessor instruction format
EP0526911B1 (en) A method and apparatus for coordinating execution of an instruction by a coprocessor
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
JP3140028B2 (ja) サブルーチンの引数の受け渡し方式
US4994961A (en) Coprocessor instruction format
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JPS6049352B2 (ja) デ−タ処理装置
JPH02123442A (ja) 高速化メモリ
JPH0377137A (ja) 情報処理装置
JPH0635800A (ja) マイクロプロセッサ及びそれを使用したデータ処理システム
US4811274A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
JP2743947B2 (ja) マイクロプログラム制御方式
JPH0585925B2 (ja)
JPH02110636A (ja) タグ・アーキテクチャマシンのデバッグ装置とそのコンパイラ
JPS63206834A (ja) 命令制御におけるエラ−検出処理方式
JPS61112240A (ja) デ−タ処理装置
JPH0795288B2 (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